Voice Workflow
This article provides an overview of the available node types, generic properties of workflows, and introduces the new designer toolbar, among other topics.
Tip
New to voice workflows? Follow Build your first voice workflow, a 15-minute step-by-step tutorial.
To access voice workflows, follow these steps:
- Navigate to the Graia CCaaS Portal > Voice section.
- Click on "Workflows."
To open the workflow designer, click on one of the workflow options. If you need to make changes to the workflow settings simply click on the Details button located on the top left side of the designer interface.
Workflow generic properties
Workflow Name
The workflow name is a required parameter, as it serves as a selection identifier for a specific channel. See the naming best practices.
Limit bot duration
The Maximum Conversational Bot Duration setting allows administrators to define the total amount of time a user is allowed to interact with conversational bots within a single workflow execution. Once the configured duration is reached, the conversation is automatically stopped and a predefined audio message is played to the user.
To configure this setting, navigate to Voice > Workflows > Your Workflow > Details > Turn on the Limit conversational bot duration toggle, set the duration and the audio file to be played to the customer.
Workflow designer
After you've provided the generic properties for a workflow and clicked "Create," you enter the workflow designer. This is where you build and customize your workflow to meet your specific needs.
Node types
Jump to a node:
Start and end
| Node | What it does |
|---|---|
| Start here | The starting point of every workflow. |
| End conversation | Ends the workflow. |
Talk to the caller
| Node | What it does |
|---|---|
| Announcement | Plays a text-to-speech message or an uploaded audio file. |
| Auto-attendant | Offers a keypad menu (keys 0–9, * and #). |
| Custom question | Asks a question and stores the caller's answer. |
| Customer satisfaction | Asks the caller to rate the conversation from 1 to 5. |
| Voice mail | Lets the caller leave a voice mail. |
Route the call
| Node | What it does |
|---|---|
| Check opening hours | Routes based on the channel's opening hours. |
| Check queue state | Checks a queue before sending the call to it. |
| Queue | Puts the call in a queue for agents. |
| Switch | Routes based on conditions on conversation, customer or other data. |
| Evaluate phone number | Routes based on the caller's phone number. |
| Sampling | Sends a set percentage of calls down a different path. |
| Redirect to phone | Redirects the call to a phone number. |
| Time-based redirect | Redirects the call to a phone number based on an uploaded date and time schedule. |
| Schedule callback | Schedules a callback request. |
AI and language
| Node | What it does |
|---|---|
| Conversational bot | Lets an AI bot talk to the caller. |
| Custom Bot | Uses your own voice bot. |
| Categorizer | Applies categories to the conversation. |
| Set customer language | Sets the caller's language for translation, transcription and text-to-speech. |
| Live translation for external agents | Translates live between the caller and an agent of an external contact center. |
Data and integrations
| Node | What it does |
|---|---|
| JavaScript | Runs your own JavaScript code. |
| Custom integration | Hands the conversation over to a third-party system. |
| Send email | Sends an email about events in the workflow. |
| Set recording state for Graia CCaaS-native recording | Keeps or discards the call recording, overriding the tenant setting. |
Start here
The "Start Here" node is the default starting point in your workflow. It serves as the initial step from which your workflow begins. To use this node, click on the black dot and drag it in any direction to open a context menu. From this menu, you can choose other available nodes to build and customize your workflow.
Announcement
This node enables you to broadcast a Text-to-Speech (TTS) message or play a pre-recorded announcement for your customers by uploading an audio file. This could be used for various purposes, such as delivering a greeting, welcome message, GDPR notification, and so on.
If a set customer language node is present on a path that points to this node with the Workflow TTS feature enabled for the language profile, then the TTS engine and language of that given language profile will be used. Multiple set customer language nodes can have paths to a single announcement node, in which case, multiple TTS messages can be set for each language profile displayed.
The node comes with a singular output that signifies the subsequent step in the workflow.
Auto-attendant
This node provides the capability to configure menu options for keys 1-9, 0, star (*) or the hash (#) key.
You can set up to 12 menu options, with each option generating an output.
Options for informing the customer about the available menu choices include using Text-to-Speech (TTS) or uploading an audio file.
If a set customer language node is present on a path that points to this node with the Workflow TTS feature enabled for the language profile, then the TTS engine and language of that given language profile will be used. Multiple set customer language nodes can have paths to a single auto-attendant node, in which case, multiple TTS messages can be set for each language profile displayed.
The node also allows for the configuration of a repeat count and a timeout duration. If the customer fails to press any key within the specified timeout period, the repeat count increments. Similarly, if the customer presses an unspecified key, the repeat count increases.
When utilizing the repeat count feature, a repeat message is mandatory. This message can be either TTS or an audio file, and it is advisable to use a different message from the auto attendant's main question.
Outputs:
- Outputs for each of the selected menu options.
Retry Exhausted: Determines the action when the repeat count is fully utilized.
Categorizer
Use this node to apply categories to conversations manually.
Categorization rule: select a categorization rule created in your tenant.MainandSecondarycategories: choose from the selected categorization rule.Note that you can only have a single categorization node on any given flow branch.
Outputs:
Success: One of the category-subcategory pairs was associated to the conversation.
The node also creates the following workflow properties, that can then be used for example in the Switch node for routing decisions:
MainCategory: contains the main category value as the node selected.SubCategory: contains the sub-category value the node selected.
Check opening hours
This node is responsible for verifying your Channel's opening hours and enables you to make routing decisions based on the verification results. The available outputs are as follows:
Open: The Channel is currently within business hours and not on any holidays.Closed: The channel is currently outside of business hours and not on any holidays.Holiday: The channel is closed due to a set holiday.
Feel free to customize the name of the "Check opening hours" node to suit your needs.
Check queue state
The Check Queue State node allows administrators to pre-check a queue and perform routing decisions as it has similar outputs as the queue. The benefit is that the customer does not have to navigate through the entire complex flow, but instead can be routed elsewhere based on the result of the check.
Input: Queue to check. Select the queue you wish to check.
Outputs:
Size Limit Reached. This can be used if the queue has a Max queue size set.EWT limit reached. This can be used if the queue has an EWT limit set.No agent logged in. This can be used if the queue has the No Agent logged in output set.No staffed agent logged in. This can be used if the queue has the No Staffed Agent logged in output set.No available staffed agent. This can be used if the queue has the No available staffed agent output set.Pass. The conditions for the outputs were not met or the outputs were not set, as such, passing through.
Conversational bot
Use this node to engage your customer with a subject matter expert AI-based conversational bot.
Type an optional Welcome Message to be played at the start of the interaction, before the customer speaks. Use this to set the tone, guide the customer on what to expect, or encourage them how to best state their request. However, if you prefer the bot to respond based on prior conversation history—you may choose to leave this field empty, allowing the bot to proceed without an introduction. You may use Customer and workflow data variables in the welcome message, see reference data for more details.
Carefully type the Instructions for the bot. Instructions help it understand its role, responsibilities and tone.
Note
Please carefully read and follow the bot instruction guidelines. This is critical for proper bot operation.
Optionally use one or more preconfigured external custom service integration APIs that can offer additional insight, deliver precise information, or execute external tasks. Select them from the Integrations dropdown. You can select any number of preconfigured integrations, the bot will consider all.
Associate an available Knowledge base to the bot. This can dramatically enhance the relevance and contextual quality of its responses.
For the bot to interpret what customers say correctly and to respond in a voice that is native to them, it must be aware of the language the customers speak. This is done by inserting a Set customer language node in the flow before this Conversational bot node.
Advanced configuration:
Temperature: use this to control consistency and predictability of the texts the bot generates. A value of zero provides maximum consistency, while a value of 1+ provides maximum creativity and randomness. On a general level, keep it lower and test any increase extensively.
Max output token count: a circuit breaker to control the maximum amount of text generated by the bot. Setting it too low will abruptly cut the result text. Test any change extensively.
End speech detection interval: the time period in milliseconds the bot will wait to detect whether the caller finished speaking, so it can start to process it and respond. The default is 500. Too high values can slow down the bot's responses, or even introduce confusion for the caller (who might consider longer silent periods from the bot a cause to repeat themselves, potentially making the delays longer). Too low values on the other hand could introduce too early and therefore likely incorrect and unexpected responses from the bot while the caller might not have even finished their sentences. In case the default value does not fit the general caller habits reaching the bot, fine-tuning could improve the overall conversation experiences.
What constitutes a good value is completely dependent on the speaking habits of the individual caller, background noises and overall audio quality. It might even depend on the business context the bot is used for (a value fitting one bot might not be ideal for others that are used to engage with different caller population).
Disable audio interruption: a toggle controlling whether the caller can interrupt the bot's speech. The default is disabled/false, meaning the bot listens to the caller even while it is speaking and interrupts its own speech when detecting them starting to talk. Useful for cases where the bot misunderstood the intent for example and so the caller does not wish to wait for it to finish its tangent, helping to maintain their control on the conversation. Setting this to enabled/true will force the bot not to actively listen to the caller while it itself is speaking. Though this can prolong the wait times for the caller and thus could lessen the overall conversational experience, there could be situations where you might wish to (or have to by law or corporate policies) let the bot finish speaking, e.g. for legal or other critical statements or information the caller must hear in its entirety.
Customer history control: A slider to determine how many past messages will be used by the bot as a context window. Set this to a lower value to ensure the bot remains focused to the current questions and discards context from X messages ago, or set this to a higher value to increase the context window and ensure the bot remembers X messages. Please note that a higher context window may increase your consumption cost.
Fresh start: Allows the bot to start as if there are no messages in the history before reaching this node. This is useful in multi-bot scenarios with different controls in terms of the history.
Outputs:
Failed: The bot could not comprehend or answer the customer request, or lower level technical problems were encountered with the AI model.- Optionally define additional outputs by supplying further AI instruction prompts for various business topics this node is not the expert of.
- Use them to list the various business topics this node is not the expert of. Having multiple different conversational bots each being an expert on different business topics and jumping between them as the customers' requirements change can greatly expand the flexibility of your workflows and the customer experience.
- Each output needs a unique and short Name so their label on the node can be distinguished, and a Description. All common AI prompt engineering principles you used when crafting the Instruction field apply here too.
- You may require the bot to collect data from the customer before calling an output, you may configure this in the Data collection drop-down of an output. You must provide a name for the variable, a description so that the bot understands what is the variable for, required flag and the type, which can be text, boolean, choice or number. The bot will attempt to extract all relevant data from the conversation, but please note that the decision lies with the LLM.
- Outputs are evaluated in the order they are configured, meaning that if both option 2 and option 3 match, the bot exits through option 2, the one higher in the list.
Custom Bot
Reference a custom voice conversational bot. See the integration page for more details
Custom integration
This node serves as an exit point from the workflow to a third-party solution that supports custom integration. It necessitates the provision of a URL and an API Key.
Additionally, a workflow designer can set the Async mode on or off.
Async mode off will wait for the request to be completed before moving through the outputs and apply the configured timeout.
Async mode on will not wait for the request to be completed and will move through a new output called Meanwhile, which allows the designer to stream announcements to the customer while waiting for the request to be complete, this is particularly useful for long requests, which typically end up with the customer waiting in silence. The path of Async mode must have an await node, which will wait for the request to be complete before moving forward.
For the await node, you must specify the source node, in case you have multiple custom integration nodes, then the timeout and outputs. Outputs are Success, Fail and Timeout. Success and Fail are determined by the result of the request, while timeout is the output used when the timeout set on the node elapsed.
You may specify sensitive data that can be used by this node, by typing the variable name (case sensitive) then clicking the add button. If you do not perform this action, data from custom question nodes marked as sensitive will not be passed to your integration at all with the rest of the workflow data.
Custom question
You can specify a custom question, store the answer in a Workflow property key for later use, apply regex validation to the answer provided by customers, set a retry count, and define a repeat message.
If a set customer language node is present on a path that points to this node with the Workflow TTS feature enabled for the language profile, then the TTS engine and language of that given language profile will be used. Multiple set customer language nodes can have paths to a single custom question node, in which case, multiple TTS messages can be set for each language profile displayed.
The regex pattern, retry count, and repeat message are all optional.
You may mark this node as sensitive data, meaning data collected through it is not stored in a readable format in reports, logs, and is not available as workflow data for other nodes. Sensitive data allows you to collect data such as social security number, insurance number and so on that should not be readable by anyone.
If you require an integration node or javascript node to access the sensitive data, you must add the variable name (case sensitive) to these nodes, otherwise the sensitive data is not passed to integrations or the javascript node.
Outputs:
Success: This output indicates that the question was answered, and the answer is valid (if a regex pattern is set).Invalid: By default, this output is disabled. It becomes enabled when a regex pattern is added, and it is triggered when the retry count reaches the maximum allowed value.
Customer satisfaction
You can prompt the customer to offer a generic feedback on their overall satisfaction with the outcome of the conversation. The node offers an announcement message to the customer, inviting them to provide a 1-5 numerical rate satisfaction result.
You can repeat the message and offer an explanation message to let the customer know they failed to provide their feedback.
If a set customer language node is present on a path that points to this node with the Workflow TTS feature enabled for the language profile, then the TTS engine and language of that given language profile will be used. Multiple set customer language nodes can have paths to a single customer satisfaction node, in which case, multiple TTS messages can be set for each language profile displayed.
Customer satisfaction feedback is stored in reporting data.
- Announcement message: The message to describe the satisfaction survey to the customer and inviting them to offer their feedback by pressing a digit between 1-5.
- Repeat count: When set, controls how many tries the customer has, to offer their feedback.
- Timeout seconds: The amount of time the node waits for the customer to enter their response before repeating or failing out.
- Repeat announcement message: Optionally provide an explanation message as to why the node is going to repeat the message and feedback collection.
Outputs:
Collected: Use this output for when the survey feedback was successfully collected from the customer but the dedicated output for the digit is not in use.RetryExhausted: This output is triggered when the customer failed to provide a result within the set conditions.1 - 5: The individual outputs for the legitimate feedback options. When used, theCollectedoutput is not triggered.
Tip
Hook this node up to the AgentDisconnect output of the Queue node so the customer is offered the survey question after the agent disconnects from their conversation. Drop the Sampling node in between these nodes to offer surveys to a percentage of conversations.
End conversation
Use this node to conclude your workflow. When a customer reaches this point, the conversation will be terminated.
Evaluate phone number
The Evaluate Phone Number feature enables the examination of the Caller's phone number to facilitate workflow decisions based on it. This functionality supports simple 'Starts with' checks as well as intricate pattern matching using regex.
Each rule should include:
- Name: Identifier for the rule.
- Operator: Choose between 'Starts With' or 'Regex' for matching criteria.
- Condition: The specific condition to be evaluated. For instance, using 'starts with +40740' will route calls from phone numbers beginning with +40740 to the output designated for this rule.
Outputs:
- Individual Outputs: There will be one output for every rule you create.
No Match Output: Utilized when the caller's phone number does not correspond to any of the established rules.
Live translation for external agents
The "Agent live translation" node offers a real-time audio translation between a customer and an agent of an external contact center. In this scenario, Graia CCaaS receives the customer call from the external CC system, and launches a separate call to a phone number in that system expecting to reach an agent, potentially via a queue or hunt group, etc.
This node requires the Set Customer Language node to have already been used upstream in the workflow to specify the customer language.
- Agent language profile: Specify the language profile for the agent.
- Agent queue number: The phone number Graia CCaaS needs to call to reach an agent in the external CC.
- Chat only mode for agents: When enabled, Graia CCaaS stops translating the customer audio for the agent but will retain displaying a text transcript of it. This offers savings on AI consumption costs.
- Disable customer audio translation for agents: When enabled, it disables the translated audio of the customer speech, particularly useful if agents rely on the transcript for translation and do not need the customer audio.
- Partial transcription for agents: When enabled, Graia CCaaS will not wait for the customer to finish their current sentences, but displays their textual transcript faster, at the cost of showing incomplete and potentially less correct chunks of text, but faster. This offers agents to stay closer to what the customer is talking about, at the cost of reading potentially incorrect or temporarily inconsistent texts.
- Agent side transcript confirmation: Enables the agent to review the transcript of their own speech and allow/reject the system to translate and speak those to the customer. This lets agents manage the quality of the translation at the cost of speed: reading their own transcript takes time, and when rejected, the agents will have to rephrase their statements and then re-read the transcript of those.
- Automatic confirmation timeout: When the Agent side transcript confirmation is enabled, you can specify how long the system waits before it accepts the transcript automatically.
- Volume of original agent audio: The audio volume level of the agent's original (untranslated) voice the customer will hear in addition to the translated audio. It should be sufficiently low volume as to not disturb the customer's comprehension of the translated information.
- Agent assist configuration: Enables using a predefined agent assist to aid the agent.
- End speech detection: Designate the amount of silence time the system should wait before it considers the participant last speaking to be finished, and translation can start.
Outputs:
Agent disconnected: Selected when the call made towards the external agents got disconnected.Dial failed: Selected when the call made towards the external agent did not succeed to connect.
JavaScript
The JavaScript node allows integrators to write JavaScript code directly into the portal using a capable editor. This allows integrators to use the node instead of creating a middleware or Azure Function for simpler operations. The node supports executing JavaScript, it can send HTTP requests, supports reading & writing workflow variables and basic conversation data.
The node properties:
- A description for the node, use this to explain to other integrators what this node is for.
- Success output, this is used when the code inside the node is successful and the conversation continues through this path.
- Failed output, this is used when the code fails for any reason and the conversation goes through this path.
- Copy Code button, this allows integrators to quickly copy the code inside the node to paste it elsewhere.
- Edit code, this opens the code editor and allows for writing the code itself and testing it.
- You may specify sensitive data that can be used by this node, by typing the variable name (case sensitive) then clicking the add button. If you do not perform this action, data from custom question nodes marked as sensitive will not be passed to your javascript node at all with the rest of the workflow data.
The code editor is based on the Monaco Editor, also powering VSCode. The system passes data to the node, meaning in the code, you can access the following data:
- conversation.id - this is the unique ID of the conversation
- conversation.customerId - this is the unique ID of the customer that is part of the conversation
- conversation.customerIdentifier - this is the email address or phone number (depending on the media type) used to identify the customer.
- workflowVariables.{yourVar} - workflow variables configured elsewhere in the workflow.
For testing purposes, you may provide environment data (conversation ID, customer ID, customer identifier) as well as key-value pairs workflow data to be able to test your code without having to initiate a conversation. Simply click Execute Code to test your code, the console will display any information coming from the code as well as the output variables that you can define in your code using the syntax such as workflowVariables.myVar = 'asdf'
Please note that the data provided as environment data as well as the test workflow variables are discarded when leaving the editor, regardless if the code or workflow was saved or not. Be mindful of the execution timeout set by the system.
Time-based redirect
The time-based redirect node provides workflow designers the ability to upload a time-sheet that includes phone numbers along with corresponding datetime ranges. Upon reaching this node in the workflow, the system assesses the current date and time. If the current date and time fall within a range specified in the uploaded file, the call will be transferred to the phone number designated for that particular range. If it's outside the specified range, the call will be treated as out of range.
The formats below are accepted, with their meaning described:
2023 --> 2023.01.01 00:00:00
2023-12 --> 2023.12.01 00:00:00
2023-12-06 --> 2023.12.06 00:00:00
2023-12-06T10:00 --> 2023.12.06 10:00:00
2023-12-06 10:00 --> 2023.12.06 10:00:00
2023-12-06T10:21:32 --> 2023.12.06 10:21:32
Define a Timeout duration for the call attempt. When exceeded, the node exits on its No answer output. Setting it to zero will defeat the timer—the node will wait for the redirect as long as it takes. Use this to establish an escalation call chain.
Outputs:
Out of range: none of the time ranges specified cover the current time.No Answer: The call was not answered within the specified Timeout duration.
Redirect to phone
Use this node to redirect the conversation to a phone number.
Specify a Timeout duration for the node to wait for the successful connection. When exceeded, the node exits on its No answer output. Setting it to zero will defeat the timer—the node will wait for the redirect as long as it takes. Use this to establish an escalation call chain.
Add workflow variable contents into custom SIP headers or the phone number field in the redirected voice call so the far end SIP UA can process the call better (e.g. make more educated routing decisions):
Click into the Add a new custom SIP header field, type a header name, then click Add.
Click the edit (pencil) icon for the new header to type literal values for it. Put in workflow variable values by putting the workflow variable names into the value field between curly brackets
{workflow_variable_name}.
Best practices for custom SIP headers:
Custom SIP header names should contain no sensitive characters that could produce processing issues in the SIP UA chain down the line (e.g. avoid adding spaces, the colon character
:, etc). Limit the characters to a-z, A-Z, 0-9 and the dash-or underscore_.Try to make the custom SIP header (name and value) as short as possible. Growing too big could cause unexpected problems for the systems receiving the redirected call.
Outputs:
No answer: The call was not answered within the specified Timeout duration.
Schedule callback
Use this node to schedule callback requests. It is put into a dedicated node to allow more flexibility in terms of flow designs.
This node has no property, it simply takes any pending callback requests in the conversation and files them.
Outputs:
Registered: the node succeeded in filing the callback request.
Send email
Use the Send email node to notify customers or interested parties about events happening in the workflow. This can come in handy in business scenarios where specific information needs to be provided in a persistent manner right from a workflow, e.g. for automated data confirmations, auditing purposes, etc.
Designate an existing Email channel in the business unit of the workflow which will be used to send out the email message from.
Select an Email template from the business unit of the workflow, acting as the body of the message.
Type the Subject.
You can set the node to Use customer email address from the identified customer profile of the conversation. Or defeat this option and specify a Workflow variable field to be used as the target attendee of the email message.
Outputs:
Success: The email was sent successfully.Fail: There was a problem while sending the email message.
Set customer language
This node specifies the customer language and the associated language providers for the various language services.
Select a Customer language profile from the list. The node displays the features the selected profile offers.
Note
Make sure the requirements of any followup nodes are in line with the features this profile offers. The system will try its best to mitigate unaligned feature selections. For example in case the Workflow TTS feature is not enabled in the selected profile, but there is a TTS-using node following it, then the profile language is assumed for the TTS announcement.
Outputs:
Then: A generic output, use it to hook up the next node.
Feature support:
Call Translation: Will set the language, STT configuration, TTS configuration for the customer side, the translation engine for the language profile pairs, as well as enables the call translation feature for the current path, enabling call translation between the agent and the customer if the languages set for the agent in their profile configuration do not match the language from the set customer language node.
Recording transcription: Overrides the tenant level recording transcription configuration, with the language and Offline transcription provider coming from the language profile selected in the set customer language node for the current path.
Voice Bot: Sets the STT configuration, the TTS configuration, language and enables conversational voice bot feature for the given path. This applies to 3rd party voice conversational bots as well.
Workflow TTS: Overrides the default system TTS engine for TTS-streaming nodes, allowing setting a language, provider and voice model for such nodes.
Please note that if multiple set customer language nodes with the same or similar functionalities exist on a given workflow path, the last node encountered by the customer will be taken into consideration.
Switch
The Switch node enables workflow designers to assess specific properties or fields of various categories of data (e.g. conversation or customer details, etc.), establish conditions for them and make routing decisions based on the result of these.
Upon creating the node, you first designate which categories of data it will offer properties from. This can be set only once and will not be changeable later on for the given node.
The available data sources to load properties from:
| Data source | Description |
|---|---|
Workflow data |
Data fields set through the Set Data node, via custom integrations, conversational bots. |
Customer details |
Customer record properties in case the customer of the conversation is identified by the time this node gets activated. |
Calendar events |
Events scheduled in the tenant calendar. |
You can define up to 9 conditions, each will have its corresponding output. Additionally, there is a default output option provided.
This node can be effectively paired with the Set Data node, and you also have the option to utilize custom fields defined per tenant or business unit.
Outputs:
- Each condition property has its own output, allowing you to determine the course of action based on these.
Default: Serves as a failsafe, specifying what should happen if no condition is met.
Set recording state for Graia CCaaS-native recording
This node is visible for tenants where Graia CCaaS native recording is enabled. It controls the recording behavior and overwrites the tenant level configuration.
Two options are available: record and do not record to decide whether Graia CCaaS is to keep or discard the recordings it makes. It is useful for tenants who offer the decision to flow designers, or even to individual agents.
Queue
Used to load the conversation into a queue of agents. The Queue node is the queue itself: you give the queue its name and set its routing mode in the node.
Routing mode
When creating a queue, you must choose a routing mechanism: automatic or manual. This choice cannot be changed later for a given queue, but you can delete the queue and recreate it with a different routing mechanism.
- Automatic Queue: The system uses intelligent routing to find the first available skilled agent.
- Manual Queue: Skilled agents can manually pick items from the queue. Agents assigned to manual queues can view all items in their team's queue, including items in manual queues, in their agent performance dashboard.
- Hybrid Queue: The system mixes automatic and manual, allowing the system to use intelligent routing to find the first available skilled agents, but also allowing skilled agents to manually pick items from the queue.
Queue parameters
Emergency: When activated, this feature ensures that conversations arriving into this queue are prioritized over others if the agents assigned to it are also in demand by other queues, as long as those other queues aren't marked as "emergency" as well. If multiple queues are set to "emergency" within the same tenant and share the same agents, conversations in these queues will be treated equally, following a first-come, first-served agent routing policy.Agent Assistance Configuration: Specify the Question Answering knowledge base configuration for agent assistance. Learn more about Question Answering.Queue Treatment: Select the queue treatment for this queue. Learn more about queue treatments.Max Queue Size: Set the maximum number of parallel conversations allowed in the queue.Callback campaign: Select a callback campaign to be able to offer registering callbacks to callers waiting in queue and when theRegister abandoned as callbackscallback feature is activatedRoute to customer's preferred agent: When enabled, Graia CCaaS attempts to route the conversation in the queue to the agent who is marked to be the preferred one for this customer.Preferred agent timeout: The amount of time Graia CCaaS will wait for the preferred agent if they happen to be unavailable.Queue Timeout: Displays the queue timeout for the selected queue treatment (read-only).Connect Message: Stream a personalized message to the customer when connected to an agent using special parameters like {Agent.Name} and {Agent.DisplayName}.SLA Threshold Time: Enable SLA (Service Level Agreement) for the queue. If SLA-based routing is enabled, this information will be used to determine the priority of the conversations.Estimated Wait Time Limit: Specify the MAX estimated wait time. Once the estimated wait time limit is breached, further conversations will no longer be queued, the Estimated Wait Time Limit Reached output will be used instead.Agent Workspace: Choose an agent workspace for this queue. Learn more about agent workspaces.Attribute Requirements: Specify the required skill attribute and its value to route conversations from this queue to agents.
Queue outputs
AgentDisconnect: Define next actions for when the agent closes the task, such as survey questions.Callback requested: The caller requested a callback while waiting in the queue. Hook a Schedule Callback node to this output to achieve this.Timeout(Optional): Specify actions for queue timeout.Size Limit Reached: Define actions for when the maximum queue size is reached.No Agent Logged In: Define actions for when no agents are logged in across the tenant.No Staffed Agent Logged In: Check if there are agents with proper attribute assignment as well as workitem thresholds logged in to handle conversations from this queue, if not, define next action.No available staffed agent: Check if the staffed agents for this queue are also available, if not, define next action.Estimated Wait Time Limit Reached: Define actions for when the estimated wait time limit set on the queue is reached.
Queue entry logic
Before a conversation enters the queue node, the following outputs are evaluated, in this order:
- No Agent Logged In: Check if any agents are logged in across the tenant. If yes, proceed to the next check; otherwise, use the output flow.
- No Staffed Agent Logged In: Check if the logged-in agents are skilled and have the appropriate work-item thresholds. If yes, proceed to the next check; if not, use the output flow.
- No Available Staffed Agent Logged in: Check if the staffed agents are also available, if yes, proceed to the next check, if not, use the output flow.
- Max Queue Size: Check if the conversation would exceed the specified limit. If yes, use the output flow; if not, proceed to the next check.
- Estimated Wait Time Limit: Check if the current wait time is higher than the specified limit, if yes, use the output flow; if not, then the conversation enters the queue.
Sampling
The Sampling node offers chance-based flow management. You set the sampling percentage and the node "throws the dice" at every conversation to activate its Sampled or Not Sampled outputs based on whether the current conversation hits the set probability or not. This can be used to engage branches of the workflow in a probabilistic manner, for example to offer customer surveys for a portion of the total number of conversations, etc.
Note that the probability is not measured and applied on a defined time scale, the node calculates it in a fully random fashion at every conversation. Therefore Graia CCaaS does not guarantee that the set ratio will be honoured in any particular time frame. It is expected to honour it in general, on large enough number of conversations.
Outputs:
Sampled- The conversation falls within the designated sampling rate.Not Sampled- The conversation is not marked for sampling, it falls outside of the designated ratio.
Voice mail
The voice mail node allows administrators to collect voice mails from their customers based on the business logic defined in the workflow.
The voice mail itself streams a BEEP, the customer can end the voice mail recording by pressing the # key on their dial pad and continue with the workflow, or end the call.
You must inform the customer through an announcement node about the voice mail possibilities. You should place the announcement node right before the voice mail node. A suitable message could be, for example Thank you, please leave your voice mail. To end your voice mail, please press the hash key..
The voice mail has a standard silence detection mechanism, if there is no speech detected, after 5 seconds the node exits and voice mail collection ends. If this is your last node in the workflow, meaning the output points to an END conversation node, the call is disconnected. The detection applies to any point of the voice mail collection.
The maximum length of a voice mail is 5 minutes, after which, the node exits and the voice mail collection ends.
Using the workflow designer
Workflow containers, the designer toolbar, saving, cloning workflows and nodes, multi-select, deep links to nodes and node search work the same way in voice, chat and email workflows. See Using the workflow designer.
Reference data
You can reference the following customer data in Switch, Set Data, announcements and the conversational bot node:
{Customer.FirstName}{Customer.LastName}{Customer.Email}{Customer.CustomerId}{yourSetData}
Edit workflow name
For existing workflows, you may edit their generic properties by clicking a workflow in the list, then use the pen icon on the top left corner of the screen. A modal window, or commonly known as popup, will be shown.