1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,18566,(e,t,n)=>{t.exports=e.r(76562)},55436,e=>{"use strict";let t=(0,e.i(75254).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);e.s(["Search",()=>t],55436)},80259,e=>{"use strict";var t=e.i(31449);let n=[{id:"getting-started",title:"Getting Started",description:"Quick start guide, account setup, and first steps with Savena.",icon:"Rocket",articles:[{slug:"quick-start-guide",title:"Quick Start Guide",summary:"Get Savena up and running in under 5 minutes with this step-by-step guide.",tags:["setup","onboarding","getting started","first steps"],updatedAt:"2026-04-01",howTo:!0,content:[{type:"paragraph",content:"Savena is designed to get you from sign-up to your first customer conversation in minutes. This guide walks you through the essential steps."},{type:"heading",content:"Step 1: Create your account",level:2},{type:"paragraph",content:"Sign up for a free 21-day trial at app.savena.ai. No credit card is required. Your trial includes 200 conversations and 200 AI resolutions so you can explore every feature."},{type:"heading",content:"Step 2: Set up your workspace",level:2},{type:"paragraph",content:"After signing up, you will be guided through a short onboarding flow. Enter your company name, upload a logo, and configure your business hours. These details personalize the experience for both your team and your customers."},{type:"heading",content:"Step 3: Connect a channel",level:2},{type:"paragraph",content:"Go to Settings â Channels and connect at least one messaging channel. The fastest options are:"},{type:"list",content:"Live chat widget â paste a script tag on your website\nEmail â connect Gmail or Microsoft Outlook in a few clicks\nWhatsApp Business â link your phone number\nInstagram â connect your business account"},{type:"heading",content:"Step 4: Invite your team",level:2},{type:"paragraph",content:`From Settings â Users, invite team members by email and assign roles (owner, manager, or agent). Your subscription includes ${t.INCLUDED_SEATS} team members; each one after that is $${t.EXTRA_SEAT_PRICE}/month.`},{type:"callout",content:"You can start receiving conversations as soon as one channel is connected. The AI agent and workflows can be configured later.",variant:"tip"},{type:"heading",content:"Step 5: Configure your AI agent",level:2},{type:"paragraph",content:"Navigate to AI Agent in the sidebar, create an agent, and upload your knowledge base documents. The AI will use this content to answer customer questions automatically. You can also point the AI at your website URL and it will read the content."},{type:"paragraph",content:"Once your agent is set up, enable it on the channels where you want AI-powered responses. The agent will handle routine questions and escalate to your team when needed."}]},{slug:"account-setup",title:"Account & Workspace Setup",summary:"Configure your workspace settings, business hours, and branding.",tags:["account","workspace","settings","business hours","branding"],updatedAt:"2026-04-01",content:[{type:"paragraph",content:"Your workspace is the central hub for your team. Configure it properly so your customers and agents have the best experience."},{type:"heading",content:"Workspace settings",level:2},{type:"paragraph",content:"Go to Settings â Workspace to configure your company name, logo, and timezone. The timezone affects how business hours are calculated and how timestamps appear in conversations."},{type:"heading",content:"Business hours",level:2},{type:"paragraph",content:"Set your business hours so the AI agent knows when your team is available. Outside business hours, the AI can provide full support, collect information, and escalate urgent issues for follow-up when your team returns."},{type:"heading",content:"Team roles",level:2},{type:"paragraph",content:"Savena has three workspace roles with different permission levels:"},{type:"list",content:"Owner â full access to all settings, channels, billing, user management, and contact deleti
1on\nManager â operational access to inbox, contacts, analytics, AI agent, workflows, user management, and general settings\nAgent â inbox-only access to handle conversations assigned to them"},{type:"callout",content:"You can change a team member's role at any time from Settings â Users.",variant:"info"},{type:"heading",content:"Teams",level:2},{type:"paragraph",content:'Create teams to group agents by function â for example, a "Sales" team and a "Support" team. Teams are used in workflow assignment steps to distribute conversations among team members using round-robin or least-open logic. Go to Settings â Teams to create and manage your teams.'}]},{slug:"trial-and-billing",title:"Free Trial & Upgrading",summary:"Understand how the free trial works and what happens when you upgrade.",tags:["trial","billing","upgrade","pricing","free","quota","conversation count"],updatedAt:"2026-04-26",faq:!0,content:[{type:"paragraph",content:"The 21-day free trial gives you access to all Savena features so you can evaluate the platform before committing to a paid plan."},{type:"heading",content:"What is included in the trial",level:2},{type:"list",content:"200 conversations\n200 AI resolutions\nAll channels (live chat, email, WhatsApp, Instagram, Facebook)\nFull AI agent capabilities\nWorkflow automation\nAll integrations"},{type:"heading",content:"What happens when the trial ends",level:2},{type:"paragraph",content:"When your trial expires or you reach the trial limits, you will be prompted to choose a paid plan. There is a short grace period so you do not lose any active conversations. Your data, configuration, and conversation history are fully preserved when you upgrade."},{type:"callout",content:"No credit card is required to start the trial. You can cancel at any time.",variant:"info"},{type:"heading",content:"What Savena costs",level:2},{type:"paragraph",content:`There is one plan, so there is nothing to choose between. A flat $${t.PLATFORM_PRICE}/month platform fee covers every channel, every feature and unlimited conversations, and includes ${t.INCLUDED_SEATS} team members ($${t.EXTRA_SEAT_PRICE}/month each after that). On top of that you pay $${t.AI_RESOLUTION_PRICE} for each conversation the AI resolves on its own â conversations it escalates to a human are free. Annual billing takes ${t.ANNUAL_DISCOUNT_PERCENT}% off both: $${t.PLATFORM_ANNUAL_PRICE}/month for the platform and $${t.EXTRA_SEAT_ANNUAL_PRICE}/month for each extra team member. You can set a monthly cap on AI resolutions at checkout and change it at any time.`},{type:"heading",content:"What counts as an AI resolution",level:2},{type:"paragraph",content:"Conversations themselves are unlimited â you are only charged when the AI resolves one on its own. A conversation is billable when a real contact sent at least one message and the AI handled it end to end, so proactive nudges from workflows or the AI (idle visitors, exit intent, engagement signals) cost nothing unless the visitor actually replies and the AI resolves it. If the AI escalates to your team, hits an error, or the contact abandons the conversation, it is not billed. You can open any conversation in the billing view to see how it was classified and why."},{type:"paragraph",content:"A conversation stays open for as long as the exchange continues, no matter how many messages it contains, and closes after 7 days of inactivity. If the same customer writes again after that window, it starts a new conversation and counts once more against your allowance. A long back-and-forth thread still counts as a single conversation."},{type:"callout",content:"A conversation closes after 7 days of inactivity. A new message from the same customer after that starts a fresh conversation.",variant:"info"},{type:"callout",content:"Proactive outreach from workflows is free. You are only billed when a visitor engages back.",variant:"info"}]}]},{id:"inbox",title:"Inbox & Conversations",description:"Manage all your customer conversations from a single unified inbox.",icon:"Inbox",articles:[{slug:"unified-inbox-overview",title:"Unified Inbox Overview",summary:"How the unified inbox brings all your conversations into one place.",tags:["inbox","conversations","unified","messages","snooze","spam"],updatedAt:"2026-04-18",content:[{type:"paragraph",content:"The unified inbox is the heart of Savena. Every message from every connected channel â live chat, email, WhatsApp, Instagram, and Facebook â appears in a single inbox view."},{type:"heading",content:"How it works",level:2},{type:"paragraph",content:"When a customer sends a message through any channel, a conversation is created (or an existing one is reopened). The conversation carries the full context regardless of which channel it originated from, so your team never has to switch between tools."},{type:"heading",content:"Inbox views",level:2},{type:"list",content:"Your Inbox â open conversations assigned to you\nAll â every conversation in the workspace\nUnassigned â open conversations with
1no assignee\nCreated by me â conversations you started\nSpam â conversations marked as spam"},{type:"heading",content:"Conversation statuses",level:2},{type:"list",content:"Open â active conversation awaiting response\nClosed â fully closed and archived"},{type:"heading",content:"Filtering and sorting",level:2},{type:"paragraph",content:"Filter conversations by channel, status, priority (low, medium, high, urgent), assignee, or tags. Use the search bar to find conversations by customer name, email, or message content. Sort by newest or oldest to prioritize your queue."},{type:"heading",content:"Assignment",level:2},{type:"paragraph",content:"Conversations can be assigned to individual agents or teams. You can assign manually, use round-robin assignment, or let your AI agent and workflows handle assignment automatically based on rules you define."},{type:"heading",content:"Snooze",level:2},{type:"paragraph",content:"Snooze a conversation to temporarily hide it from your inbox. Set a time and the conversation will reappear automatically when the snooze expires. This is useful for conversations where you need to follow up later but do not want them cluttering your active queue."},{type:"heading",content:"Linked conversations and tickets",level:2},{type:"paragraph",content:"Conversations can be linked to other conversations for reference, and to tickets for issue tracking. This helps your team see the full picture when a customer has multiple ongoing interactions."},{type:"callout",content:"The inbox supports real-time updates â new messages, typing indicators, and presence information appear instantly without refreshing.",variant:"tip"}]},{slug:"conversation-management",title:"Managing Conversations",summary:"Learn how to assign, tag, prioritize, snooze, and resolve conversations.",tags:["assign","tags","priority","resolve","close","conversation","snooze","followers","spam"],updatedAt:"2026-04-18",content:[{type:"paragraph",content:"Efficient conversation management keeps your team productive and your customers happy. Here is how to use the key conversation management features."},{type:"heading",content:"Assigning conversations",level:2},{type:"paragraph",content:"Click the assignee field in any conversation to assign it to an agent or team. You can also use workflows to automate assignment based on channel, customer attributes, or conversation content."},{type:"heading",content:"Tags and priority",level:2},{type:"paragraph",content:'Add tags to conversations to categorize them (e.g., "billing", "bug report", "feature request"). Set priority levels (low, medium, high, urgent) to help your team focus on what matters most.'},{type:"heading",content:"Internal notes",level:2},{type:"paragraph",content:"Use internal notes to communicate with your team about a conversation without the customer seeing. Notes support @mentions so you can tag specific team members for input. Notes are visible to all agents who have access to the conversation."},{type:"heading",content:"Conversation followers",level:2},{type:"paragraph",content:"Follow a conversation to receive notifications about new messages and updates even if you are not the assigned agent. This is useful when you want to stay informed about a conversation without taking ownership."},{type:"heading",content:"Snoozing conversations",level:2},{type:"paragraph",content:"Snooze a conversation to temporarily remove it from your active inbox. Choose when the conversation should reappear â for example, in 1 hour, tomorrow morning, or at a custom date and time. The conversation automatically returns to your inbox when the snooze expires."},{type:"heading",content:"Marking as spam",level:2},{type:"paragraph",content:"Mark unwanted conversations as spam to move them to the Spam view and keep your inbox clean. You can review and restore conversations from the Spam view if needed."},{type:"heading",content:"Linking to tickets",level:2},{type:"paragraph",content:"Create a ticket directly from a conversation to track complex issues that need more than a quick reply. Conversations can also be linked to existing tickets and to other conversations for reference."},{type:"heading",content:"Closing conversations",level:2},{type:"paragraph",content:"When a conversation is complete, mark it as closed. Closed conversations move out of the active inbox but remain accessible in the conversation history. If the customer sends a new message, the conversation reopens automatically."},{type:"callout",content:"Email conversations have a 7-day auto-resolve window. For live chat, if the last conversation is older than 24 hours, a new message creates a new conversation instead of reopening the old one.",variant:"info"}]},{slug:"real-time-notifications",title:"Notifications & Alerts",summary:"Configure sound, browser, mobile, and email notifications, plus per-user AI escalation alert controls.",tags:["notifications","alerts","email","real-time","sound","browser","mobile","mentions","escalation","quiet hours","digest"],updatedAt:"2026-06-20",content:[{type:"paragraph",content:"Savena delivers real-time notifications across four channels so you never miss an important message or event. Configure each channel independently from Profile â Notification settings."},{type:"heading",content:"Notification channels",level:2},{type:"list",content:"Sound â play an audio alert when new messages arrive\nBrowser â desktop push notifications from your web browser\nMobile â push notifications on the mobile app\nEmail â email alerts for messages and events when you are away"},{type:"heading",content:"Sound notifications",level:2},{type:"paragraph",content:"Choose when sound alerts play:"},{type:"list",content:"Assigned only â sound plays only for conversations assigned to you\nAssigned or unassigned â sound plays for your conversations and unassigned ones\nNone â no sound notifications"},{type:"heading",content:"Browser, mobile, and email notifications",level:2},{type:"paragraph",content:"For browser, mobile, and email notifications, choose your notification level:"}
1,{type:"list",content:"All â receive notifications for all conversation activity\nAssigned and mentions â only for conversations assigned to you or where you are @mentioned\nMentions only â only when someone @mentions you in a conversation\nNone â no notifications on this channel"},{type:"heading",content:"Mobile offline only",level:3},{type:"paragraph",content:'Enable "mobile offline only" to receive mobile push notifications only when you are not actively using the desktop app. This prevents duplicate alerts across devices.'},{type:"heading",content:"@mentions",level:2},{type:"paragraph",content:"Use @mentions in internal notes to get a specific team member's attention. Mentioned users receive a notification regardless of their general notification settings (unless they have disabled notifications entirely)."},{type:"heading",content:"AI escalation alerts",level:2},{type:"paragraph",content:"When the AI agent escalates a conversation to you, a separate set of controls decides how and when you are alerted. These settings apply to both email and mobile push at the same time, and are configured per user under the AI escalation alerts section of Profile â Notification settings. Escalations always appear in your inbox regardless of these settings â the controls only govern the email and push alerts, never the inbox itself."},{type:"heading",content:"Alert mode",level:3},{type:"paragraph",content:"Alert mode is the master switch for escalation alerts:"},{type:"list",content:"Immediate â alert me for every escalation as it happens\nHigh priority only â alert immediately for high-priority escalations and batch the rest into a periodic email digest\nDigest â never alert in real time; batch all escalations into periodic email digests\nOff â no escalation alerts at all"},{type:"callout",content:"A real-time alert is sent over both email and mobile push. Batched items are delivered only in the email digest â push is now-or-never and is never sent for queued items.",variant:"info"},{type:"heading",content:"Digest interval",level:3},{type:"paragraph",content:'When your alert mode is "High priority only" or "Digest", the digest interval controls how often the batched email is sent â every 15 minutes, every hour, or every 4 hours.'},{type:"heading",content:"Minimum priority to alert",level:3},{type:"paragraph",content:"The AI assigns a priority (low, normal, or high) to every escalation. Set a minimum threshold so escalations below it stay silent on email and push while still appearing in your inbox:"},{type:"list",content:"Low â alert for all escalations\nNormal â skip low-priority escalations\nHigh only â skip low and normal, alert only on high priority"},{type:"heading",content:"Quiet hours",level:3},{type:"paragraph",content:"Set a daily quiet-hours window (for example 10:00 PM to 8:00 AM) to silence real-time alerts overnight. During quiet hours, escalation emails are queued and delivered once the window ends, while mobile push is suppressed entirely and does not catch up afterward. Quiet hours are evaluated in your own timezone, which you set on your profile."},{type:"heading",content:"Test your settings",level:3},{type:"paragraph",content:'Use the "Test these settings" control to fire a sample escalation at a chosen priority against your saved settings and see exactly what would happen â sent immediately, queued into a digest, or dropped. If your settings would send, a real test email and push are delivered so you can confirm the alerts reach you. Save any changes before testing, since the test always runs against your saved settings.'},{type:"heading",content:"Recent activity summary",level:3},{type:"paragraph",content:"The page shows a 7-day summary of how your saved settings handled escalations directed at you: total escalations by priority, how many emails and pushes were sent versus held back, and how many real-time interruptions your settings prevented. Counts are per channel, so a single escalation can produce both an email decision and a push decision."},{type:"callout",content:"A notification badge in the sidebar shows your unread count. Notifications include new messages, conversation assignments, AI agent escalations, and ticket updates.",variant:"tip"}]}]},{id:"channels",title:"Channels",description:"Connect and configure your messaging channels â live chat, email, WhatsApp, Instagram, and more.",icon:"Radio",articles:[{slug:"live-chat-widget",title:"Live Chat Widget",summary:"Install, customize, and configure the live chat widget on your website.",tags:["widget","live chat","embed","website","install","pre-chat survey","shopify","anonymous","email follow-up","offline reply","shareable link","visibility","hide widget"],updatedAt:"2026-06-21",content:[{type:"paragraph",content:"The Savena live chat widget lets your website visitors start conversations directly from your site. It is lightweight, customizable, and works on any website."},{type:"heading",content:"Installation",level:2},{type:"paragraph",content:"Go to Settings â Channels â Chat Widget. Copy the script snippet and paste it into your website's HTML, just before the closing </body> tag. The widget will appear on your site immediately."},{type:"heading",content:"Shopify auto-install",level:3},{type:"paragraph",content:"If you installed Savena from the Shopify App Store, the widget is added to your storefront automatically â no manual snippet to paste. The widget loads on every page of your store via Shopify's ScriptTag API. To take it off your storefront without uninstalling, set Widget visibility to Hidden under Settings â Live Chat â Installation; uninstalling the app from your Shopify admin fully removes it and disconnects the integration."},{type:"heading",content:"No website? Use the public chat link",level:3},{type:"paragraph",content:'You can also share a direct link to your widget using the public chat page (Settings â Channels â Chat Widget â Installation â "Share a direct chat link"). This is useful for QR codes, email signatures, or businesses that do not have a website yet. See the Public Chat Page article for details.'},{type:"heading",content:"Customization",level:2},{type:"paragraph",content:"Customize the widget appearance to match your brand:"},{type:"list",content:"Position â bottom-right or bottom-left on the page\
1nBrand colors â primary color to match your brand\nLogo â display your company logo in the widget header\nWelcome message â the greeting visitors see when they open the widget\nConversation starters â pre-defined quick replies to guide the conversation"},{type:"heading",content:"Pre-chat survey",level:2},{type:"paragraph",content:"Enable the pre-chat survey to collect information from visitors before the conversation starts. Configure custom fields like name, email, or a question about their inquiry. The survey message is customizable and helps your team have context before they respond."},{type:"heading",content:"Visibility and positioning",level:2},{type:"paragraph",content:"Control where and how the widget appears:"},{type:"list",content:"Desktop and mobile positioning â configure the widget button placement separately for each device type\nButton type â choose how the widget trigger appears on your site\nShow when offline â optionally display the widget even when no agents are online, so visitors can leave a message"},{type:"heading",content:"Sound notifications",level:2},{type:"paragraph",content:"Enable sound notifications in the widget so visitors hear an alert when a new message arrives. This helps keep visitors engaged while they browse other tabs."},{type:"heading",content:"Conversation starters",level:2},{type:"paragraph",content:'Conversation starters are pre-defined quick replies that appear when a visitor opens the widget. They help guide the conversation and reduce the time to first meaningful message. For example: "I have a billing question", "I need technical help", "I want to learn more about your product". Each starter is a toggle-driven entry with an emoji, label, and follow-up message.'},{type:"heading",content:"Anonymous visitor email capture",level:2},{type:"paragraph",content:"When an anonymous visitor reaches a point where no AI agent or operator can respond â for example, your AI agent escalates outside business hours and no operator is online â the widget asks for their email and name inline. This guarantees you can follow up even if they leave the page before getting a reply, and turns one-off visitors into reachable contacts. Submitted details are saved to the contact and shown on the conversation."},{type:"heading",content:"Offline email replies",level:2},{type:"paragraph",content:"If an operator replies in the inbox after an anonymous visitor has gone offline (more than a few minutes since their last activity), Savena emails the reply to the address they submitted. The customer can reply to that email and their response continues the same conversation thread in your inbox â no separate email channel setup required."},{type:"callout",content:"Email follow-up only happens for anonymous widget visitors who provided an email through the inline form. Identified contacts (logged-in users) do not get an email copy of operator replies.",variant:"info"},{type:"heading",content:"Workspace status and the widget",level:2},{type:"paragraph",content:"If your workspace subscription is canceled or your trial has fully expired, the widget stops loading on your sites and on the public chat page. Reactivating your subscription restores the widget within 60 seconds."},{type:"callout",content:"The widget works with all workflow triggers â you can trigger automations when a visitor opens the widget, views a specific page, scrolls to a certain depth, when their mouse leaves the window, or based on behavioral signals like rage clicks, idle time, and pages browsed.",variant:"tip"}]},{slug:"widget-visitor-followup",title:"Following up with Visitors Who Leave the Chat",summary:"How Savena re-engages anonymous widget visitors who close the tab before an operator replies.",tags:["widget","live chat","followup","email","anonymous","visitor","digest","unread","abandoned"],updatedAt:"2026-06-20",content:[{type:"paragraph",content:"A common problem with live chat: a visitor asks a question, the AI escalates, the visitor waits a few seconds, then closes the tab. Savena handles this in two stages so the conversation does not get lost."},{type:"heading",content:"Stage 1 â capturing contact info",level:2},{type:"paragraph",content:"When the AI escalates an anonymous widget visitor, the widget shows an inline form asking for the visitor's email and (optionally) n
1ame. The form is sent as a system message in the conversation itself, so it appears naturally in the chat flow rather than as a popup."},{type:"paragraph",content:"If the visitor submits the form, the email and name are saved to the contact immediately â even if they close the tab one second later. If a contact with the same email already exists in the workspace, the conversation is merged onto that contact rather than creating a duplicate."},{type:"heading",content:"Stage 2 â emailing the unread reply",level:2},{type:"paragraph",content:"Periodically, Savena scans open widget conversations for unread messages from operators or the AI. If all of the following are true, the visitor receives an email with the unread reply."},{type:"list",content:"The contact has a real email (not anonymous) and has not unsubscribed, hard bounced, or marked Savena emails as spam.\nThe contact has not been seen in the widget within a short grace period.\nThe oldest unread message is past the grace period (in case the visitor is about to come back).\nThe conversation is no longer in the escalated-and-waiting state â once a human picks it up, replies become eligible for the follow-up email."},{type:"paragraph",content:"Subsequent unread replies in the same conversation are deduplicated, so the visitor will not receive the same message twice."},{type:"callout",content:'For escalated conversations sitting in the unassigned queue with no operator reply yet, the visitor is not emailed â but operators are pulled in via the escalation digest (see "Notifications & Alerts"), closing the loop from the other side.',variant:"tip"}]},{slug:"email-channel",title:"Email Channel",summary:"Connect Gmail, Microsoft Outlook, or a custom email provider to manage email in Savena.",tags:["email","gmail","outlook","microsoft","IMAP","SMTP","channel","deliverability","bounce","unsubscribe","opt-out","sender"],updatedAt:"2026-05-01",content:[{type:"paragraph",content:"Connect your email accounts to receive and respond to customer emails directly from the Savena inbox. Savena supports Gmail and Microsoft Outlook via OAuth, and any email provider via manual IMAP/SMTP configuration."},{type:"heading",content:"Connecting Gmail",level:2},{type:"paragraph",content:'Go to Settings â Channels â Email and click "Connect Gmail". Sign in with your Google account and authorize Savena to access your inbox. New emails will appear as conversations in your Savena inbox.'},{type:"heading",content:"Connecting Microsoft Outlook",level:2},{type:"paragraph",content:'Click "Connect Microsoft" and sign in with your Microsoft account. The process is similar to Gmail â authorize access and your emails will flow into the unified inbox.'},{type:"heading",content:"Custom email providers (IMAP/SMTP)",level:2},{type:"paragraph",content:"For email providers other than Gmail and Outlook, use the manual configuration option. Enter your IMAP server details for receiving emails and SMTP server details for sending. This works with any standard email provider."},{type:"heading",content:"Email options",level:2},{type:"list",content:"Strip quoted text â automatically remove quoted reply chains to keep conversations clean\nStrip signatures â remove email signatures from incoming messages\nDefault priority â set a default priority level for new email conversations"},{type:"heading",content:"Multiple email accounts",level:2},{type:"paragraph",content:"You can connect multiple email accounts to a single workspace. Each account becomes a separate channel. Set a default sender for outbound emails and configure sync settings independently for each account."},{type:"callout",content:"Emails sent from Savena are delivered from your connected email account, not from a Savena address. Customers see your email address as the sender.",variant:"info"},{type:"heading",content:"Sender name in customer-facing emails",level:2},{type:"paragraph",content:"Customer-facing emails (such as widget follow-up replies) use your organization name as the sender, not the workspace name. This keeps the brand consistent for customers when you operate multiple workspaces under one organization."}
1,{type:"heading",content:"Deliverability and opt-outs",level:2},{type:"paragraph",content:"Savena tracks bounces, spam complaints, and unsubscribes automatically. Outbound emails include a one-click unsubscribe link and the standard List-Unsubscribe header so recipients can opt out without replying. Once a contact bounces hard, marks an email as spam, or unsubscribes, Savena will not send them further automated emails. The opt-out status is shown in the Contact Info panel inside the conversation. See the Email Deliverability article for full details."}]},{slug:"email-deliverability",title:"Email Deliverability & Unsubscribes",summary:"How Savena handles bounces, spam complaints, and unsubscribes to protect your sender reputation.",tags:["email","deliverability","bounce","complaint","unsubscribe","opt-out","sender reputation","list-unsubscribe","spam"],updatedAt:"2026-05-01",faq:!0,content:[{type:"paragraph",content:"Savena automatically handles email deliverability signals so you do not accidentally email contacts who have bounced, complained, or unsubscribed. This protects your sender reputation and keeps you compliant with anti-spam regulations."},{type:"heading",content:"Bounces",level:2},{type:"paragraph",content:"When an email cannot be delivered, the receiving mail server returns a bounce. Savena listens for bounce notifications and marks the contact as bounced. Future automated emails â such as widget follow-ups, broadcasts, and unresponsive-conversation check-ins â skip bounced contacts automatically."},{type:"heading",content:"Spam complaints",level:2},{type:"paragraph",content:"If a recipient marks one of your emails as spam, the mailbox provider sends a complaint notification. Savena records the complaint, marks the contact as opted out, and stops sending them automated emails. Repeated complaints can damage your sender reputation across all recipients, so it is important to honor them immediately."},{type:"heading",content:"Unsubscribes",level:2},{type:"paragraph",content:"Every outbound email from Savena includes a one-click unsubscribe link in the footer and the standard List-Unsubscribe header. When a recipient clicks unsubscribe (or their mail client uses the header), the request is verified with a signed token and the contact is marked as unsubscribed. They will not receive further automated emails from your workspace."},{type:"heading",content:"Viewing opt-out status",level:2},{type:"paragraph",content:"Open any conversation and check the Contact Info panel on the right. If a contact has bounced, complained, or unsubscribed, an indicator is shown. You can still send a one-off agent reply to a bounced or unsubscribed contact, but automated emails will not be delivered to them."},{type:"callout",content:"Bounce and complaint webhooks are wired up automatically when Savena email is enabled â no configuration is required. The opt-out list is workspace-scoped, so a contact unsubscribing from one workspace does not affect another.",variant:"info"},{type:"callout",content:"If a contact contacts you again after unsubscribing â for example, by replying to a thread or starting a new live chat conversation â you can still respond. The opt-out only blocks Savena from sending them automated outbound emails.",variant:"tip"}]},{slug:"public-chat-page",title:"Public Chat Page",summary:"Share a direct link to your live chat that opens the widget in a full-page experience â no website install required.",tags:["chat","public","link","shareable","widget","embedded","qr code","no website"],updatedAt:"2026-05-01",content:[{type:"paragraph",content:"Every workspace has a public chat page at savena.ai/chat/your-workspace-id. The page loads your chat widget in embedded mode so visitors can start a conversation without you needing to install the widget anywhere. Use it for QR codes on packaging, links in email signatures, or as a lightweight contact page for businesses that do not have a website."},{type:"heading",content:"Where to find your link",level:2},{type:"paragraph",content:'Go to Settings â Channels â Chat Widget â Installation. The "Share a direct chat link" card shows your public chat URL with a copy button.'},{type:"heading",content:"How it looks to visitors",level:2},{type:"paragraph",content:"The page renders your widget in embedded mode using your configured branding â primary color, logo, welcome message, and conversation starters. Visitors land directly in the chat with no other distractions. The widget behaves the same as on your website: AI agent replies, workflow triggers (where applicable), and operator escalation all work normally."},{type:"heading",content:"Use cases",level:2},{type:"list",content:"Add a QR code on physical packaging, receipts, or signage that opens the chat\nLink to it from email signatures and s
1ocial bios for one-click support\nUse it as your contact page if you do not have a website yet\nShare a direct support link in customer follow-ups"},{type:"callout",content:"The public chat page respects workspace billing status. If your workspace is canceled or your trial has expired, the page returns a friendly not-found message until the workspace is reactivated.",variant:"info"}]},{slug:"whatsapp-channel",title:"WhatsApp Business",summary:"Set up WhatsApp Business to communicate with customers on WhatsApp.",tags:["whatsapp","business","phone","channel","messaging","setup","connect"],updatedAt:"2026-06-19",content:[{type:"paragraph",content:"Connect WhatsApp Business to Savena to manage WhatsApp conversations alongside your other channels. Savena uses Meta's embedded signup, so the entire setup â including creating a Meta Business Portfolio and a WhatsApp Business Account â happens inside one popup."},{type:"heading",content:"Before you start",level:2},{type:"paragraph",content:"WhatsApp setup has more moving parts than Instagram or Facebook Messenger. Gather these before you click Connect."},{type:"list",content:"The phone number you want to use for customer messaging, plus the ability to receive an SMS or voice call on it for verification. This can be a landline or mobile number.\nIf the number is currently active on the consumer WhatsApp app or the WhatsApp Business mobile app, plan to migrate it â do not delete the app account preemptively or you may lose chat history. Meta will guide you through migration inside the popup.\nA Facebook account with admin access to your business â Meta uses this identity to attach the new WhatsApp Business Account to your Business Portfolio.\nYour legal business name, address, and a customer support email â Meta will ask for these during the embedded signup."},{type:"heading",content:"Connect WhatsApp step by step",level:2},{type:"list",content:'In Savena, open Settings â Social Media (or Settings â Channels).\nClick Connect WhatsApp. A popup window opens â allow popups for app.savena.ai if your browser blocks it.\nSign in with your Facebook account.\nCreate a new Meta Business Portfolio or select an existing one. The Business Portfolio is the top-level container that owns your WhatsApp Business Account.\nCreate a new WhatsApp Business Account or select an existing one. Enter your business display name, category, and timezone when prompted.\nAdd the phone number you want to use and verify it via SMS or voice call.\nReview and confirm the permissions Savena needs. Leave every requested permission checked.\nWait for the popup to close. Back in Savena, the channel card will switch to "Connected" and WhatsApp conversations will start appearing in your inbox.'},{type:"callout",content:'If embedded signup does not work for your setup â for example, your number is locked to another Business Account â use the "Having trouble? Try standard setup" link under the Connect button in Savena. Standard setup walks you through the same steps directly in Meta Business Manager.',variant:"tip"},{type:"heading",content:"Troubleshooting connection issues",level:2},{type:"list",content:'Popup blocked: allow popups for app.savena.ai and click Connect WhatsApp again.\nPhone number "already in use": the number is registered to another WhatsApp Business Account or the consumer WhatsApp app. Follow Meta\'s on-screen migration steps inside the popup â do not delete the app account first.\nVerification code never arrives: switch to voice call verification, or wait 10 minutes and retry. Meta rate-limits repeated attempts.\n"Business not verified" warnings: WhatsApp lets you start sending messages immediately, but advanced features (higher sending limits, official business badge) require Meta business verification. Submit verification documents inside Meta Business Manager.\nMessages stop syncing: an admin may have removed Savena from your Business Portfolio. Reconnect from Savena to refresh authorization.'},{type:"callout",content:"WhatsApp has specific messaging policies, including a 24-hour customer service window. Outside this window, you can only send pre-approved template messages.",variant:"warning"}]},{slug:"instagram-channel",title:"Instagram Direct Messages",summary:"Connect your Instagram business account to manage DMs, comments, and lead ads in Savena.",tags:["instagram","DM","social","channel","messaging","comments","lead ads","setup","connect"],updatedAt:"2026-06-19",content:[{type:"paragraph",content:"Connect your Instagram business or creator account to receive and respond to Instagram Direct Messages, handle comment interactions, and capture lead ad submissions â all from the Savena inbox."},{type:"heading",content:"Before you start",level:2},{type:"paragraph",content:"Savena uses Instagram Business Login â you sign in with your Instagram credentials, and your account does not need to be linked to a Facebook Page. Run through this checklist first so the connect flow succeeds on the first try."},{type:"list",content:'Your Instagram account must be set to Business or Creator. In the Instagram mobile app, open Settings â Account type and tools â Switch to professional account.\nIn the Instagram mobile app, open Settings â Messages and story replies and turn on "Allow access to messages" (sometimes shown as "Connected Tools"). Without this, Savena cannot read or reply to DMs.\nMake sure you know the Instagram username and password you will sign in with â the user signing in must be an admin of the Instagram account.\nIf this account was previously connected to another customer support tool, expect Meta to show you the existing permissions and let you re-consent.'},{type:"heading",content:"Connect Instagram step by step",level:2},{type:"list",content:'In Savena, open Settings â Social Media (or Settings â Channels).\nClick Connect Instagram. A popup window opens â make sure your browser is not blocking popups for app.savena.ai.\nSign in with your Instagram username and password in the popup.\nOn the Meta permissions screen, leave every requested permission checked. Unchecking any of them will break message sync, comment handling, or lead-ad capture.\nReview the Instagram account being connected, confirm, and wait for the popup to close.\nBack in Savena, the channel card will switch to "Connected" and Instagram DMs
1will start appearing in your unified inbox.'},{type:"callout",content:"The Meta permissions screen can look intimidating, but every permission Savena requests maps to a feature you are turning on â reading DMs, sending replies, monitoring comments, or capturing lead ads. Skipping any of them silently breaks the corresponding feature.",variant:"warning"},{type:"heading",content:"Troubleshooting connection issues",level:2},{type:"list",content:'Popup blocked: allow popups for app.savena.ai in your browser, then click Connect Instagram again.\n"No accounts available" or no Instagram account listed: the Instagram account is not set to Business or Creator yet, or "Allow access to messages" is off. Fix both in the Instagram mobile app and retry.\nPermissions screen was skipped: if you connected before, Meta may reuse your previous answers. Open Instagram â Settings â Accounts Center â Apps and websites, remove Savena, and reconnect.\nMessages stop syncing after a few days: the Instagram password was changed or the access token was revoked. Reconnect the channel from Savena to refresh authorization.'},{type:"heading",content:"Supported message types",level:2},{type:"list",content:"Text messages\nImages and videos\nAudio messages\nStickers\nStory replies and story mentions\nMedia shares"},{type:"heading",content:"Comment handling",level:2},{type:"paragraph",content:"Savena can monitor Instagram comments and create conversations from them. Configure comment qualification rules to filter which comments trigger conversations â based on keywords, specific post IDs, or campaign IDs. You can also send private replies to commenters directly from the inbox."},{type:"heading",content:"Lead ads",level:2},{type:"paragraph",content:"Capture submissions from Instagram lead ads as conversations in Savena. Configure the conversion mode to control how lead ad data is processed and routed to your team or workflows."},{type:"callout",content:"Instagram comments and lead ads can be routed to specific workflows or AI agents using the automation target settings in the channel configuration.",variant:"tip"}]},{slug:"facebook-messenger",title:"Facebook Messenger",summary:"Connect your Facebook Page to manage Messenger conversations in Savena.",tags:["facebook","messenger","social","channel","messaging","setup","connect"],updatedAt:"2026-06-19",content:[{type:"paragraph",content:"Connect your Facebook Page to receive and respond to Facebook Messenger conversations â and optionally capture Facebook lead ads â from the Savena inbox."},{type:"heading",content:"Before you start",level:2},{type:"paragraph",content:"Facebook Messenger uses Facebook Login. The person who signs in must be able to manage the Page you want to connect. Run through this checklist before opening the connect popup."},{type:"list",content:'You need a Facebook Page for your business â personal Facebook profiles cannot be connected.\nThe Facebook user you sign in with must have "Facebook access with full control" of the Page (the role previously called Admin). If you are not sure, ask whoever set up the Page to confirm or grant the role.\nKnow which Page you want to connect. If you run multiple Pages, only the ones you are an admin of will appear in the selector.\nIf you also run Facebook Lead Ads on this Page and want them captured in Savena, confirm the Page is set as the destination for those ads.'},{type:"heading",content:"Connect Facebook step by step",level:2},{type:"list",content:'In Savena, open Settings â Social Media (or Settings â Channels).\nClick Connect Facebook. A popup window opens â allow popups for app.savena.ai if your browser blocks it.\nSign in with the Facebook account that has admin access to the Page.\nOn the Page selection screen, choose the Page that receives your customer messages. You can select more than one if needed.\nOn the Meta permissions screen, leave every requested permission checked. Unchecking any of them will break message sync or lead-ad capture.\nReview your choices, confirm, and wait for the popup to close.\nBack in Savena, the channel card will switch to "Connected" and Messenger conversations will start appearing in y
1our unified inbox.'},{type:"callout",content:"If you connect multiple Pages, each Page becomes its own routing target in Savena. You can assign different workflows or AI agents per Page.",variant:"tip"},{type:"heading",content:"Troubleshooting connection issues",level:2},{type:"list",content:'Popup blocked: allow popups for app.savena.ai in your browser, then click Connect Facebook again.\n"No Pages available" or your Page is missing from the list: the Facebook user you signed in with is not an admin of an eligible Page. Sign in with the correct account, or ask the Page owner to grant you Facebook access with full control first.\nPermissions screen was skipped: Meta reuses previous answers when you have connected before. Open Facebook â Settings â Business Integrations, remove Savena, and reconnect.\nMessenger messages stop syncing: an admin may have removed Savena from Business Integrations, or the Page admin role changed. Reconnect from Savena to refresh authorization.'},{type:"heading",content:"Supported message types",level:2},{type:"list",content:"Text messages\nImages and videos\nAudio messages\nFile attachments"},{type:"callout",content:"Facebook Messenger conversations appear alongside all your other channels in the unified inbox. Your team can respond to Messenger, WhatsApp, email, and live chat messages from the same interface.",variant:"info"}]}]},{id:"ai-agent",title:"AI Agent",description:"Configure AI-powered agents that handle customer conversations automatically.",icon:"Bot",articles:[{slug:"ai-agent-overview",title:"AI Agent Overview",summary:"Understand what the AI agent can do and how it works.",tags:["AI","agent","automation","overview","shopify","orders","write actions","verification","custom fields"],updatedAt:"2026-06-21",content:[{type:"paragraph",content:"The AI agent is your automated support teammate. It uses your knowledge base and connected data to answer customer questions, manage conversations, and take the actions you enable, escalating to your team when it cannot resolve something on its own."},{type:"heading",content:"What the AI agent can do",level:2},{type:"list",content:"Answer customer questions using your knowledge base\nAssign conversations to the right agent or team\nUpdate customer profiles and contact information\nTrigger workflow automations\nCreate tickets for complex issues\nClose resolved conversations\nProvide support outside business hours"},{type:"heading",content:"How it works",level:2},{type:"paragraph",content:"When a customer sends a message, the AI agent analyzes the conversation context and your knowledge base to generate a relevant response. If the AI is confident in its answer, it replies automatically. If it is not confident, it escalates to a human agent while preserving the full conversation context."},{type:"callout",content:"The AI agent is built to admit uncertainty. It answers from your knowledge base and connected data, and when it finds no matching source it says so and escalates rather than guessing. It also cannot claim to have taken an action it did not actually perform.",variant:"tip"},{type:"heading",content:"Write-action verification",level:2},{type:"paragraph",content:"When the AI agent runs an integration action that changes data â for example, updating a shipping address or canceling an order â it inspects the response from the external system before telling the customer the change succeeded. If the returned data does not reflect the requested change, the AI raises the issue rather than falsely confirming success."},{type:"heading",content:"Rich Shopify context",level:2},{type:"paragraph",content:"For Shopify-connected workspaces, the AI has access to full order details â line items, fulfillment status, tracking numbers, shipping address, and customer info â so it can answer order-related questions without asking the customer to repeat what they already shared. It can also update partial shipping address fields, search products using full-text search, and read any custom fields you define on your products â which you can put to use however you like through the agent's instructions. See the Shopify Integration article for details."}]},{slug:"creating-ai-agent",title:"Creating and Configuring an AI Agent",summary:"Step-by-step guide to creating your agent and configuring it through the Overview, Guidance, Escalation, Knowledge, and Automations tabs.",tags:["AI","agent","create","configure","setup","guid
1ance","scope and boundaries","tone","escalation","assignment mode"],updatedAt:"2026-06-21",content:[{type:"paragraph",content:'You can create multiple AI agents per workspace, each with its own role, instructions, knowledge sources, and assignment behavior. To create one, go to AI Agent in the sidebar and click "Create Agent". The setup page is organized into tabs â Overview, Guidance, Escalation, Knowledge, and Automations â which this guide walks through in order.'},{type:"heading",content:"Overview tab",level:2},{type:"paragraph",content:"Start here to set the agent's identity and high-level voice:"},{type:"list",content:'Agent name â how the agent refers to itself in conversations\nActivate â the master switch that turns the agent on or off\nRole â a short description of what the agent specializes in (e.g. "You are a billing specialist handling payment, invoice, and subscription questions"). The role shapes how the agent interprets questions and what it treats as in-scope. Template chips (General support, Billing, Technical support, Onboarding, Sales) give you a starting point\nTone of voice â Humorous, Friendly, Neutral, Matter-of-fact, or Professional\nAnswer length â Concise, Standard, or Thorough'},{type:"heading",content:"Guidance tab",level:2},{type:"paragraph",content:"The Guidance tab is where you shape how the agent answers. Each section holds a list of short instruction items you can add, edit, enable, or disable:"},{type:"list",content:"Communication style â fine-tune the tone, style, and format of replies beyond the Overview defaults\nContext and clarification â when and how the agent should ask for more information\nContent and sources â which sources the agent may reference or share\nScope and Boundaries â tell the agent how your business works so it answers directly instead of escalating\nSpam handling â rules for detecting and ignoring low-quality or automated messages\nOthers â anything that doesn't fit the categories above"},{type:"heading",content:"Scope and Boundaries â teaching the agent your business",level:3},{type:"paragraph",content:"Scope and Boundaries is the most important section for getting accurate, on-brand answers. Use it to capture how your business actually works â what you do and don't sell, hours, shipping times, return policy, and how to handle specific scenarios. Phrase each item as behavior: \"If the customer asks about X, do Y.\" The agent generalizes across phrasings on its own, so you don't need to list every wording. Anything covered here is answered directly by the agent instead of being escalated to a human, and it's also where you tell the agent how to interpret data like product custom fields (see the Shopify Integration article for an example)."},{type:"heading",content:"Escalation tab",level:2},{type:"paragraph",content:"Control when and how the agent hands a conversation to a human:"},{type:"list",content:'Escalation Rules â deterministic conditions based on contact attributes and other data that should always trigger an escalation\nEscalation Guidance â fine-tune escalation behavior in specific scenarios that the rules don\'t capture\nPriority Rules â override how the agent classifies priority on escalation. Without rules it uses sensible defaults (anger â high, FYI â low, everything else â normal); add rules for business-specific signals like "refund mentions are always high"'},{type:"heading",content:"Knowledge tab",level:2},{type:"paragraph",content:"Give the agent source material to answer from: upload documents (PDFs, text files), paste content directly, or point it at your website URL. The agent reads and indexes this content and cites it when answering. See the Knowledge Base Management article for details."},{type:"heading",content:"Automations tab",level:2},{type:"paragraph",content:"Connect the agent to workflows and integration actions it can run during a conversation â for example, looking up a Shopify order or triggering a published workflow. Which actions are available depends on the integrations connected to your workspace."},{type:"heading",content:"Assignment and channels",level:2},{type:"paragraph",content:"Decide when the agent takes over a conversation and where it is active:"},{type:"list",content:"Always â the agent handles every new conversation automatically\nWhen unassigned â the agent only handles conversations with
1no human agent assigned\nOff â the agent is disabled and will not handle any conversations\nChannels â enable the agent on all channels or only specific ones (for example, the live chat widget and WhatsApp but not email)"},{type:"callout",content:"You can update the agent's role, guidance, knowledge, and rules at any time. Changes take effect for new conversations immediately, so it's easy to start simple and refine as you see how the agent performs.",variant:"info"},{type:"callout",content:'Spend most of your setup time on the Role and Scope and Boundaries sections. A clear role plus a handful of "if asked about X, do Y" boundaries resolves far more conversations correctly than a long list of generic instructions.',variant:"tip"}]},{slug:"knowledge-base",title:"Knowledge Base Management",summary:"Add, update, and manage the content your AI agent uses to answer questions.",tags:["knowledge","training","documents","FAQ","content"],updatedAt:"2026-04-01",content:[{type:"paragraph",content:"The knowledge base is what makes your AI agent smart. The more relevant content you add, the better the AI can answer your customers' questions."},{type:"heading",content:"Adding content",level:2},{type:"paragraph",content:"From the AI Agent â Knowledge page, you can add content in several ways:"},{type:"list",content:"Upload documents â PDF, TXT, DOCX files\nPaste text â copy and paste content directly\nWebsite URL â the AI will read and index your website pages automatically"},{type:"heading",content:"Updating content",level:2},{type:"paragraph",content:"You can add, replace, or delete training content at any time. The AI will start using the updated knowledge in new conversations right away. There is no need to retrain or restart."},{type:"callout",content:"Add your most common customer questions and their answers to the knowledge base. This gives the AI the best foundation for handling support requests.",variant:"tip"},{type:"heading",content:"Best practices",level:2},{type:"list",content:"Keep content clear and concise â the AI works best with well-structured information\nInclude FAQs, help articles, product documentation, and policy documents\nReview AI responses regularly and add missing information when you notice gaps\nRemove outdated content to prevent incorrect answers"}]},{slug:"ai-escalation",title:"AI Escalation to Human Agents",summary:"How the AI hands off conversations to your team when it needs help.",tags:["escalation","handoff","human","agent","transfer","escalate","assign"],updatedAt:"2026-05-01",faq:!0,content:[{type:"paragraph",content:"One of the most important aspects of the AI agent is knowing when to step back and let a human take over."},{type:"heading",content:"When does the AI escalate?",level:2},{type:"paragraph",content:"The AI escalates to a human agent when:"},{type:"list",content:"It cannot confidently answer the question from your knowledge base and connected data\nThe customer explicitly asks to speak to a human\nThe conversation involves a sensitive or complex issue it should not decide alone\nAn action it needs is disabled, or exceeds a limit you set (for example a discount above the auto-issue cap)\nIdentity verification fails repeatedly"},{type:"heading",content:"How escalation works",level:2},{type:"paragraph",content:"When the AI escalates, the full conversation history is preserved. Your agent picks up exactly where the AI left off â the customer does not need to repeat themselves. The AI can also add an internal note summarizing the conversation context to help the agent get up to speed quickly."},{type:"heading",content:"The escalate tool",level:2},{type:"paragraph",content:'Internally, the AI uses a single "escalate" tool to hand off a conversation to a human or team. The tool captures a reason for the handoff and routes to the team or agent configured in your AI agent settings. For anonymous widget visitors, the AI is also instructed to ask for an email before escalating, so you can follow up even if no operator is available.'},{type:"heading",content:"When no operator is available",level:2},{type:"paragraph",content:"If the AI escalates and no operator is online (or your escalation strategy is set to the unassigned queue), the conversation is moved into the unassigned queue and flagged as awaiting a human. Two things then happen automatically."},{type:"list",content:'Operator digest â pending escalations are grouped per operator and delivered as a single digest email, ordered by priority, so a burst of escalations does not flood inboxes. See "Notifications & Alerts" for how to tune cadence, priority threshold, and quiet hours.\nVisitor follow-up â for anonymous widget visitors, the AI asks for an email and name inline before escalating. Once submitted, the contact is saved even if the visitor closes the tab. When an operator eventually replies, Savena emails the visitor the unread reply so they can pick the conversation back up. See "Following up with Visitors Who Leave the Chat" for details.'},{type:"callout",content:"You can configure escalation behavior in the AI agent settings, including which team or agent receives escalated conversations.",variant:"info"}]},{slug:"ai-assist",title:"AI Assist",summary:"Use AI-powered writing tools to draft, improve, and translate messages in conversations.",tags:["AI","assist","copilot","writing","draft","translate"],updatedAt:"2026-04-18",content:[{type:"paragraph",content:"AI Assist is a side panel available to agents during conversations. It provides AI-powered writing tools that help you compose better responses faster."},{type:"heading",content:"Available actions",level:2},{type:"list",content:"Draft â generate a full reply based on the conversation context and your knowledge base\nImprove â enhance the tone and clarity of a message you have already written\nExpand â make a short message more detailed and thorough\nShorten â condense a long message into a concise version\nTranslate â translate your message into the customer's language"},{type:"heading",content:"How to use it",level:2},{type:"paragraph",content:"Open the AI Assist panel from the conversation view. Select an action, and the AI will generate content based on the conversation history and your agent's knowledge base. You can review and edit the suggestion before sending it to the customer."},{type:"callout",content:"AI Assist uses your knowledge base to generate accurate responses. The more comprehensive your knowledge base, the better the AI suggestions will be.",variant:"tip"}]},{slug:"ai-feedback",title:"AI Response Feedback",summary:"Rate AI responses to help improve your agent's performance over time.",tags:["AI","feedback","rating","quality","improvement"],updatedAt:"2026-04-18",content:[{type:"paragraph",content:"Savena includes a feedback system that lets your team rate AI agent responses. This helps you track how
1well the AI is performing and identify areas where the knowledge base needs improvement."},{type:"heading",content:"How feedback works",level:2},{type:"paragraph",content:"When the AI agent sends a message in a conversation, your team can rate the response as good or bad. You can also add a note explaining why the response was helpful or what went wrong. This feedback is tracked in the AI agent analytics."},{type:"heading",content:"Agent memory",level:2},{type:"paragraph",content:"You can add notes to a contact's profile and flag them as agent memory. When flagged, the AI agent will reference these notes in future conversations with that contact, providing more personalized and context-aware responses."},{type:"callout",content:"Review AI feedback regularly in the analytics dashboard to identify gaps in your knowledge base and improve the AI's accuracy over time.",variant:"tip"}]}]},{id:"workflows",title:"Workflows & Automation",description:"Build visual automations to handle repetitive tasks and route conversations.",icon:"Workflow",articles:[{slug:"workflows-overview",title:"Workflows Overview",summary:"Understand how workflows automate your customer support operations.",tags:["workflows","automation","overview","rules","canvas","variables"],updatedAt:"2026-04-26",content:[{type:"paragraph",content:"Workflows are visual automations you build with a drag-and-drop canvas. They let you automate repetitive tasks like greeting customers, collecting information, routing conversations, and executing actions in external systems."},{type:"heading",content:"How workflows work",level:2},{type:"paragraph",content:"Every workflow starts with a trigger â an event that kicks off the automation, such as a new conversation opening, a visitor reaching a specific page, or behavioral signals like high engagement scores, rage clicks, or idle visitors. When the trigger fires and its conditions are met, the workflow moves through a sequence of steps. Each step performs an action and then passes control to the next step. Steps can branch into different paths based on conditions, creating decision trees that handle complex scenarios automatically."},{type:"heading",content:"The visual canvas",level:2},{type:"paragraph",content:"You build workflows on a visual canvas where each step appears as a card connected by lines. Drag steps from the toolbar, connect them by dragging between cards, and configure each step by clicking on it. The canvas gives you a clear picture of your entire automation flow at a glance."},{type:"heading",content:"Workflow components",level:2},{type:"list",content:"Trigger â the event that starts the workflow (new conversation, page view, chat opened, behavioral signals, manual, etc.) with optional conditions that filter when it fires\nSteps â the individual actions your workflow performs, connected in sequence\nBranches â conditional paths that route conversations based on data or time\nVariables â data collected during the workflow (from Ask Question steps) that can be used in later steps"},{type:"heading",content:"Available step types",level:2},{type:"list",content:"Send Message â send a static or AI-generated message to the customer\nAsk Question â collect and validate customer input\nBranch â route conversations based on contact fields or variables\nRun Action â execute an integration action (Shopify, Stripe, etc.)\nAssign To â assign the conversation to a user, team, or AI agent\nClose Conversation â end the conversation\nWait â pause the workflow for a duration\nDate & Time â route based on business hours\nJump to Step â loop back to a previous step\nTrigger Workflow â start another workflow"},{type:"heading",content:"Workflow variables",level:2},{type:"paragraph",content:"When an Ask Question step collects a response, it can save the answer to a workflow variable. These variables are available throughout the rest of the workflow â you can use them in message text, as input to integration actions, or as conditions in Branch steps. For example, collect an order number, then pass it to a Shopify lookup action."},{type:"heading",content:"Priority and queuing",level:2},{type:"paragraph",content:"Each workflow has a priority from 1 to 10. When multiple workflows could trigger at the same time, higher-priority workflows run first. If a workflow is already active, new workflows can either wait in a queue or preempt the active workflow if they have higher priority."},{type:"callout",content:"AI agents can trigger workflows during conversations. Set up a manual trigger with AI agent activation enabled, and the AI will start the workflow when it detects the right intent â combining AI intelligence with structured automation.",variant:"tip"}]},{slug:"triggers-and-conditions",title:"Triggers & Conditions",summary:"Learn about the events that can start a workflow, trigger configuration options, and conditions you can apply.",tags:["trigger","condition","event","filter","workflow","AI agent trigger","behavioral","engagement score","rage click","idle","ecommerce"],updatedAt:"2026-04-26",content:[{type:"paragraph",content:"Every workflow starts with a trigger â an event that kicks off the automation. You can add conditions to filter when the workflow actually runs, and configure advanced options like priority, once-per-contact limits, and AI agent activation."},{type:"heading",content:"Available triggers",level:2},{type:"list",content:"Conversation opened â fires when a new conversation is created from any channel\nManual â triggered manually by an agent or programmatically via the API\nFirst customer visit â fires the first time a visitor interacts with your widget\nReturn visit â fires when a returning visitor starts a new session\nMouse leave â fires when the visitor's mouse leaves the browser window (widget only
1)\nScroll â fires when the visitor scrolls past a configurable depth threshold (widget only)\nPage view â fires when a visitor views a specific page matching a URL pattern (widget only)\nChat opened â fires when a visitor opens the chat widget\nEngagement score â fires once when a visitor's composite engagement score crosses a configured threshold (widget only, behavioral)\nRage click â fires when a visitor rapidly clicks the same area, indicating frustration or a broken element (widget only, behavioral)\nForm frustration â fires when a visitor repeatedly focuses and abandons form fields without submitting (widget only, behavioral)\nIdle detected â fires when a visitor stops all interaction for a configurable duration (widget only, behavioral)\nPages browsed â fires when a visitor navigates between pages, after a minimum page count is reached (widget only, behavioral)\nEcommerce signal â fires when a visitor is detected on an ecommerce page such as product, cart, or checkout (widget only, behavioral)"},{type:"heading",content:"Trigger configuration",level:2},{type:"paragraph",content:"Each trigger type has specific configuration options:"},{type:"list",content:'Page view â set a URL pattern to match (e.g., "/pricing" or "/docs/*")\nScroll â set a depth threshold from 0 to 100 percent\nConversation opened â optionally filter by conversation source\nEngagement score â set a score threshold from 0 to 100 (default 75); optionally filter by URL pattern\nIdle detected â choose an idle duration (30 seconds, 1 minute, 2 minutes, or 5 minutes); optionally filter by page type or URL pattern\nPages browsed â set the minimum number of pages visited before triggering (e.g., 3)\nEcommerce signal â filter by page type (product, cart, checkout, category, search, or any)\nRage click and form frustration â optionally filter by URL pattern'},{type:"heading",content:"Once per contact",level:3},{type:"paragraph",content:'Enable "trigger once per contact" to ensure the workflow only runs one time for each contact. This is useful for onboarding flows or first-visit welcome messages where you do not want the workflow to repeat.'},{type:"heading",content:"Behavioral triggers",level:2},{type:"paragraph",content:"Behavioral triggers respond to how a visitor interacts with your website in real time rather than a single discrete event. They use the Savena widget to monitor scroll depth, time on page, mouse movement, click patterns, form interactions, and page navigation. Behavioral triggers are available only for the website chat widget channel."},{type:"paragraph",content:'All behavioral triggers support an optional URL pattern filter that restricts the trigger to pages matching a specific substring (case-insensitive). For example, set the URL pattern to "/pricing" to only trigger on your pricing page.'},{type:"callout",content:'Enable "trigger once per contact" for behavioral triggers so each visitor receives the message at most one time. Without this setting, triggers like idle detected or pages browsed could fire repeatedly during the same session.',variant:"tip"},{type:"heading",content:"Engagement score calculation",level:3},{type:"paragraph",content:"The engagement score is a composite value from 0 to 100 based on four weighted signals: scroll depth (30%), time on page (30%), mouse activity (20%), and click count (20%). The score only increases during a session and resets when the page is reloaded. The trigger fires once when the score crosses the configured threshold."},{type:"heading",content:"Priority and execution mode",level:3},{type:"paragraph",content:"Set a priority from 1 to 10 (default 5) to control which workflow runs first when multiple workflows could trigger at the same time. Higher priority workflows run before lower priority ones. The execution mode determines behavior when another workflow is already active:"},{type:"list",content:"Queueable (default) â the workflow waits in a queue until the active workflow finishes\nPreemptive â the workflow interrupts the active workflow if it has higher priority"},{type:"heading",content:"AI agent trigger",level:3},{type:"paragraph",content:"Manual workflows can be triggered by your AI agents during conversations. Enable the AI agent trigger and provide an intent description and example messages so the AI knows when to activate this workflow. You can also choose which AI agents have access â all agents or only specific ones."},{type:"heading",content:"Conditions",level:2},{type:"paragraph",content:"Add conditions to control whether the workflow runs when the trigger fires. All conditions must pass (AND logic) for the workflow to start. Conditions can check:"},{type:"list",content:"Conversation source â the channel the conversation came from\nConversation status â open, assigned, resolved, etc.\nConversation priority â low, medium, high, urgent\nContact fields â name, first name, last name, email, phone\nAssignee status â whether the conversation is currently assigned\nURL and source â the page URL or traffic source that triggered the workflow\nConversation metadata â source type, platform, campaign ID, ad ID, form ID, post ID, comment text, trigger keyword"},{type:"heading",content:"Condition operators",level:3},{type:"paragraph",content:"Each condition compares a field against a value using an operator:"}
1,{type:"list",content:"Equals / Not equals â exact match comparison\nContains / Not contains â partial text match\nExists / Not exists â checks whether the field has or lacks a value\nHas any of / Has all of / Has none of â match against multiple comma-separated values"},{type:"callout",content:"Not all operators are available for every condition category. For example, assignee status only supports equals, exists, and not exists. The workflow builder automatically shows only the valid operators for each field.",variant:"info"},{type:"heading",content:"Example use cases",level:2},{type:"list",content:'Trigger on conversation opened with a condition that the source is WhatsApp to run a WhatsApp-specific greeting\nTrigger on page view matching "/pricing" to proactively offer help to visitors on your pricing page\nTrigger manually with AI agent activation so the AI can start a refund workflow when it detects the customer wants a refund\nTrigger on first visit with once-per-contact enabled to send a one-time welcome message\nTrigger on engagement score with a threshold of 75 to proactively offer help to highly engaged visitors\nTrigger on rage click with once-per-contact enabled to detect and assist frustrated visitors before they leave\nTrigger on idle detected with a 60-second duration on checkout pages to nudge visitors who may be stuck\nTrigger on ecommerce signal filtered to cart pages to reduce cart abandonment with proactive assistance'}]},{slug:"behavioral-triggers",title:"Behavioral Triggers",summary:"Detect visitor engagement patterns like rage clicks, idle time, and form frustration to trigger proactive workflows.",tags:["behavioral","triggers","engagement score","rage click","form frustration","idle","ecommerce","navigation","widget","workflow"],updatedAt:"2026-04-26",content:[{type:"paragraph",content:"Behavioral triggers let you start workflows based on how visitors interact with your website â not just what page they visit, but how they engage with it. They detect signals like frustration, high engagement, inactivity, and browsing patterns in real time through the Savena chat widget."},{type:"heading",content:"Why behavioral triggers matter",level:2},{type:"paragraph",content:"Traditional triggers fire on discrete events like opening a conversation or visiting a page. Behavioral triggers go deeper by analyzing interaction patterns. A visitor who scrolls through your entire pricing page, moves their mouse over feature comparisons, and clicks multiple elements is showing high purchase intent. A visitor who clicks the same button five times in rapid succession is frustrated. Behavioral triggers turn these signals into automated actions."},{type:"heading",content:"Available behavioral triggers",level:2},{type:"heading",content:"Engagement score",level:3},{type:"paragraph",content:"Fires once when a visitor's composite engagement score crosses a configured threshold. The score ranges from 0 to 100 and is calculated from four weighted signals: scroll depth (30%), time on page (30%), mouse activity (20%), and click count (20%). The score only increases during a session and resets on page reload."},{type:"list",content:"Score threshold â the minimum score to trigger (default 75)\nURL pattern â optional URL substring filter to limit which pages are monitored"},{type:"heading",content:"Rage click",level:3},{type:"paragraph",content:"Fires when a visitor rapidly clicks the same area of the page multiple times. This is a strong signal of frustration â usually caused by a broken button, an unresponsive element, or confusing UI. Detecting rage clicks lets you intervene before the visitor abandons your site."},{type:"list",content:"URL pattern â optional URL substring filter\nRecommended: enable trigger once per contact to avoid repeated messages"},{type:"heading",content:"Form frustration",level:3},{type:"paragraph",content:"Fires when a visitor repeatedly focuses on form fields and then abandons them without submitting the form. This pattern indicates the visitor is struggling with a form â perhaps the fields are confusing, validation is unclear, or the form is too long. Proactively offering help can recover these leads."},{type:"list",content:"URL pattern â optional URL substring filter\nRecommended: enable trigger once per contact"},{type:"heading",content:"Idle detected",level:3},{type:"paragraph",content:"Fires when a visitor stops all interaction â no mouse movement, scrolling, or keyboard input â for a configurable duration. This can indicate a distracted visitor, someone who is stuck, or a tab left open. Use it to send a re-engagement nudge on high-value pages like pricing, checkout, or onboarding flows."},{type:"list",content:"Idle duration â how long the visitor must be idle before triggering: 30 seconds, 1 minute, 2 minutes, or 5 minutes\nPage type â optional filter to trigger only on specific page types: product, cart, checkout, category, or search\nURL pattern â optional URL substring filter (used when no page type is selected)"},{type:"heading",content:"Pages browsed",level:3},{type:"paragraph",content:"Fires when a visitor navigates between pages on your site. Works on both single-page apps and traditional multi-page sites like Shopify. You configure a minimum page count, and the trigger fires once that threshold is reached. This identifies visitors who are actively browsing and likely in a research or evaluation phase."},{type:"list",content:"Minimum pages visited â the number of pages the visitor must view before the trigger fires (e.g., 3)"},{type:"heading",content:"Ecommerce signal",level:3},{type:"paragraph",content:"Fires when the widget detects that a visitor is on an ecommerce-related page. Detection uses a combination of URL patterns (e.g., /cart, /checkout, /product) and page content analysis. This lets you target visitors at specific stages of the buying journey without manually configuring URL patterns for every page."},{type:"list",content:"Page type â filter by page type: product, cart, checkout, category, search, or any\nThe trigger auto-detects page types, so you only need to choose which type to respond to"},{type:"heading",content:"Shared configuration options",level:2},{type:"paragraph",content:"All behavioral triggers share these optional settings in addition to their trigger-specific configuration:"},{type:"list",content:'URL pattern â a case-insensitive substring match against the page URL, limiting the trigger to specific pages (e.g., "/pricing" or "/checkout")\nTrigger once per contact â ensures each contact triggers the workflow at most once within 30 days\nPriority and execution mode â same as all other triggers, controlling which workflow runs first when multiple triggers fire simultaneously\nConditions â you can add trigger conditions (e.g., filter by contact email or conversation source) just like any other trigger type'},{type:"heading",content:"Workflow presets for behavioral triggers",level:2},{type:"paragraph",content:"Savena includes six ready-to-use workflow presets in the Behavioral category. Each preset comes pre-configured with an appropriate trigger type, sensible defaults, and starter steps. You can use them as-is or customize them as a starting point."},{type:"list",content:"Engaged visitor outreach â engagement score trigger with a threshold of 75 and a proactive outreach message\nRage click support â rage click trigger with a help message and a follow-up question to collect issue details\nForm frustration help â form frustration trigger with an offer to assist with the form\nIdle visitor nudge â idle detected trigger with a 60-second duration and a re-engagement message\nCart page assist â ecommerce signal trigger filtered to cart pages with a purchase assistance message\nMulti-page engagement â pages browsed trigger requiring 3 pages, with an outreach message and an intent-capture question"},{type:"callout",content:'To use a preset, go to the Workflows page and click "New workflow". Select a preset from the Behavioral category. The trigger and first steps are pre-configured â publish it immediately or customize the steps to fit your use case.',variant:"tip"},{type:"heading",content:"Best practices",level:2},{type:"list",content:'Always enable "trigger once per contact" for behavioral triggers to avoid sending the same message repeatedly during a session\nUse URL pattern filters to
1scope triggers to relevant pages â an idle nudge on a blog post feels different from one on a checkout page\nStart with the engagement score trigger if you are new to behavioral triggers â it is the most general-purpose and hardest to get wrong\nCombine behavioral triggers with conditions to further refine targeting â for example, only trigger for visitors whose email exists (known contacts) or whose lifecycle stage equals "lead"\nSet trigger priority appropriately â a rage click support workflow should have higher priority than a general engagement outreach so it takes precedence when both fire\nTest behavioral workflows on your own site before publishing by navigating as a visitor and confirming the trigger fires at the right moment'},{type:"heading",content:"Example workflows",level:2},{type:"list",content:"Proactive sales: engagement score >= 75 on /pricing -> send outreach message -> ask question to qualify -> assign to sales team\nFrustration recovery: rage click detected -> send empathetic help message -> ask what went wrong -> assign to support\nCart abandonment prevention: ecommerce signal on cart page -> wait 30 seconds -> send assistance message -> ask if they need help checking out\nRe-engagement: idle for 60 seconds on checkout page -> send nudge -> offer discount code via message\nResearch visitor capture: pages browsed after 3 pages -> send personalized greeting -> ask what they are looking for -> save response to contact field"},{type:"callout",content:"Behavioral triggers are widget-only. They require the Savena chat widget to be installed on your website. They do not work for conversations that originate from email, WhatsApp, Instagram, or other non-widget channels.",variant:"warning"}]},{slug:"workflow-actions",title:"Workflow Step Types",summary:"A quick reference of all 10 workflow step types and what each one does.",tags:["actions","steps","workflow","reference","overview"],updatedAt:"2026-04-18",content:[{type:"paragraph",content:"Workflows are built from 10 step types. Each step performs a specific task and passes control to the next step in the flow. Here is a quick reference of every step type â click through to each step's dedicated article for full configuration details and examples."},{type:"heading",content:"Messaging",level:2},{type:"list",content:"Send Message â send a static text message or an AI-generated response to the customer\nAsk Question â send a question and wait for the customer's reply, with automatic format validation and the ability to save responses to variables or contact fields"},{type:"heading",content:"Routing and logic",level:2},{type:"list",content:"Branch â evaluate conditions on contact fields or workflow variables and route the conversation down different paths\nDate & Time â check the current time against a business hours schedule and route accordingly\nJump to Step â loop back to a previous step in the workflow, with a max-jumps limit to prevent infinite loops\nTrigger Workflow â start another published workflow, optionally from a specific step, to reuse common sequences"},{type:"heading",content:"Actions and assignment",level:2},{type:"list",content:"Run Action â execute an integration action (Shopify, Stripe, HubSpot, or custom) with input bindings and optional customer confirmation\nAssign To â assign the conversation to a specific user, team, AI agent, or distribute automatically with round-robin or least-open logic"},{type:"heading",content:"Flow control",level:2},{type:"list",content:"Wait â pause the workflow for a specified duration (minutes, hours, or days) before continuing\nClose Conversation â mark the conversation as resolved and end the workflow"},{type:"heading",content:"Output paths",level:2},{type:"paragraph",content:"Most steps have a single output path that leads to the next step. Some steps have additional output paths for handling different outcomes:"},{type:"list",content:"Ask Question â reply, timeout (optional), delivery failure (optional)\nRun Action â success, declined (optional), failure (optional)\nAssign To â assigned, timeout (optional)\nBranch â one path per branch plus a default\nDate & Time â success (within hours), failure (outside hours)"},{type:"callout",content:"Chain steps together to build complete automation flows. A typical workflow might start with a welcome message, ask a question to collect information, branch based on the answer, run an integration action, and assign to a team â all without human intervention.",variant:"tip"}]},{slug:"send-message-step",title:"Send Message Step",summary:"Send a static text or AI-generated reply to the customer during a workflow.",tags:["workflow","send message","step","AI agent","reply"],updatedAt:"2026-04-18",content:[{type:"paragraph",content:"The Send Message step delivers a message to the customer as part of your workflow. It supports two modes: static text where you write the exact message, and AI agent mode where the AI generates a contextual response."},{type:"heading",content:"When to use this step",level:2},{type:"paragraph",content:"Use the Send Message step whenever your workflow needs to communicate with the customer â welcome messages, confirmations, status updates, follow-ups, or AI-powered responses to complex questions."},{type:"heading",content:"Configuration",level:2},{type:"heading",content:"Static mode",level:3},{type:"paragraph",content:"Write the exact message text you want to send. You can include personalization variables like the customer's name or email to make messages feel personal. Static mode is ideal when you want full control over the wording."},{type:"heading",content:"AI agent mode",level:3},{type:"paragraph",content:"Select one of your AI agents and provide optional instructions. The AI generates a contextual response using the agent's knowledge base, the conversation history, and your instructions. This is useful when the response needs to adapt to what the customer said."},{type:"heading",content:"Output paths",level:2},{type:"paragraph",content:"This step has a single output path that proceeds to the next step after the message is sent."},{type:"callout",content:"Use AI agent mode when you need dynamic, context-aware responses. Use static mode for fixed messages like confirmations or greetings where you want exact wording.",variant:"tip"},{type:"heading",content:"Example use cases",level:2},{type:"list",content:'Send a personalized welcome message when a new conversation starts\nDeliver an AI-generated answer to a customer question using your knowledge base\nSend a confirmation message after a successful action (e.g., "Your refund has been processed")\nProvide after-hours messaging explaining when your team will be back'}]},{slug:"ask-question-step",title:"Ask Question Step",summary:"Collect and validate customer input with different question types and optional timeout handling.",tags:["workflow","ask question","step","input","validation","variable"],updatedAt:"2026-04-18",content:[{type:"paragraph",content:"The Ask Question step sends a question to the customer and waits for their reply. You can validate the response format automatically and save the answer for use in later steps."},{type:"heading",content:"When to use this step",level:2},{type:"paragraph",content:"Use this step whenever you need to collect information from the customer â email addresses, phone numbers, order IDs, satisfaction ratings, or choices from a menu of options."},{type:"heading",content:"Question types",level:2},{type:"list",content:"Text â free-form text input\nNumber â numeric input with optional min and max values\nEmail â validates that the response is a valid email address\nPhone â validates ph
1one number format\nWebsite â validates URL format\nDate â collects a date\nTime â collects a time\nRating â 5-star rating scale\nMultiple choice â presents predefined options for the customer to choose from"},{type:"heading",content:"Saving responses",level:2},{type:"paragraph",content:"You can save the customer's reply in two ways. Save to a workflow variable to use the value in later steps (e.g., pass an order number to a Run Action step). Or save directly to a contact field to update the customer's profile (e.g., save their email to the contact record)."},{type:"heading",content:"Configuration",level:2},{type:"list",content:"Question â the text to send to the customer\nQuestion type â the format and validation to apply\nSave to variable â store the response in a named workflow variable\nSave to contact field â optionally write the response to a contact profile field\nMultiple choice options â the list of choices (for multiple choice type)\nNumber min/max â value range limits (for number type)"},{type:"heading",content:"Output paths",level:2},{type:"list",content:"Reply â the customer responded successfully and the answer passed validation\nTimeout â the customer did not reply within the timeout period (optional)\nDelivery failure â the message could not be delivered to the customer (optional)"},{type:"heading",content:"Timeout branch",level:3},{type:"paragraph",content:"Enable the timeout branch and set a duration in minutes, hours, or days. The default timeout is 7 days. If the customer does not respond within that time, the workflow follows the timeout path instead of waiting forever."},{type:"heading",content:"Delivery failure branch",level:3},{type:"paragraph",content:"Enable the failure branch to handle cases where the message could not be delivered â for example, if the messaging channel is disconnected or the customer has blocked messages."},{type:"callout",content:"Always enable the timeout branch for critical data collection steps. This prevents workflows from stalling if a customer goes silent, and lets you follow up or route the conversation elsewhere.",variant:"tip"},{type:"heading",content:"Example use cases",level:2},{type:"list",content:'Collect an email address before assigning the conversation to a team\nAsk for a satisfaction rating after resolving a conversation\nPresent a multiple-choice menu for routing (e.g., "Billing", "Technical Support", "Sales")\nCollect an order number before looking it up via a Run Action step'}]},{slug:"branch-step",title:"Branch Step",summary:"Route conversations down different paths based on contact fields or workflow variables.",tags:["workflow","branch","step","condition","routing","logic"],updatedAt:"2026-04-18",content:[{type:"paragraph",content:"The Branch step evaluates conditions and sends the conversation down different paths. Use it to build decision trees and route conversations based on customer data or collected information."},{type:"heading",content:"When to use this step",level:2},{type:"paragraph",content:"Use the Branch step to route conversations based on customer type (VIP vs. standard), responses from an Ask Question step, contact attributes like lifecycle stage or engagement score, or any workflow variable."},{type:"heading",content:"How branching works",level:2},{type:"paragraph",content:"Each branch has a name and a set of conditions. The workflow evaluates branches from top to bottom and follows the first branch whose conditions pass. If no branch matches, the conversation follows the default path. You must always have at least one branch plus the default route."},{type:"heading",content:"Conditions",level:2},{type:"paragraph",content:"Conditions can check contact fields or workflow variables against values using these operators:"},{type:"list",content:"Equals / Not equals â exact match comparison\nExists / Not exists â checks whether the field has or lacks a value\nContains / Not contains â partial text match\nHas any of / Has all of â match against multiple values"},{type:"heading",content:"Match logic",level:3},{type:"paragraph",content:"Within a single branch, you can combine multiple conditions using AND (all conditions must pass) or OR (any condition must pass). This lets you create precise routing rules."},{type:"heading",content:"Output paths",level:2},{type:"paragraph",content:"The Branch step has one output path per branch you define, plus a default output for conversations that do not match any branch. Each branch connects to a different sequence of steps."},{type:"callout",content:"Branches are evaluated in order from top to bottom. If a conversation could match multiple branches, only the first matching branch is followed. Order your branches from most specific to least specific to ensure correct routing.",variant:"warning"},{type:"heading",content:"Example use cases",level:2},{type:"list",content:'Route VIP customers (lifecycle stage equals "paid") to a senior agent while free users get AI support\nCheck if the customer already provided an email â if yes, skip the collection step\nRoute conversations by topic based on a multiple-choice selection from an Ask Question step\nSend different messages based on the customer\'s engagement score'}]},{slug:"run-action-step",title:"Run Action Step",summary:"Execute an integration action like looking up a Shopify order or processing a Stripe refund.",tags:["workflow","run action","step","integration","API","Shopify","Stripe"],updatedAt:"2026-04-18",content:[{type:"paragraph",content:"The Run Action step calls an external service through one of your connected integrations. Use it to look up data, create records, or trigger actions in Shopify, Stripe, HubSpot, or any custom integration."},{type:"heading",content:"When to use this step",level:2},{type:"paragraph",content:"Use this step whenever your workflow needs to interact with an external system â checking an order status, processing a refund, creating a CRM record, looking up a payment, or updating a ticket in another platform."},{type:"heading",content:"Configuration",level:2},{type:"list",content:'Integration â the connected integration to use (e.g., Shopify, Stripe)\nAction â the specific action to perform (e.g., "Look up order", "Process refund")\nInput bindings â maps workflow variables to the action\'s parameters\nShare response â whether to include the action result in the conversation context'},{type:"heading",content:"Input bindings",level:3},{type:"paragraph",content:'Input bindings let you pass data collected earlier in the workflow as parameters to the integration action. For example, map the workflow variable "order_id" (collected via an Ask Question step) to the Shopify "Look up order" action\'s order ID parameter.'},{type:"heading",content:"Confirmation gate",level:3},{type:"paragraph",content:'Enable "require confirmation" to show the customer a confirmation message before executing the action. This is important for irreversible actions like processing refunds or canceling orders. You can customize the confirmation message with variables. If the customer declines, the workflow follows the decline path.'},{type:"heading",content:"Output paths",level:2},{type:"list",content:"Success â the action executed successfully\nDeclined â the customer declined the confirmation prompt (only when confirmation is enabled)\nFailure â the action failed due to an API error, timeout, or invalid data"},{type:"heading",content:"Error handling",level:2},{type:"paragraph",content:"If the action fails, you can provide a custom error message to show the customer. The failure path lets you handle errors gracefully â for example, by apologizing and assigning the conversation to a human agent for manual resolution."},{type:"callout",content:"Always enable the failure path for critical actions. API calls can fail due to network issues, rate limits, or invalid data. A failure path ensures the customer is not left without a response.",variant:"tip"},{type:"heading",content:"Example use cases",level:2},{type:"list",content:"Look up a Shopify order by order number collected via an Ask Question step\nCheck Stripe payment status and share the result with the customer\nProcess a refund with a confirmation gate so the customer can confirm the amount"}]},{slug:"assign-to-step",title:"Assign To Step",summary:"Assign the conversation to a specific user, team, AI agent, or use automatic distribution.",tags:["workflow","assign","step","team","round robin","routing"],updatedAt:"2026-04-18",content:[{type:"paragraph",content:"The Assign To step routes the conversation to the right person or team. It supports direct assignment, automatic distribution with round-robin or least-open logic, and AI agent handoff."},{type:"heading",content:"When to use this step",level:2},{type:"paragraph",content:"Use this step after qualifying a lead, after a business-hours check, after routing by topic with a Branch step, or whenever you need to hand the conversation to a human agent or AI."},{type:"heading",content:"Assignment targets",level:2},{type:"list",content:"User â assign to a specific agent by name\nTeam â distribute among members of a specific team\nWorkspace â distribute among all agents in the workspace\nAI agent â hand the conversation to an AI agent\nUnassign â remove the current assignment"},{type:"heading",content:"Assignment logic",level:2},{type:"paragraph",content:"When assigning to a team or workspace, choose how conversations are distributed:"},{type:"list",content:"Round robin â assigns to agents in rotation for even distribution across the team\nLeast open â assigns to the agent who currently has the fewest open conversations"},{type:"heading",content:"Online-only filter",level:3},{type:"paragraph",content:'Enable "only online users" to skip agents who are currently offline. This ensures the customer is connected to someone who can respond right away. Combine this with the timeout branch to handle cases where no agents are online.'},{type:"heading",content:"Maximum concurrent conversations",level:3},{type:"paragraph",content:"Set a maximum number of open conversations per agent. Agents who have reached their limit are skipped during assignment. This helps prevent agent overload and ensures quality responses."},{type:"heading",content:"Output paths",level:2},{type:"list",content:"Assigned â the conversation was assigned successfully\nTimeout â no eligible agent was found within the timeout peri
1od (optional)"},{type:"heading",content:"Timeout branch",level:3},{type:"paragraph",content:'Enable timeout to handle situations where no agent is available. The default timeout is 1 hour, and you can adjust it in minutes, hours, or days. The timeout path lets you provide a fallback â for example, sending a "we will get back to you shortly" message, assigning to an AI agent, or creating a ticket.'},{type:"callout",content:"Combine the Assign To step with the Date & Time step for a complete routing setup. Check business hours first, then assign to a team during working hours or hand off to an AI agent outside hours.",variant:"tip"},{type:"heading",content:"Example use cases",level:2},{type:"list",content:"Round-robin assignment across a support team with an online-only filter\nAssign VIP customers to a senior agent after a Branch step identifies them\nHand off to an AI agent outside business hours after a Date & Time check\nUnassign and reassign to a different team when a conversation is escalated"}]},{slug:"close-conversation-step",title:"Close Conversation Step",summary:"End the conversation and mark it as resolved.",tags:["workflow","close","conversation","step","resolve","end"],updatedAt:"2026-04-18",content:[{type:"paragraph",content:"The Close Conversation step marks the conversation as closed and ends the workflow. It is a terminal step with
1no outgoing paths."},{type:"heading",content:"When to use this step",level:2},{type:"paragraph",content:"Use this step at the end of a workflow path that has fully resolved the customer's request, after a satisfaction survey has been completed, or to clean up conversations that are no longer active â for example, after a timeout with no response from the customer."},{type:"heading",content:"Configuration",level:2},{type:"paragraph",content:"This step has no configuration options. Simply add it as the final step in a workflow path to close the conversation when that path is reached."},{type:"heading",content:"Output paths",level:2},{type:"paragraph",content:"None. This is a terminal step â the workflow ends when this step executes. No further steps can follow it."},{type:"callout",content:"If the customer sends a new message after the conversation is closed, it reopens automatically. You can use workflow triggers to handle reopened conversations differently from new ones.",variant:"info"}]},{slug:"wait-step",title:"Wait Step",summary:"Pause the workflow for a specified duration before continuing.",tags:["workflow","wait","step","delay","pause","timer"],updatedAt:"2026-04-18",content:[{type:"paragraph",content:"The Wait step pauses the workflow for a set amount of time before moving to the next step. Use it to add natural delays between actions."},{type:"heading",content:"When to use this step",level:2},{type:"paragraph",content:"Use the Wait step to add a delay before a follow-up message, space out multiple messages so they feel more natural, give the customer time to complete an action, or wait before checking if an issue has been resolved."},{type:"heading",content:"Configuration",level:2},{type:"list",content:"Duration value â the number of time units to wait\nDuration unit â minute, hour, or day"},{type:"heading",content:"Output paths",level:2},{type:"paragraph",content:"Single output path that continues to the next step after the wait duration has elapsed."},{type:"callout",content:"Keep wait durations reasonable. A 1 to 5 minute wait between messages feels natural. Longer waits of hours or days are useful for follow-ups but should be paired with logic to check if the situation has changed.",variant:"tip"},{type:"heading",content:"Example use cases",level:2},{type:"list",content:"Wait 5 minutes after a welcome message before asking if the customer needs help\nWait 24 hours after resolving a conversation, then send a satisfaction survey\nWait 1 hour after assigning to a team, then check if anyone has responded\nAdd a short delay between multiple messages so they arrive naturally"}]},{slug:"date-time-step",title:"Date & Time Step",summary:"Route conversations based on whether the current time falls within your business hours.",tags:["workflow","date time","step","business hours","schedule","rout
1ing"],updatedAt:"2026-04-18",content:[{type:"paragraph",content:"The Date & Time step checks the current time against a business hours schedule and routes the conversation accordingly. Use it to provide different experiences during and outside working hours."},{type:"heading",content:"When to use this step",level:2},{type:"paragraph",content:"Use this step at the start of a workflow to route after-hours conversations to an AI agent, before an Assign To step to check if agents are available, or any time the workflow behavior should vary by time of day or day of week."},{type:"heading",content:"Configuration",level:2},{type:"heading",content:"Operator",level:3},{type:"list",content:"Is within â the success path is followed when the current time is within business hours\nIs not within â the success path is followed when the current time is outside business hours"},{type:"heading",content:"Timezone",level:3},{type:"paragraph",content:"Select the timezone for evaluating the schedule. This should match your team's working timezone so the business hours check is accurate."},{type:"heading",content:"Business hours schedule",level:3},{type:"paragraph",content:"Define start and end times for each day of the week. By default all seven days are enabled from 9:00 AM to 5:00 PM. Each day can be individually enabled or disabled â for example, you might disable Saturday and Sunday if your team does not work weekends."},{type:"heading",content:"Output paths",level:2},{type:"list",content:"Success â the time condition was met (e.g., currently within business hours)\nFailure â the time condition was not met (e.g., currently outside business hours)"},{type:"callout",content:"Place the Date & Time step early in your workflow, before any assignment or messaging logic. This way you can provide completely different conversation flows for business hours versus after hours.",variant:"tip"},{type:"heading",content:"Example use cases",level:2},{type:"list",content:"During business hours, assign to the support team with round-robin; outside hours, assign to the AI agent\nSend a different welcome message during and after business hours\nRoute weekend conversations to a dedicated on-call agent"}]},{slug:"jump-to-step-step",title:"Jump to Step",summary:"Loop back to a previous step in the workflow to retry or repeat a sequence.",tags:["workflow","jump","step","loop","retry","repeat"],updatedAt:"2026-04-18",content:[{type:"paragraph",content:"The Jump to Step step redirects the workflow back to a previous step, creating a loop. Use it to retry failed actions, re-ask questions after invalid input, or create menu-driven workflows."},{type:"heading",content:"When to use this step",level:2},{type:"paragraph",content:"Use this step after an invalid response to give the customer another chance, after a failed action to retry it, or to create menu-driven workflows where the customer can return to a main menu after completing a task."},{type:"heading",content:"Configuration",level:2},{type:"list",content:"Target step â the step to jump back to, selected from a dropdown of steps in the workflow\nMax jumps â the maximum number of times this jump can execute per workflow run, preventing infinite loops"},{type:"heading",content:"Infinite loop protection",level:2},{type:"paragraph",content:"The max jumps setting prevents the workflow from looping forever. The default is 1, meaning the workflow will jump back once and then proceed forward on the second pass. Increase this value for retry scenarios â for example, with max jumps set to 3, the customer gets three attempts before the workflow moves on."},{type:"heading",content:"Output paths",level:2},{type:"paragraph",content:"Single output path that is used when the maximum jump count has been reached. Otherwise the workflow jumps directly to the target step."},{type:"callout",content:"Always set a reasonable max jumps value. Without a limit, a workflow could loop indefinitely. A value of 2 to 3 is typical for retry scenarios.",variant:"warning"},{type:"heading",content:"Example use cases",level:2},{type:"list",content:"Re-ask for a valid email address after the customer provides an invali
1d format (max 2 retries)\nReturn to a main menu after completing a sub-flow so the customer can choose another option\nRetry a failed integration action once before escalating to a human agent"}]},{slug:"trigger-workflow-step",title:"Trigger Workflow Step",summary:"Start another workflow from within the current one to reuse common automation sequences.",tags:["workflow","trigger","step","sub-workflow","reuse","modular"],updatedAt:"2026-04-18",content:[{type:"paragraph",content:"The Trigger Workflow step starts another workflow from within the current one. Use it to break complex automations into reusable building blocks that can be shared across multiple workflows."},{type:"heading",content:"When to use this step",level:2},{type:"paragraph",content:"Use this step when multiple workflows share a common sequence (like data collection or a satisfaction survey), when a workflow becomes too large to manage easily, or when you want different entry points into the same process."},{type:"heading",content:"Configuration",level:2},{type:"list",content:"Workflow â the published workflow to trigger, selected from a dropdown\nStarting step â optionally start at a specific step within the target workflow instead of the beginning"},{type:"heading",content:"Starting at a specific step",level:3},{type:"paragraph",content:"By default the triggered workflow starts from its first step. You can optionally specify a step within the target workflow to start from. This is useful when you want to skip the initial steps of a shared workflow â for example, if the parent workflow has already collected the data that the first few steps of the target workflow would collect."},{type:"heading",content:"Output paths",level:2},{type:"paragraph",content:"Single output path that continues after the triggered workflow completes. The parent workflow resumes from this point."},{type:"callout",content:"Use Trigger Workflow to keep your automations modular. Create reusable workflows for common sequences like collecting customer details or running a satisfaction survey, then trigger them from multiple parent workflows. Update the shared workflow in one place and every parent workflow benefits.",variant:"tip"},{type:"heading",content:"Example use cases",level:2},{type:"list",content:'Trigger a shared "collect customer details" workflow from both a sales and support workflow\nTrigger a satisfaction survey workflow at the end of multiple different resolution paths\nBreak a complex onboarding flow into smaller, maintainable workflows that are easier to update'}]}]},{id:"tickets",title:"Tickets",description:"Track, manage, and resolve customer support issues with the ticket system.",icon:"Ticket",articles:[{slug:"ticket-system-overview",title:"Ticket System Overview",summary:"How tickets help you track and resolve customer issues systematically.",tags:["tickets","support","tracking","overview","timeline"],updatedAt:"2026-04-18",content:[{type:"paragraph",content:"Tickets let you track customer issues that need more than a single conversation to resolve. Create tickets from conversations, via the API, through forms, or manually."},{type:"heading",content:"Ticket properties",level:2},{type:"list",content:"Ticket number â auto-generated unique identifier\nStatus â open or closed\nStage â submitted, in progress (set automatically based on activity)\nPriority â low, medium, high, urgent\nCategory â classify tickets by topic with color coding\nAssignee â the agent responsible for the ticket\nTags â additional labels for organization"},{type:"heading",content:"Ticket types",level:2},{type:"list",content:"Customer â a ticket created from a customer interaction\nBack office â an internal ticket for team follow-up\nStandalone â a ticket created independently without a linked conversation"},{type:"heading",content:"Ticket sources",level:2},{type:"list",content:"Conversation â created from an active conversation\nManual â created manually from the Tickets page\nEmail â created from an incoming email\nAPI â created programmatically via the API\nForm â created from a form submission"},{type:"heading",content:"Creating tickets",level:2},{type:"paragraph",content:'You can create tickets in several ways: from an active conversation (click "Create Ticket"), automatically via workflows, through the AI agent, manually from the Tickets page, via the API, or from form submissions.'},{type:"heading",content:"Ticket timeline",level:2},{type:"paragraph",content:"Every ticket has a timeline that tracks all activity â status changes, assignment changes, priority changes, category changes, tag additions and removals, escalations, and when the ticket was created, resolved, or reopened. This gives your team a complete audit trail."},{type:"heading",content:"Messages and notes",level:2},{type:"paragraph",content:"Tickets support threaded messages between your team and the customer. Use internal notes for private team-only comments that the customer cannot see."},{type:"callout",content:"Tickets created from conversations maintain a link back to the original conversation, so your team can always access the full context.",variant:"info"}]},{slug:"managing-tickets",title:"Managing Tickets",summary:"Assign, prioritize, and collaborate on tickets with your team.",tags:["tickets","assign","priority","collaborate","manage"],updatedAt:"2026-04-01",content:[{type:"paragraph",content:"Effective ticket management ensures no customer issue falls through the cracks."},{type:"heading",content:"Assigning tickets",level:2},{type:"paragraph",content:"Assign tickets to individual agents or teams. You can assign manually from the ticket detail view, or use workflows to automate assignment based on ticket category, priority, or customer attributes."},{type:"heading",content:"Collaborating on tickets",level:2}
1,{type:"paragraph",content:"Use internal notes to discuss tickets with your team without the customer seeing. Notes support mentions so you can tag specific team members for input."},{type:"heading",content:"Closing tickets",level:2},{type:"paragraph",content:"When an issue is resolved, close the ticket. The ticket stage is automatically tracked â it moves from Submitted to In Progress as the team works on it. If the customer reopens the issue, you can reopen the ticket to continue tracking it."}]}]},{id:"contacts",title:"Contacts & CRM",description:"Manage customer profiles, segments, and engagement data.",icon:"Users",articles:[{slug:"contact-profiles",title:"Contact Profiles",summary:"View and manage 360-degree customer profiles with conversation history.",tags:["contacts","profiles","CRM","customer data","tags","notes","engagement","sorting","status","create","edit","delete","role","pagination"],updatedAt:"2026-04-26",content:[{type:"paragraph",content:"Savena maintains detailed profiles for every customer who interacts with your business across any channel."},{type:"heading",content:"Profile information",level:2},{type:"list",content:"Name (first and last), email, and phone number\nAvatar and external ID\nLifecycle stage â lead, user, or paid\nEngagement score (0-100)\nLocation â country, region, city\nDevice â browser, OS, language, timezone\nConversation history across all channels\nLinked tickets"},{type:"heading",content:"Engagement tracking",level:2},{type:"list",content:"Last seen â when the contact was last active\nLast replied â when the contact last sent a message\nLast contacted â when your team last messaged the contact\nLast email opened / clicked â email engagement tracking\nSigned up â when the contact first registered"},{type:"heading",content:"Contact tags",level:2},{type:"paragraph",content:"Add tags to contacts to organize and categorize them. Tags support color coding for visual differentiation. Use tags to filter contacts, build segments, and target workflows."},{type:"heading",content:"Contact notes",level:2},{type:"paragraph",content:"Add private notes to a contact's profile that are visible only to your team. Notes can also be flagged as AI agent memory â when flagged, the AI agent will reference these notes in future conversations with that contact for more personalized responses."},{type:"heading",content:"Contact owner",level:2},{type:"paragraph",content:"Assign a contact owner to designate which team member is responsible for the relationship. The owner field can be used in segments and workflow conditions."},{type:"heading",content:"Custom fields",level:2},{type:"paragraph",content:"Define custom fields to capture information specific to your business. Custom fields support these data types:"},{type:"list",content:"String â free-form text\nNumber â numeric values\nBoolean â true or false\nDate â a date value\nDatetime â a date and time value"},{type:"paragraph",content:"Custom fields are available in workflows (for branching and data collection), segments (for filtering), and AI agent context (for personalized responses)."},{type:"heading",content:"Engagement score",level:2},{type:"paragraph",content:"Each contact has an engagement score from 0 to 100, calculated based on conversation frequency, response times, and overall activity. Use this score to identify your most active customers and those who may need attention."},{type:"heading",content:"Email preferences",level:2},{type:"paragraph",content:"Each contact tracks email preferences including unsubscribe status, spam reports, and hard bounces. These flags help you respect customer preferences and maintain email deliverability."},{type:"heading",content:"The contact list",level:2},{type:"paragraph",content:"The Contacts page displays all your contacts in a searchable, sortable list. Use the search bar to find contacts by name, email, or phone number. The list shows each contact's avatar, full name, email, phone, conversation count, last contact date, and current status."},{type:"heading",content:"Sorting the contact list",level:3},{type:"paragraph",content:"Click any column header to sort the contact list. You can sort by:"},{type:"list",content:"Name â alphabetical order\nStatus â active contacts first, then recent, then inactive\nConversations â by total conversation count\nLast contact â by most recent or oldest interaction\nCreated â by when the contact was first added"},{type:"paragraph",content:"Click the same column header again to reverse the sort order between ascending and desce
1nding."},{type:"heading",content:"Pagination",level:3},{type:"paragraph",content:"The contact list displays 25 contacts per page. Use the previous and next buttons to navigate between pages, or jump directly to a specific page. The current page and total page count are shown at the bottom of the list."},{type:"heading",content:"Status indicators",level:2},{type:"paragraph",content:"Each contact shows a color-coded status badge based on when they were last active:"},{type:"list",content:"Active (green) â the contact was seen within the last 7 days\nRecent (amber) â the contact was seen within the last 30 days\nInactive (gray) â the contact has not been seen for more than 30 days"},{type:"paragraph",content:"Status is calculated automatically from the contact's last seen date. Use status to quickly identify which contacts are currently engaged and which may need re-engagement."},{type:"heading",content:"Creating contacts",level:2},{type:"paragraph",content:'Click the "New contact" button on the Contacts page to create a contact manually. Enter a first name (required), optional last name, email, phone, and assign a role. The contact is created immediately and appears in your contact list.'},{type:"callout",content:"Contacts are also created automatically when a visitor starts a conversation through any connected channel. Manual creation is useful for importing known contacts or adding contacts before they reach out.",variant:"info"},{type:"heading",content:"Editing contacts",level:2},{type:"paragraph",content:"Click the edit icon on any contact row to open the edit modal. You can update the contact's first name, last name, email, phone number, and role. Changes are saved immediately."},{type:"heading",content:"Deleting contacts",level:2},{type:"paragraph",content:"Click the delete icon on a contact row to remove the contact. A confirmation dialog will ask you to verify the deletion. Deleting a contact is permanent and cannot be undone."},{type:"callout",content:"Deleting a contact removes their profile and associated data. Conversation history linked to the contact is preserved but will no longer be associated with a contact record.",variant:"warning"},{type:"heading",content:"Role assignment",level:2},{type:"paragraph",content:"Each contact has a role that reflects their lifecycle stage. Roles are set when creating or editing a contact and can be used in segments, workflow conditions, and reporting."},{type:"list",content:"Lead â a potential customer who has not yet converted\nUser â a registered or active user of your product\nPaid â a paying customer"},{type:"paragraph",content:"You can change a contact's role at any time from the edit modal or through workflow automations that update contact fields."}]},{slug:"segments",title:"Contact Segments",summary:"Group contacts using rules and filters to target specific audiences.",tags:["segments","filters","groups","targeting","contacts","dynamic"],updatedAt:"2026-04-18",content:[{type:"paragraph",content:"Segments let you group contacts based on shared attributes or behaviors. Use them to target specific audiences with workflows, filter your contact list, and track customer cohorts."},{type:"heading",content:"Creating segments",level:2},{type:"paragraph",content:'From the Contacts page, click "Create Segment" and define your filter rules. You can build complex conditions by nesting groups with AND/OR logic. For example: (engagement score > 70 AND lifecycle stage = "paid") OR (tag = "VIP").'},{type:"heading",content:"Filter operators",level:2},{type:"list",content:"Equals (=) / Not equals (!=) â exact match comparison\nGreater than (>) / Less than (<) â numeric comparisons\nGreater or equal (>=) / Less or equal (<=) â numeric range comparisons\nContains / Not contains â partial text match\nIs null / Is not null â checks whether the field has a value"},{type:"heading",content:"Filter fields",level:2},{type:"paragraph",content:"Build conditions on any contact property, custom attribute, or tag. Filter by name, email, phone, lifecycle stage (lead, user, paid), engagement score, location, owner, conversation count, or any custom field you have defined."},{type:"heading",content:"Dynamic segments",level:2},{type:"paragraph",content:"Dynamic segments update automatically as contact data changes. When a contact's attributes match the segment conditions they are added, and when they no longer match they are removed. This keeps your targeting always up to date without manual maintenance."},{type:"callout",content:"Segments can be used in workflows to target specific groups of contacts with automated actions, and in the contact list to quickly filter your view.",variant:"tip"}]}]},{id:"integrations",title:"Integrations",description:"Connect Savena with Shopify, Stripe, HubSpot, and your own services through the custom API.",icon:"Puzzle",articles:[{slug:"integrations-overview",title:"Integrations Overview",summary:"Connect third-party platforms to extend Savena's capabilities.",tags:["integrations","third-party","connect","overview","actions","risk levels"],updatedAt:"2026-05-01",content:[{type:"paragraph",content:"Savena integrates with popular business tools so you can access external data and take actions without leaving the inbox. Integration actions are available to your team, AI agents, and workflows."},{type:"heading",content:"Available integrations",level:2},{type:"list",content:"Shopify â view orders, track shipments, process returns\nHubSpot â sync contacts, view CRM data, update deal stages\nStripe â check payment status, view invoices, process refunds"},{type:"heading",content:"Setting up an integration",level:2},{type:"paragraph",content:"Go to Settings â Integrations and click the platform you want to connect. Authorize the connection, then choose which actions you want available in your workspace. You can enable or disable specific actions at any time."},{type:"heading",content:"Action risk levels",level:2},{type:"paragraph",content:"Each integration action has a risk level that determines how it is executed:"},{type:"list",content:"Low â read-only actions like looking up an order or checking payment status. These can run automatically.\nMedium â actions that make changes, such as updating a record. May require confirmation.\nHigh â irreversible actions like processing a refund or canceling an order. These should require confirmation or human approval."},{type:"heading",content:"Execution modes",level:2},{type:"list",content:"Automatic â the action runs immediately without any confirmation\nConfirm with contact â the customer is asked to confirm before the action executes"},{type:"heading",content:"AI agent access",level:2},{type:"paragraph",content:"When you enable integration actions for your AI agents, the AI can look up order information, check payment status, and perform other actions during a conversation. You control which actions are exposed to the AI â anything you leave disabled cannot run. Actions that expose private data or move money additionally require the customer to verify their identity, and destructive actions ask the customer to confirm before executing."},{type:"heading",content:"Workflow integration",level:2},{type:"paragraph",content:"Integration actions can be used in workflows via the Run Action step. Map workflow variables to action parameters, configure confirmation messages, and handle success and failure paths. This lets you automate complex multi-step processes that involve external systems."},{type:"callout",content:"Set appropriate execution modes based on risk level. Low-risk read actions can run automatically, but high-risk actions like refunds should always require confirmation.",variant:"warning"}]},{slug:"shopify-integration",title:"Shopify Integration",summary:"Install Savena from the Shopify App Store for an auto-configured ecommerce setup, or connect manually.",tags:["shopify","ecommerce","app store","install","orders","products","tracking","refund","gdpr","auto-install","widget","custom fields","metafields","pre-order","widget visibility","hide widget"],updatedAt:"2026-06-21",howTo:!0,content:[{type:"paragraph",content:"Savena integrates deeply with Shopify so your AI agent and team can answer order questions, look up products, update shipping addresses, and process refunds â all from inside a conversation. There are two ways to connect your store."},{type:"heading",content:"Install from the Shopify App Store",level:2},{type:"paragraph",content:"The fastest way to connect is to install Savena directly from the Shopify App Store. The install flow handles everything for you:"},{type:"list",content:"Provisions a Savena workspace using the email Shopify has on file for the merchant â no separate signup\nNames the organization and workspace after your store and pre-fills the onboarding form (website, channel selection)\nCreates an AI agent pre-tuned for ecommerce â order lookups, product recommendations, refund escalation\nInstalls the chat widget on your storefront automatically via Shopify ScriptTag â no theme edits required\nAdds two starter workflow drafts: cart assist and widget welcome\nAuthorizes the Shopify integration so order, product, and customer actions are immediately available"},{type:"heading",content:"Connect an existing workspace",level:2},{type:"paragraph",content:'If you already have a Savena workspace, go to Settings â Integrations â Shopify and click "Connect store". Authorize the OAuth request from your Shopify admin. Each Shopify store can be connected to one Savena workspace at a time.'},{type:"heading",content:"What the AI agent can do with Shopify",level:2},{type:"list",content:'Look up an order with full details â line items, fulfillment status, tracking number, shipping address, customer info\nSearch products using full-text search\nRead your product custom fields (Shopify metafields in the "custom" namespace) when looking up a product or an order\'s items\nUpdate a shipping address (partial fields are supported â only the changed parts need to be sent)\nCancel or refund an order (high-risk actions require customer confirmation by default)\nVerify the result of every write action before confirming success to the customer'},{type:"heading",content:"Product custom fields",level:2},{type:"paragraph",content:'The AI agent can read any custom fields you define on your Shopify products (metafields in the "custom" namespace â the ones you add under Settings â Custom data â Products). When the agent looks up a product, or looks up an order and inspects its line items, those custom fields come back alongside the standard details. Whatever you store there â materials, dimensions, care instructions, sizing notes, warranty terms, a release date â becomes available to the agent without any per-field setup on Savena\'s side.'},{type:"paragraph",content:"How the agent uses a custom field is entirely up to you, and you control it through the agent's Scope and Boundaries instructions (AI agent â Guidance tab). The agent treats custom fields as raw data and does not guess what they mean: it will surface a value if a customer asks, but it only applies a rule to a field when you describe that rule in Scope and Boundaries. That keeps you in control and prevents the agent from misreading an unrelated field (for example, treating a warranty or restock date as something it isn't)."},{type:"heading",content:"Example: pre-order release dates",level:3}
1,{type:"paragraph",content:'Say you sell pre-orders and store a release date in a custom field called expected_to_release_after. Add an instruction to Scope and Boundaries such as: "The custom field expected_to_release_after is the pre-order release date. Items with a future value there cannot ship until after that date; explain this when a customer asks about delivery timing, and do not add such items to an existing in-stock order." The agent will then answer "when will this arrive?" and "why is it taking so long?" using that date â and the same pattern works for any other field and rule you define.'},{type:"heading",content:"Widget auto-install on your storefront",level:2},{type:"paragraph",content:"When you install Savena from the App Store, the chat widget is added to your storefront automatically using Shopify's ScriptTag API. It loads on every page of your store."},{type:"heading",content:"Hiding the widget without uninstalling",level:3},{type:"paragraph",content:"You don't need to uninstall the app to take the widget off your storefront. In Savena, go to Settings â Live Chat â Installation and use the Widget visibility control. It has three modes:"},{type:"list",content:"Live to customers â the widget renders normally for all visitors\nTeam preview only â the widget renders only for your team (visitors with the savena_preview cookie or ?savena_preview=1 in the URL), so you can QA it on the live storefront without customers seeing it\nHidden â the widget never renders for anyone"},{type:"paragraph",content:"Setting visibility to Hidden takes the widget off your storefront immediately while leaving everything else in place â the embed script stays installed, the Shopify integration stays connected, and order, product, and customer actions keep working. Switch back to Live to customers whenever you want the widget to return; there is nothing to reinstall. Uninstalling the Savena app from your Shopify admin is only needed if you want to fully disconnect â that removes the widget, deletes stored Shopify credentials, and revokes API access."},{type:"heading",content:"GDPR and data requests",level:2},{type:"paragraph",content:"Savena implements Shopify's mandatory privacy webhooks: customer data requests, customer redaction, and shop redaction. When a customer asks Shopify for their data or requests deletion, the request is forwarded to Savena and handled automatically. When you uninstall the app, stored Shopify credentials are deleted."},{type:"callout",content:'The AI agent has access to the full order object â including the shipping address and tracking link â so it can answer "where is my order" questions without your customer needing to provide their order number twice.',variant:"tip"},{type:"callout",content:"A single Shopify store can only be connected to one Savena workspace. If you try to connect a store that is already linked elsewhere, the install is blocked to prevent duplicate setups.",variant:"warning"}]},{slug:"custom-integrations",title:"Custom Integrations",summary:"Connect any external REST API to your workspace with custom actions.",tags:["custom","integrations","API","webhook","connect","REST"],updatedAt:"2026-04-18",content:[{type:"paragraph",content:"Beyond the built-in integrations, Savena supports custom integrations that let you connect any REST API to your workspace and make those actions available to your team, AI agents, and workflows."},{type:"heading",content:"Creating a custom integration",level:2},{type:"paragraph",content:"Go to Settings â Integrations and create a new custom integration. Give it a name and configure the connection details for your external service."},{type:"heading",content:"Defining actions",level:2},{type:"paragraph",content:"Each custom integration can have multiple actions (endpoints). For each action, you define:"},{type:"list",content:"Endpoint URL and HTTP method\nAuthentication â API keys, OAuth tokens, or custom headers\nInput schema â the parameters the action accepts\nRequest mapping â how input parameters are transformed into the API request\nResponse mapping â how the API response is transformed into output data\nOutput schema â the data structure returned by the action"},{type:"heading",content:"Using custom actions",level:2},{type:"paragraph",content:"Once defined, custom actions work just like built-in integration actions. They appear in the Run Action workflow step, can be exposed to AI agents, and support the same execution modes (automatic, confirm with contact, require human approval) and risk levels."},{type:"heading",content:"Use cases",level:2},{type:"list",content:"Connect to your internal CRM or ERP system\nIntegrate with industry-specific tools\nQuery your own API for customer data during conversations\nSync data between Savena and your existing tech stack"},{type:"callout",content:"Custom integrations are available on all plans. You can create as many custom integrations and actions as you need.",variant:"info"}]}]},{id:"analytics",title:"Analytics & Reporting",description:"Track team performance, AI agent effectiveness, and workflow metrics.",icon:"BarChart3",articles:[{slug:"dashboard-overview",title:"Dashboard Overview",summary:"Get a real-time snapshot of your conversation volume, team activity, and key metrics.",tags:["dashboard","analytics","overview","metrics","reporting"],updatedAt:"2026-04-18",content:[{type:"paragraph",content:"The dashboard gives you a real-time overview of your workspace activity. See conversation volume, agent performance, and key metrics at a glance."},{type:"heading",content:"Key metrics",level:2},{type:"list",content:"Active conversations â how many conversations are currently open\nAgent activity â which agents are online and their current workload\nConversation trends â volume over time to identify busy periods\nResponse times â how quickly your team is responding"}
1,{type:"heading",content:"Access",level:2},{type:"paragraph",content:"The dashboard is available to owners and managers. Agents do not have access to the dashboard â they work from the inbox."},{type:"callout",content:"Use the dashboard to spot trends and staffing needs. If conversation volume spikes at certain times, consider adjusting your team schedule or enabling AI agent coverage.",variant:"tip"}]},{slug:"ai-analytics",title:"AI Agent Analytics",summary:"Track your AI agent's performance, escalation rates, and response quality.",tags:["AI","analytics","escalation","performance","feedback"],updatedAt:"2026-04-18",content:[{type:"paragraph",content:"AI agent analytics help you understand how effectively your AI is handling customer conversations and where it needs improvement."},{type:"heading",content:"Key metrics",level:2},{type:"list",content:"AI-handled vs escalated â how many conversations the AI resolved without human help\nEscalation reasons â why the AI escalated to a human agent\nResponse quality â feedback ratings (good/bad) from your team\nTool usage â which integration actions the AI used most often\nContainment rate â percentage of conversations fully handled by AI"},{type:"heading",content:"Workflow execution stats",level:2},{type:"paragraph",content:"View how often the AI triggers workflows, which workflows it uses most, and the success rate of AI-triggered automations. This helps you understand how the AI leverages your workflow library."},{type:"heading",content:"Improving AI performance",level:2},{type:"paragraph",content:"Use analytics to identify gaps. If the AI frequently escalates on a specific topic, add more knowledge base content for that area. If feedback ratings are low for certain response types, refine the agent's instructions."},{type:"callout",content:"Review AI analytics weekly to keep your knowledge base current and your AI agent effective. Small, regular updates lead to better results than infrequent large changes.",variant:"tip"}]},{slug:"workflow-analytics",title:"Workflow Analytics",summary:"Monitor workflow execution, completion rates, and step-level performance.",tags:["workflow","analytics","performance","completion","metrics"],updatedAt:"2026-04-18",content:[{type:"paragraph",content:"Workflow analytics show you how your automations are performing â which workflows run most often, their completion rates, and where failures occur."},{type:"heading",content:"Key metrics",level:2},{type:"list",content:"Total runs â how many times each workflow has executed\nCompletion rate â percentage of runs that completed successfully\nDaily trends â workflow execution volume over time\nAgent-triggered vs event-triggered â how workflows are being started"},{type:"heading",content:"Step-level analysis",level:2},{type:"paragraph",content:"Drill into individual workflows to see performance at the step level. Identify which steps fail most often, how long each step takes on average, and where contacts drop off. This helps you optimize your workflow design."},{type:"heading",content:"Top workflows",level:2},{type:"paragraph",content:"View your most-used workflows ranked by execution count. This helps you understand which automations deliver the most value and which might need optimization."},{type:"callout",content:"If a workflow has a low completion rate, check the step-level analysis to find the bottleneck. Common causes include missing timeout branches on Ask Question steps and unconfigured failure paths on Run Action steps.",variant:"tip"}]}]}];function a(e){let t=e.toLowerCase().trim();if(!t)return[];let a=[];for(let e of n)for(let n of e.articles)[n.title,n.summary,...n.tags,...n.content.filter(e=>"paragraph"===e.type||"list"===e.type).map(e=>e.content)].join(" ").toLowerCase().includes(t)&&a.push({category:e,article:n});return a}e.s(["helpCategories",0,n,"searchArticles",()=>a])},10132,e=>{"use strict";var t=e.i(43476),n=e.i(71645),a=e.i(18566),o=e.i(55436),s=e.i(80259);function i({variant:e="hero"}
1){let[i,r]=(0,n.useState)(""),[c,l]=(0,n.useState)(!1),p=(0,n.useRef)(null),h=(0,a.useRouter)(),u=(0,n.useMemo)(()=>i.length<2?[]:(0,s.searchArticles)(i).slice(0,8),[i]);(0,n.useEffect)(()=>{function e(e){p.current&&!p.current.contains(e.target)&&l(!1)}return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]);let d="hero"===e;return(0,t.jsxs)("div",{ref:p,className:`relative ${d?"w-full max-w-xl mx-auto":"w-full"}`,children:[(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(o.Search,{className:`absolute left-3 top-1/2 -translate-y-1/2 text-zinc-400 dark:text-zinc-500 ${d?"h-5 w-5":"h-4 w-4"}`}),(0,t.jsx)("input",{type:"text",value:i,onChange:e=>{r(e.target.value),l(!0)},onFocus:()=>l(!0),placeholder:"Search help articles...",className:`w-full rounded-lg border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-800 text-zinc-900 dark:text-white placeholder-zinc-400 dark:placeholder-zinc-500 focus:outline-none focus:ring-2 focus:ring-zinc-300 dark:focus:ring-zinc-600 transition-colors ${d?"pl-11 pr-4 py-3 text-base":"pl-9 pr-3 py-2 text-sm"}`})]}),c&&u.length>0&&(0,t.jsx)("div",{className:"absolute z-50 mt-2 w-full rounded-lg border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-800 shadow-lg overflow-hidden",children:u.map(({category:e,article:n})=>(0,t.jsxs)("button",{onClick:()=>{h.push(`/help/${e.id}/${n.slug}`),l(!1),r("")},className:"w-full text-left px-4 py-3 hover:bg-zinc-50 dark:hover:bg-zinc-700/50 transition-colors border-b border-zinc-100 dark:border-zinc-700/50 last:border-b-0",children:[(0,t.jsx)("p",{className:"text-sm font-medium text-zinc-900 dark:text-white",children:n.title}),(0,t.jsx)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400 mt-0.5",children:e.title})]},`${e.id}-${n.slug}`))}),c&&i.length>=2&&0===u.length&&(0,t.jsx)("div",{className:"absolute z-50 mt-2 w-full rounded-lg border border-zinc-200 dark:border-zinc-700 bg-white dark:bg-zinc-800 shadow-lg p-4 text-center",children:(0,t.jsxs)("p",{className:"text-sm text-zinc-500 dark:text-zinc-400",children:["No articles found for â",i,"â"]})})]})}e.s(["default",()=>i])}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.