Contact Center AI lets you customize what customers experience when they wait for an agent, contact you outside business hours, or cannot reach an available agent. Use Conditional Flows to control routing behavior for specific scenarios, Waiting Flows to shape the in-queue experience, and the Debug window to troubleshoot flow execution.
| Feature | Description |
|---|
| Conditional Flows | Configure voice and chat behavior for out-of-hours, no-agents-available, and click-to-call scenarios. |
| Waiting Flows | Set up messages, hold audio, callbacks, and voicemail for customers waiting in queue. |
| Debug and Troubleshoot | Review flow execution logs, NLP analysis, and session variables. |
Conditional Flows
Conditional Flows let you define what happens during three common routing scenarios:
| Scenario | Trigger |
|---|
| Out of Hours | Customer contacts support outside configured Hours of Operation. |
| No Agents Available | No online agents have the skills required for the conversation. |
| In Queue Transfer | Conversation enters a queue before being assigned to an agent. |
Contact Center AI provides default voice and chat flows for Out of Hours and No Agents Available. You can replace or customize these defaults.
To access Conditional Flows, go to Contact Center AI > Flows & Routing > Conditional Flows.
Voice Flows
Out of Operational Hours
Plays a voice message to callers who contact support outside business hours.
- Select Default Out of Operational Hours Voice Flow to open the flow in the Flow Builder.
- In the End Flow node’s General Settings, edit the default message, change the language, or add messages using + Add Another.
How the message is selected:
- The system uses the message from the configured conditional flow.
- If no flow is configured, a non-editable backend default plays.
- Administrators can override the default by creating a conditional flow and attaching it to the experience flow.
No Agents Available
Plays a message when online agents lack the skills required for the conversation.
- Select No Agents Available Voice Flow to open the flow in the Flow Builder.
- In the End Flow node’s General Settings, edit the message, change the language, or add messages using + Add Another.
To create a custom Out of Hours or No Agents Available message:
- Create a conditional flow.
- Add an End Flow node.
- Configure a custom message to play in that scenario.
Click-to-Call
Click-to-Call lets website visitors start a voice call directly from the chat widget, providing a seamless escalation path from bot to live agent.
Customers can initiate a call:
- Before interacting with the bot.
- During an active bot conversation.
- During a live chat (the chat agent receives a closure notification and moves to After Call Work).
The Click-to-Call flow appears in Conditional Flows only after it is enabled in
Theme & Design.
How flows work:
- Click-to-Call launches a flow in the Flow Builder.
- A default flow is published automatically. It includes an Agent Transfer node and the message: “Please wait while we connect you to an agent.”
- Removing the Agent Transfer node triggers a warning before publishing.
What administrators can add to a Click-to-Call flow:
- Script nodes
- Message prompts
- Business hours checks
- Queue assignments
- Agent availability checks
- Agent transfers
- End Flow node
Multiple flows:
- Administrators can create multiple Click-to-Call flows for different use cases.
- Each flow has a unique Flow ID.
- Developers pass the Flow ID in the Web SDK configuration or SDK headers to control which flow triggers.
- SDK headers can pass user metadata (such as page URL) to support conditional logic.
Developer setup:
- Get the Flow ID from the Flow Builder.
- Add the Flow ID and any required headers (user ID, session ID, page name, page URL) to the Web SDK configuration.
- Deploy SDK updates.
Web SDK deployment options:
| Method | How to Update |
|---|
| NPM Package | Run a standard npm update. |
| Script Tag | Update the version number in the script tag reference. |
| Source Code | Manually apply changes to your modified version. |
Modifications to SDK source code are made at your own risk. Custom modifications may not receive full support in future SDK updates.
End-to-end flow:
- The customer clicks the Call button in the chat widget.
- A confirmation pop-up appears. The customer selects Confirm.
- If the customer switches to Click-to-Call during a live chat, the chat agent moves to After Call Work (ACW).
- The system initiates a voice call to the contact center.
- Context (chat transcript, user ID, session ID, page URL) is passed to the agent.
- The call routes through the configured Click-to-Call flow.
Chat Flows
Out of Operational Hours
Sets the auto-response message sent during non-business hours for automated and live chats.
Messaging (automated chat):
In the General Settings tab, MessagingAT is selected under Your Message to User. Edit the message, change the language, or add messages using + Add Another. Select the In Queue Flow to add the customer to an agent’s waiting queue.
Live Chat:
In the General Settings tab, endingLiveChatAndOther is selected under Your Message to User. Edit the message, change the language, or add messages using + Add Another. The chat ends after the message is displayed.
No Agents Available
Sets the message sent when no agents with the required skills are available.
Select No Agents Available Chat Flow to open the configuration.
Messaging (automated chat):
In the General Settings tab, messagingEnd is selected under Your Message to User. Edit the message, change the language, or add messages using + Add Another. The chat ends after the message is displayed.
Live Chat:
In the General Settings tab, LiveChatEnd is selected under Your Message to User. Edit the message, change the language, or add messages using + Add Another. The chat ends after the message is displayed.
On Error:
In the General Settings tab, error is selected under Your Message to User. Edit the message, change the language, or add messages using + Add Another. The chat ends after the message is displayed.
In Queue Transfer Flow
Routes a conversation to the queue where agents have the required skills, triggered when the conversation enters a queue before agent assignment.
Steps to create an In Queue Transfer Flow:
- Select New.
- In the New Outbound Flow window, enter a Conditional Flow Name and Description.
- Select In Queue Transfer Flow from the Flow Type dropdown.
- Select the Channel (Voice or Chat) and select Create & Continue to Flow Design.
- In the Waiting Experience tab, select a flow from the In Queue Flow dropdown.
You can also create custom Conditional Flows for No Agents Available and Out of Hours by following steps 1–4 above.
Manage Conditional Flows
Update a flow:
Select the (⋮) icon next to the flow and select Update.
Delete a flow:
- Select the (⋮) icon next to the flow and select Delete.
- In the confirmation pop-up, select Delete.
Deleted conditional flows cannot be restored. Default flows cannot be deleted.
Waiting Flows
Waiting Flows let you customize the experience for customers waiting in queue — for both voice and chat channels.
What you can configure:
- Routing rules based on agent skills
- Initial messages when a request enters a queue
- Hold audio for calls
- Periodic messages for calls and chats
- Callback when wait time exceeds a limit
- Voicemail when wait duration, queue position, or estimated wait time exceeds a threshold
To access Waiting Flows, go to Contact Center AI > Flows & Routing > Waiting Flows.
Waiting Flows list fields:
| Field | Description |
|---|
| Name | Name of the Waiting Experience entry. |
| Skill Rule | Skill rules that determine which conversations use this entry. |
| Description | Brief description of the entry. |
| Edit (icon) | Opens the configuration window for that entry. |
Add a Waiting Experience
- Go to Flows & Routing > Waiting Flows.
- Select + New Waiting Experience.
- Configure the three tabs: Configuration, Call Experience, and Chat Experience.
Configuration Tab
Name and Description:
Enter a Name and a brief Description for the entry.
Routing Rules:
Define which conversations use this Waiting Experience based on Skill Group and Skill.
| Action | How |
|---|
| Add a skill condition | Select the Skill Group, then the Skill. |
| Add an OR condition | Select the row-level + Add option. |
| Add an AND condition | Hover over a rule row and select + Add. |
| Toggle AND/OR logic | Hover over a rule row and toggle between the options. |
| Remove a condition | Select the Delete (ⓧ) icon next to the row or section. |
How the system selects a Waiting Experience:
- Filters all entries that match the conversation’s skills.
- Sorts by number of routing rules (descending) — more specific entries take priority.
- If two entries have the same number of rules, selects the one created earliest.
Example: A conversation with Skill A and Skill B matches both an entry requiring only Skill A and one requiring both. The system selects the second entry because it is more specific.
Call Experience Tab
Configures the in-queue experience for voice calls.
Initial Message
Plays when a call enters the queue. Enabled by default. Edit the message text and select a language.
Agent Transfers
Plays when the customer transfers to an agent or queue. Enabled by default. Edit the message text and select a language.
Hold Audio
Plays while the customer is on hold. Select the audio file from the Hold Audio dropdown.
Periodic Messages
Plays at intervals while the customer waits. To configure:
- Set the interval in seconds.
- Set the play order: Random or Sequential.
- Set the playback type: Once or Looped.
- Edit the message text and language. Select ✔ to save or x Close to discard.
- To add another message, select + Add Another.
- To remove a message, select the Delete icon next to it.
Periodic messages can include queue information using these variables:
| Variable | Description |
|---|
{{queue.waitTime}} | Average wait time in minutes, refreshed every 15 minutes. |
{{queue.position}} | Customer’s current position in the queue. |
Callback Option
Offer or require a callback when the wait time exceeds a set limit.
- Enable the option.
- Set the digit key customers press to request a callback. Choose Offered or Forced.
- Edit the callback message. Select ✔ to save or x to discard.
Voicemail
Offer or require a voicemail in any of these conditions:
- Call wait duration exceeds
x minutes.
- Queue position exceeds
x.
- Estimated wait time exceeds
x minutes.
To configure:
- Enable the option.
- Set the digit key customers press to leave a voicemail. Choose Offered or Forced.
- Edit the voicemail message. Select ✔ to save or x to discard.
Chat Experience Tab
Configures the in-queue experience for chat interactions.
Initial Message
Appears when a chat enters the queue. Enabled by default. Edit the message text and language. Select ✔ Done to save or x Close to discard.
Agent Transfers
Appears when the customer transfers to an agent or queue. Enabled by default. Edit the message text and language. Select ✔ Done to save or x Close to discard.
Periodic Messages
Appears at intervals while the customer waits in the chat queue. To configure:
- Set the interval in seconds.
- Choose Random or Sequential display order.
- Choose Once or Looped.
- Edit the message text and language. Select ✔ Done to save or x Close to discard.
- To add another message, select + Add Another.
- To remove a message, select the Delete icon next to it.
Save
Select Save at the bottom of the window. You can save from any tab.
Edit a Waiting Flow
- In the Waiting Flows list, select the Edit icon for the entry.
- Modify the configuration as needed and select Save. A success confirmation message appears.
Delete a Waiting Experience
- In the Waiting Flows list, select the Edit icon for the entry.
- Select the Delete icon.
- Select Yes to confirm.
Deleted Waiting Flows cannot be restored. Proceed with caution.
Debug and Troubleshoot
The Debug window lets you inspect NLP details, execution logs, and session variables for a chat interaction. Select the Debug icon in the upper-right corner of the chat window to open it.
The Debug window has three tabs:
| Tab | Description |
|---|
| Debug Log | Step-by-step flow execution with timestamps, including Script, Service, and Webhook node logs. |
| NL Analysis | Task loading details and recognition scores for each user utterance. |
| Session Context & Variables | Lists context objects and session variables used during dialog execution. |
Debug Log
The Debug Log displays the interaction flow in a chat-style format, pairing user inputs with system responses. This makes it easy to trace conversation steps, inspect context at each stage, and identify where issues occur. Learn more.
Events by node type:
| Node | Initiation Message | Key Events | Outcomes |
|---|
| IVR Menu, IVR Digit Input | IVR Menu/Digit Input node initiated | User input → Transitioning X to Y → Execution completed → Timeout/Retry/Wrong input/Error | — |
| Split | Split node initiated | Transitioning X to Y → Execution completed → Error detected | — |
| Check Agent Availability | Check agent availability node initiated | Transitioning X to Y → Execution completed → Error detected | Agents available / Agents unavailable |
| Check Business Hours | Checking business hours and triggering selected node | User input → Transitioning X to Y → Execution completed | Inside business hours / Outside business hours |
| Message Prompt | Message prompt initiated to the user | Transitioning X to Y → Execution completed | — |
| Automation | Automation node initiated and message triggered | Waiting for user input | — |
| Agent Transfer | Agent transfer node triggered | Transitioning X to Y → Execution completed → Specific dialog executed | Transfer successful / Transfer failure |
| Connect to API | API connection established and node triggered | Transitioning X to Y → Execution completed → Error detected | — |
| Go to Flow, Script Task | Go to flow / Script task initiated | Transitioning X to Y → Execution completed | — |
| Set Queue, Deflection Flow | Set queue / Deflection flow initiated | Transitioning X to Y → Execution completed → Error detected | — |
| End Flow | End flow initiated | Transitioning X to Y → Execution completed | — |