Skip to main content


  • Queue and Route
    1. A company can receive calls, and messages on their business phone numbers, or receive messages from web/mobile chats or social channels.
    2. Each conversation over a channel is referred to as a contact, and a company can receive multiple such requests (over each channel) at a given period in time. Sometimes, these requests could be more than the agents available to pick up the contacts. 
    3. Companies would want to place the contacts in the queue before routing them to an agent. The company can hold onto customers' requests even when agents are unavailable and then assign an agent once one becomes available to assist the customer.
    4. In a routing workflow, the ‘Queue & Route’ component will be used to perform 2 operations - Holding customer requests in a queue and Routing the requests to the appropriate agents based on availability. 
    5. Output states of the Queue and Route component: 

      • Completed: When the conversation with the customer is complete, this state is triggered. In the case of a call, the state is triggered when the conversation between the agent and the customer is completed. In the case of a chat/message, the state is triggered when the agent marks the conversation CLOSED from the desktop application.
      • Enqueue Failed: This state is triggered when a queue has reached its capacity to hold contacts.
        Example: Let’s assume that the queue capacity if set to 5 and there are 6 incoming requests waiting in the queue. 5 incoming requests would be dequeued(based on the dequeue order) and the 6th one would fail. 
      • Wait Timeout: When a contact is enqueued, it waits in the queue till it is assigned to an agent. If (time-out for channel > wait-time for contact), the Wait Timeout status of the ‘Queue & Route’ component is triggered.
      • Assignment Failed: If the contact is not assigned after the specified number of retries, this state is triggered


    In the component, the user has the option to do the following - Create a new queue/ Select an existing queue

    1. Select an Existing Queue: In the dropdown for the queue selector, the user can select a queue from the list of available queues. On selecting an existing queue, the details of that queue will be shown.
    2. Configure New Queue: Users can click the ‘Create New Queue’ option in the dropdown for the queue selector to create a new queue.
    3. Queue Name (Max: 255 characters): Queue name has to be unique for every organization.
    4. Queue Capacity: Maximum number of contacts the queue can hold at any given time. Ranges between 1 and 10; defaults to 10.
    5. Queue Priority: Priority of the queue in comparison to other queues in the contact centre. A lower value indicates higher priority. This value would be used to decide the Queue to de-queue when an agent (who serves multiple queues) becomes available. Ranges between 1 and 10; Defaults to 5
      • Example:

        • Agent A is a part of 2 Queues: Queue 1 and Queue 2.

        • The priority set for Queue 1 is 3 and the priority set for Queue 2 is 6

        • As incoming requests enter the queues, those entering the queue with the lowest priority will be the first to be dequeued (Queue 1) and assigned to the agent.

    6. De-queue Order: Order in which contacts are dequeued from a queue, i.e either in First-in First-out or Last-in First-out. Defaults to First-in First-outEvent Callbacks:
      • When a Flow execution is in the Queue and Route component, multiple events take place related to a conversation. 
        • Agent Assigned
        • Conversation Transferred
        • ACW Completed
      • Admin can consume these updates by configuring a callback URL in the component. They can choose to configure a different URL for each event or consume all the events on the same URL. 



    1. Time-out:
      • Specifies the period for which a contact can be present in the queue
      • The default is set to 20 seconds, for all channels
    2. Waiting Prompt: 
      • The prompt played to contacts, while they are in the waiting queue. The prompt can be a mix of waiting music(Add Audio Prompt) and waiting messages(Add Text Prompt). 
      • Waiting music/messages allows businesses to provide users with a greeting message, options to exit the queue, etc and take alternative actions. 
        • Multiple steps of play audio/speak text can be configured
        • Play Audio step has an option to repeat the music for a specified period


        • Play Audio & Speak text steps have the option to be played in a loop till the Contact times out


    3. Key Presses to exit queue

      • While the Contacts are in the queue (waiting to be assigned to an agent), the business can provide them to stop waiting, exit the queue and take alternate actions (like requesting a callback, escalating or changing the team they want to speak, etc.). 
      • Contacts can press keys on their phone (& provide DTMF input) and take alternative actions on the call.
        • Each selected key is shown on the ‘Queue & Route’ component as an output state on the node. New nodes can be connected to this output state, and they will be executed when a contact presses the corresponding input while waiting in the queue. 
        • Ex: If ‘1' is selected as a valid input, there would be a ‘1’ output state on the ‘Queue & Route’ component. The nodes connected to '1’ will be executed when a contact presses 1 when waiting in the queue


    4. Hold Music: Music to be played to the agent or customer when the call is on hold.

    Route and Assign

    1. Assign To: Users can configure the agents or teams to which the conversations of that particular flow must be assigned.
    2. Routing Strategy
      • Highest Idle Time: Routes conversations to the agent/s who have been inactive or unengaged while on duty for the longest duration.
      • Simultaneous: The simultaneous routing strategy of agents involves distributing incoming conversations to multiple available agents simultaneously, 
      • Lowest Conversations Handled: Route conversations to the agent/s who have handled the least number of conversations. 
      • Lowest Conversation Handle Time: Route conversations to the agent/s who have spent the least time handling conversations. 
      • Auto Answer Calls: If this feature is enabled, the incoming calls are automatically answered(once assigned to an agent) without requiring manual intervention from the agent.
      • Ring time before Auto-answering: Using this feature, a delay can be set before an incoming call is auto-answered
    3. Assignment Reservation and Assignment Retry: This goes hand-in-hand with the routing strategy.  
      • For example:

        • Routing strategy = Highest Idle Time

        • Assignment Reservation = 3

        • Assignment retry = 1

      • As per the above configuration, the conversation is routed to the 1st 3 available agents (Assignment Reservation) who have the highest idle time. If none of the agents accepts the conversation, then there is 1 Assignment Retry made to the next 3 available agents who have the highest idle time.
        If the count of agents are unavailable, then the system will route the conversation to the agents (<3, in this case) who are available. 


    4. Sticky Routing: 
      • This feature is used when you would want the conversations to be routed to the same agent who attended the previous conversation of the customer so that the customer does need not to explain the issue again and also can get a faster resolution.
      • Types of sticky routing: 
        • Loosely bind:  Route to the same agent if the agent is available else the routing will happen based on the ‘Routing Strategy’ selected by the admin.
        • Strictly bind: Route only to the same agent. If the agent is not available, the conversation will not be attempted further.
        • No sticky routing: Routing Strategy will be followed for all conversations from the same customer.
    5. Expiry of Sticky Routing: You can select the time in days/hours for which the mapping between an agent and customer must be present. If, “No Expiry” is selected, then the mapping between the agent and customer will remain. 

  • HTTP Request
    1. The HTTP Request component sends requests to APIs. Optionally, the data retrieved from the API can be utilized in the connected child nodes.
    2. Request URL and HTTP method are mandatory. HTTP methods supported are GET, POST, PUT, and DELETE.
    3. Upon clicking "Fetch Response", Contacto initiates an API request to retrieve and store the response. 
    4. If the Response Type/Format is set to application/JSON, the keys in the response become configurable in the child nodes.
    5. Ex: The HTTP Request component can be further attached to the Send Message Component and the variables/keys can be configured. We can send an SMS along with the employee details in the below manner: 
    6. Headers, Auth, and Params are key-value pairs. Headers and Params have an option to bulk edit. Bulk edits must be specified in JSON format.
    7. You can configure authorization mechanisms in the Auth tab. We support three kinds of authorization:
      • Basic Auth
      • Bearer Token (JWT/OAuth)
      • OAuth2
  • Counter
    1. The Counter component enables branching the flow based on the number of times it's executed. Each encounter with the counter node results in an increment of the counter.
    2. Increment the count until it reaches: You can mention the maximum number of times the counter can be executed.
    3. States: Counter component is set to Count Reached state when the component is executed Max Count number of times. Otherwise, it is set to the Count Not Reached state.

    4. In the above example, when an incoming call is received, the Queue and Route_1 component is triggered. 
    5. If either of the following conditions are met, then the Counter_1 node is triggered: Enqueue Failed, Wait Timeout, Assignment Failed. 
    6. The Queue and Route_1 will get triggered until the counter value is reached. Since the counter value is set to 1, the Queue and Route_1 component will be executed once. If the count is reached, then the next node will execute(if configured). In the above example, when the count is reached, a prompt will be played to the caller.


  • Business Hours
    1. This function allows you to select the business hours for the Queue based on your requirements. You can select from a list of ‘Business Hours’ defined in your Contacto account.
    2. The operational hours of a business could vary based on the geographies (countries), agents’ shift hours, target market and various other factors.
    3. For example, retail stores often have longer hours on weekends or during holiday seasons to accommodate increased customer traffic.
    4. When the business is NOT operational, they would inform the customer about their unavailability and could have additional processes to manage the contact.
    5. For example, in the routing workflow, an admin can add the 'Business Hours' component and select the operational hours from the available options before the Queue and Route component. This ensures that contacts are added to the queue only if they reach out during operational hours.
    6. For each of the selected operational queues, a different business hours check could be performed.
  • Branch
    1. The Branch component enables the incorporation of branching logic into your flow. You can picture branches like if/else condition. Based on the conditions, the execution branches into different workflows.
    2. The Branch component splits a workflow by checking a variable against different values. Depending on what it finds, the workflow goes in different directions.
    3. Organisations will be able to use the inputs received to create an efficient branching strategy in Flow. You can compare a variable with a set of defined values. There can be different workflows defined for each such condition.
    4. Ex: Using the Branch component, customers from various countries can be directed to different queues based on their country code.
    5. As per the above example, when an incoming WhatsApp message is received, the Branch component is triggered. It will validate the following: 

      • If {{start.message.from}} starts with +1, then the Queue and Route_2 component is triggered and the conversation will be assigned to the available agent/s of that queue.
      • If {{start.message.from}} starts with +91, then the Queue and Route_3 component is triggered and the conversation will be assigned to the available agent/s of that queue.
  • Create Task
    1. The Create Task component helps the admin automate the handling of callback requests or generic requests from customers instead of having them wait in the queue for a longer time. 
    2. This component will receive inputs from the previous components and pass the data down to the following component which will act as an input for further processing.
    3. From: When a task is assigned to the agent, the From field helps in displaying the number to which the callback request needs to be made. This is usually selected as {{}} which is the caller’s number. 
    4. Type:
      • Generic: When this option is selected, and when a generic task is assigned to an agent, the agent can either call, send a message etc. to the caller based on the issue/query type.
        • Example: 
          • To create Customer Satisfaction Surveys - Create tasks for agents to conduct post-interaction surveys with customers to gather feedback and improve service quality.
          • Follow-up and Case Resolution: Generate tasks for follow-up actions after a customer call or inquiry. This can include verifying that a solution provided to a customer resolved their issue or arranging further assistance.
      • Callback: This option is selected to schedule a callback to the caller. Once a callback request is assigned to an agent, the agent needs to callback the customer/caller at a feasible time.
        • Example Scenario: The caller reaches out to a Support Number 
          • The caller would like to exit the queue instead of waiting in the queue and schedule a callback when the agent(s) are available.
          • As soon as there is an incoming call, the flow will check if the call is within business hours
          • If it is within business hours, there is a “Queue and Route” component that reads a message to the caller. At the same time, the component reads the message that they can exit the queue and schedule a callback by pressing a particular digit.
          • We have the attribute “Key Presses to exit queue” where we can set the digit that can be pressed by the caller to exit the queue
          • If the caller presses the digit, the ongoing request will be terminated and a task will be created.
          • After the task is successfully completed, the callback is queued and then assigned to the agent(s) when they are available which is done with the “Queue and Route” component.
    5. Message: This is the message that would be displayed to the agent when the callback request is assigned to them

      Message displayed to the agent: 

    6. Queue Position:
      • Hold Position: The position of the caller will be maintained and assigned to the agent(s). Say, if the caller was at the 10th position while requesting a callback, that position will be reserved for the caller even after they drop off.  
      • Last in the queue: The request will be put last in the queue. Say, a caller is in the 10th position while requesting a callback. Meanwhile, 5 more callers join the queue after the caller. So, when the request is raised, it will be queued after the 15th caller.
    7. Success Prompt(optional): The prompt/message that would be played to the caller after the task is successfully created. The success prompt can either be entered in text or audio format. 
  • API Integration Request & Get Object
    1. The users can use their existing integrations and trigger them using a flow. 
    2. Example: 

      • These are the active integrations and we will use them to build a use case.
      • A user reaches out to us via chat and with their phone number we fetch the contact details and the tickets associated with that user on Zendesk. 

      • The API Integration Request component is configured with the Incoming Chat. With this component we can fetch the contact details through the phone or email by selecting the Zendesk API to get the contact from the list of available APIs in the dropdown. The drop down will list all the APIs configured in the Zendesk integration.

      • The value that we would pass to trigger the API would be {{}} which would either be the email ID or the phone number. 
      • The API Integration component would return a list and to fetch data from that list we can use the Get Object Component. 
      • When we navigate to the Get Object Component we have different variables that we can use to fetch data in the component.
      • We can attach other components to the Get Object component and build the flow as per our use-case. 
  • AI Chatbot
    1. After you have created an AI chatbot by following the steps mentioned here, you can configure it in your flow by using the "AI Chatbot" component from the functions menu.
      • Name: User friendly name for the AI Chatbot Component
      • Select Chatbot - From the dropdown, select the chatbot you built.
      • Reply Timeout - The time for which the bot should wait for a response from the user.
    2. The steps to configure the AI Chatbot Component are mentioned here.