Supervisor guide

Supervisor guide

The Supervisor guide covers everything a supervisor can set up in terms of managing their contact center, working hours, agent statuses, as well as queues and routing where and when necessary.

Also, check out how you can manage automations and set up surveys to be shown to the customer after a conversation ends.


Capacity is the maximum number of defined opened conversations for an agent by channel; the default capacity for all agents or default system capacity for live messaging is 5 concurrent conversations.

For voice calls - capacity is always one since one agent can talk to only one person at any given time. This default value cannot be changed on the system or agent level. Calls only occupy capacity during their duration. If a call has ended but an agent still has a conversation assigned to them, it does not count towards the agent's active call capacity.

Default capacity

To set up the default capacity for all agents go to the Conversations moduleSettingsGeneral setupCapacity. Capacity represents the maximum number of concurrent conversations that can be assigned to one agent over the automatic assignment.

Instant Messaging stands for a group of channels: SMS, WhatsApp, Viber, Telegram, Google's Business Messages, Apple Messages for Business, and Messenger.

Default capacity is taken into account only when not defined at the agent level.

Conversations - Auto assign capacity

Agent capacity

To set up agent capacity, go to ConversationsSettingsGeneral setupAgents → select the agent you want to edit → Capacity. Agent capacity is considered first. In case it’s not defined, default capacity is considered for new conversations assignments.

Conversations - Agent capacity

Waiting strategy


Currently available for Voice and Video channel only.

Being on hold can be frustrating for your customers so it is important that you are able to build a waiting strategy that establishes the best environment for callers while they wait to be connected to your agents.

To do so, navigate to ConversationsSettingsGeneral setup. Click the Waiting Strategies tab, and to define a new waiting strategy, click on the Create New button.

Name your waiting strategy and define general information:

  • Numbers or application (when using Web and In-App Calls) that your strategy applies to.
  • Maximum waiting time that defines how long this strategy will run for.
Conversations - Define waiting strategy

Subsequently, you can set up one or more available options depending on your business needs:

  • Greeting message - this will be the first communication callers hear when they contact you. You can use the text-to-speech feature to craft a message or upload a file you would like to play to your callers.
  • Hold music - certain types of music can calm a person while on hold and create a more positive experience for callers. You can upload your hold music file.
  • Announcement message - when your customer's mind is occupied with something it makes the time they have to wait feel less burdensome. Keep callers engaged by periodically playing announcement messages.
  • Maximum Wait Time Message - when the maximum wait time has been exceeded, and just before the call is about to be dropped, play a message to your customer letting them know that the call will end. You can use the text-to-speech feature to craft a message or upload a file you'd like to play to your customers.

You can enable/disable each option by clicking the toggle button.

Create message

You can decide to create your waiting strategy messages as a speech version of the text you provide in a written format. In that case you should use text-to-speech as audio source and write the message script in the provided text field.

To do so, configure these available parameters:

  • Language - select one of the available languages
  • Voice - select one of the available voices
  • Speech Rate - adjust the speed at which words will be spoken to be in line with the language and the message you are communicating
Conversations - Voice - create message

Upload file

You can use a file that you have previously recorded or created in your waiting strategy messages. In that case, you should use file upload as the audio source. Click Browse (or use drag and drop action to upload your file), locate the file, and confirm the action to upload your file.

Conversations - Voice upload file

You can also delete uploaded files if needed.


Bear in mind that the maximum file size is 4MB.

Position in queue

Announcing the position in the queue informs callers about their estimated waiting position, which is determined based on the number of callers in the queue and the queue's size. Offering callers an estimated position in the queue reduces uncertainty, enhances transparency, and elevates the overall customer experience.

From the Waiting Strategies (opens in a new tab) tab, you can either add this feature to an existing waiting strategy or click the Create New button to create a new one and then choose Calls → Announcement Message.

By clicking the curly brackets symbol in the Audio message content option, you will see three options to set up a placeholder to inform customers of their position in the queue:

  • Ordinal (e.g. first, second, third...)
  • Cardinal (e.g. 1, 2, 3...)
  • Adaptive numbering (the computer will automatically decide to use ordinal or cardinal numbers for certain languages)
Conversations - Position in queue

Langugage and voice selection

It is recommended to select the language and voice first, and then choose the desired placeholder, as not all placeholders are available for all languages or voices. Select the wanted placeholder and write out your audio message content accordingly.

Conversations - Position in queue language and voice

For every supported language, we offer different voices from a gender perspective as well as from a quality perspective (standard versus neural). You can choose between the standard and neural voices.

Neural voice (opens in a new tab), unlike the standard one, is a remarkably natural-sounding voice for your applications that provides a high level of authenticity with its human-like cadence and intonation. If you do not have neural voices enabled, contact your account manager.

Under each voice option, you will see the availability of placeholders tailored to assist you in selecting the perfect voice for your audio message.

Conversations - Position in queue language and voice selection

If you select a voice with only one available placeholder option, the remaining two will appear grayed out.

Conversations - Position in queue language and voice selection grayed out

Additionally, you can also choose the Speech Rate to adjust the speed at which words will be spoken to be in line with the language and the message you are communicating.

After you have configured everything, click Save.

Waiting strategy for messaging channels

Waiting strategy for digital channels applies to all the text-based channels used in the Contact Center.

When set, the waiting strategy triggers when a conversation enters the contact center directly or after being transferred from a bot and is unassigned.

The conversation will be unassigned if auto-assignment is not set up on the queue or if there are no available agents for auto-assignment.


In cases when a conversation is added in the queue while the queue is not working (the Working hours option has been set) the waiting strategy will not be triggered.

There can be only one waiting strategy for a sender.

The waiting strategy consists of three types of messages:

  1. Welcome message - a message sent to the customer when they enter the queue
  2. Announcement message - can be a periodic message
  3. Maximum wait time message - a message sent to the customer when they have waited the maximum defined time in the queue

At least one message must be enabled for the waiting strategy to be used.

Waiting strategy can end in three ways:

  1. A conversation assigned to an agent.
  2. A conversation waiting more than maximum wait time set up in which case this conversation is also closed. A closed conversation will be removed from the queue and won’t be assigned to an agent.
  3. A conversation waiting for more than an hour. The conversation will remain open, but there will be no more messages sent to the customer.

Welcome message

A welcome message is sent to the customer upon entering a queue, but the conversation is left unassigned. This message is sent only once and it usually contains a greeting.

Announcement message

Announcement message can be sent after the welcome message in regular intervals while the customer is still waiting for an agent to take the conversation (waiting for conversation to become assigned to an agent). Minimum interval is one minute.

Using the option to set a number of announcement messages enables you to choose how many messages can be sent to the waiting customer. After sending these messages, the conversation will remain in waiting strategy.

Maximum time for sending announcement messages is one hour, meaning that the maximum number of messages that can be sent to the customer is 60.

If a conversation waits for assignment for more than an hour, and if there is no maximum wait time set, the conversation will remain open, but no more messages will be sent to the customer.

Maximum wait time message

Maximum wait time is used to close the conversation after the time has passed and the conversation was not assigned to an agent. It can be set to the maximum of 60 minutes.

If the time is reached, the message will be sent to the customer and the conversation will be closed.

Typically, the content of this message will inform the customer of alternative ways to contact the business and get help at a different time.

Working hours

Set working hours for your contact center - you can do that for each separate day of the week. Also, holidays can be set as non-working days and you can set them by exact dates which throws repetitiveness out of the window.

On this page you can set:

  • Default time zone (refers both to holidays and regular working hours)
  • Working hours
  • Holidays
  • Away message
Conversations - Set working hours

A working hour period can be set per queue, meaning that one working hour period can be assigned to each queue.
This is especially handy for companies dealing with different markets in different time zones.
One working hour period can be set as default which means that all queues created afterward will have this period set without the need for intervention.

If you happen to change the default working hour period, previously created queues will retain the old setup. Agents and supervisors will be able to see all conversations and messages created outside working hours to follow up with customers.

Days that are "switched off" are considered as non-working days. For example, if Saturday and Sunday are switched off in the Working hours setup, then all conversations started during Saturday or Sunday will receive the 'Outside of working hours' reply.

When a customer sends a message outside working hours they will receive the auto-reply over the same channel that they used to contact you.

Supervisor guide - Outside of working hours


Here, you can define holidays for your team during which they will not be at the office to interact with customers.

conversations holiday working hours

The important thing is to select your start and end date carefully since a holiday is defined by entering a start date (00:00 on the start day) and an end date (24:00 on the end day). That means that the end date is also included in the holiday.

For example, if your holiday is only one day, your start and end day must be the same. If your holidays take up more than one day, the start day needs to be the first day of the holiday and the end day the last day of the holiday.

Away message

Define automated Away Messages for each queue where this message will be sent if a customer reaches out to your contact center outside the working hours.

If you select the Set conversation to Closed after customer receives Away message option, the conversation started outside of working hours will receive the defined 'Out of office' reply and it will be immediately closed.

Supervisor guide - Outside of working hours close conversations

The automatic away message is sent only when a customer contacts you outside of the working hours and opens a new conversation that way. In case there's already an open conversation and your agents reply outside of working hours, the automatic away message will not be sent.


To find out more about the Callback configuration, click this link.

Service-level agreement (SLA)

A service-level agreement (SLA (opens in a new tab)) is the level of service you expect from a vendor. It defines the metrics by which a service is measured, and it takes into account remedies and/or penalties if the agreed-upon levels are not respected.

Main values of having the service-level agreement active are:

  • Provide an opportunity to track the conversations SLA for your customers.
  • Actively tracking the SLA increases customer satisfaction as every conversation is handled in dedicated time to avoid any breaches.
  • Supervisors can faster recognize breached SLA in conversations and proceed to quickly resolve those conversations to avoid long SLA breaches.
  • Focus on the most important conversations based on the severity of the issue.

SLA tracking on a conversation stops once the conversation is closed. Breaches that occurred on closed conversations can be tracked via Reports (opens in a new tab) and Advanced analytics (opens in a new tab).

Key benefits of SLA in Conversations:

  • A faster resolution of the most important conversations, as well as urgent customer issues.
  • Conditional SLA policy based on variable attributes bringing personalized approach into handling conversations from time urgency point of view.
  • The ability to identify the severity of the issue and thus prioritize the conversation.
  • Transparent tracking of the response time by displaying the remaining SLA time left before the breach.
  • Improve supervisor management by quickly identifying the conversations with breached SLA in time.



SLA is available only for the Grow and Scale Conversations package.

To configure SLA, navigate to ConversationsSettings → and locate the Service-level Agreement tile.

Conversations - Apps - Service-level Agreement card

Select the card to manage your existing and create new SLAs. To add your first SLA, select the Create New button.

Here you need to fill in all the details about your SLA:

  • Name your SLA policy (default name will be pre-populated)
  • Set the status:
    • Status is Enabled by default. You can change it to Disabled after which this SLA policy is not valid anymore.
  • Based on the validity period, once the SLA time is out, the policy will not be valid anymore.


  • Define the time period during which this SLA will be valid.
  • To update the validity period, go to your Service-level agreements listConversationsSettingsService-level agreement, select the three-dots menu on the right (under Actions) and then click Edit.
  • Note that the dates you set define the period when the configured SLA policy is valid and applies to all conditions for matched conversations.


  • Conditions are rules that you need to configure based on which the SLA policy will apply to those conversations.
  • You should set at least one condition.

For example, Set the SLA for all incoming conversations if ''Company'' is condition ''A''.

Conversations - Set SLA conditions
  • In case you need to set conditions based on some custom company or user attributes, you can set such conditions here
  • You can also apply +AND and +OR conditions to combine more attributes

The first SLA policy that fits the conversations based on the conditions set is the one that will apply to those conversations.

You can define which queues have the SLA policy set or ignored by assigning and applying the SLA policy based on a specific queue.

The other SLA policy is assigned to the conversation when it transfers from one queue to another and the second queue requires a different SLA policy. As a result, any prior breaches are recalculated using the newly allocated SLA policy.

Additionally, you can specify whether a queue or customer receives support 24/7 or just during working hours. By prioritizing tasks in this way, you can distinguish between those that are more urgent and require around-the-clock assistance and those that can wait until working hours.

Once a conversation is routed to a queue and has an assigned SLA policy, the following setup is added to the SLA logic if it is considering working hours or no time limitation (default):

  • Working Hours indicates that the SLA needs to consider:

    • The actual queue of conversation
    • Queue working hours setup
    • In case there is an only working hours setup, the current time is checked, and if it is outside of working hours and the current severity is set to apply only during working hours, all SLA counters for these conversations are put on hold
  • No limitations means that the SLA can fully ignore any working hours and is always counting based on already existing logic:

    • If the severity setup is no time limitation, the SLA continues counting in already running timers
SLA - Working hours and no limitations

Excluding automated messages

By default, SLA policy metrics count all outbound messages, including human responses and messages triggered by automation, working hours, waiting strategies, and chatbots.

However, if you need a more granular approach and want SLA calculations to consider only human replies, you can exclude automated messages from your SLA. This option lets you prioritize and measure real-time human responsiveness since the SLA countdown for the first response, next reply, and total resolution time is triggered when the chatbot handovers the conversation to an agent, and any automatic replies are ignored.

To enable it, select Exclude from your SLA.

conversations exclude automated messages from SLA


  • The Severity level represents the complexity of the issue the customer is facing.
  • Every SLA policy must have at least Default Severity level set.
  • Based on your business needs and policies, you can define different levels of severity.

For every Severity level you need to set:

  1. Name - This will be visible to Agents as an option to choose between severities for every conversation (Default Severity is set for every conversation that matches the SLA policy condition)
  2. Times:
    • First response time
    • Next reply time
    • Total resolution time

It is mandatory to set at least one of these for each severity. Also, choose whether you want this SLA to apply Always or during Working hours only. This will depend on your business use case and what kind of support you have agreed upon.

Service-level agreement - Choose working hours or always

Every SLA can have an unlimited number of severity levels so you can add as many as you need by clicking the +Add Severity button.

Example of severity levels:

Default severityDefault severity that applies to every new incoming conversation fitting the SLA policy.
Severity 1Could represent extreme infrastructure or product outage for many customers.
Severity 2A certain product part is unusable for many customers.
Severity 3A certain product feature is unusable for many customers.

This is how the resolution time is counted if excluding automated responses is NOT enabled::

Conversations - SLA diagram

This is how the resolution time is counted with the option to exclude automated responses enabled:

conversations exclude automated messages SLA chart
  • The SLA counting starts from the first message the end user sends.
  • First response time represents the time between the first message from the end user appeared and the agent's response.
  • Next reply time is the time between the next (not the initial) message from the end user and the agent's response to that message.
  • Total resolution time is the time between the conversation start and when the Agent has set the status to Solved.
  • SLA is paused every time a conversation is set to the Solved status.

Note that each of these Times is configured in minutes.

After you have set the Period, Conditions, and Severity levels, you can save your SLA.

List of SLA policies

The list of SLA policies allows you to define the priority of your SLAs.

  • The SLA policy on the top is the most important.
  • Based on this logic, if you have two policies that have similar conditions fitting your conversations, the system will apply the first one on the list.

You can edit the list if you click the three-dots menu and then choose to Edit, Delete, Send to top or Send to position (enter the number to move the SLA to that position).

Note that if you delete your SLA, it will no longer be valid and it will not be applied to any conversations anymore.


Once you have set up everything, your agents will be able to see SLA details in their My Work and All Work panels. Follow the aforementioned guides to learn more.


Every update to the SLA policy setup triggers an SLA recalculation.


To manage Conversations Agents, navigate to SettingsUsers tab. This section contains a list of all users where you can assign the Conversations role(s) for each user.


To add a new agent, you need to create a new user in SettingsUsers and assign the Conversations Agent role to your agent.


When added, an agent is automatically enabled. Enabled agents have access to the Conversations module and can handle customer inquiries. If you want to disable an agent, hover over an agent on the list and change the toggle button status. When disabled, the agent will not be able to handle conversations. On the Agents page, supervisors can easily manage agents and filter based on enabled or disabled status.


To manage specific agent details, click on the agent’s name on the list of all agents.

The agent details page will open where you can do the following:

  • Change Agent name
  • Check Agent status (active, busy, offline, away)
  • Enter title and phone number
  • Enable/Disable Agent
  • Check and manage user details, queues, capacity, call wrap-up, recording, call transcript, performance, and utilization
Conversations - Edit user settings

Moreover, you can assign agents to queues (a queue is a pool of agents that handle a certain topic). Click Add Queues, select a queue and click Assign. When assigned to a queue, the agent will see this queue and conversations within the queue in their All Work panel.

You can also configure some of the conversation parameters on the agent level, e.g., you can change the value for agent wrap-up time for Voice calls.

Conversations - Set wrap-up for agent

Agent statuses

Agents communicate their availability by setting their status which can be changed automatically or manually.

There are two types of agent statuses:

  1. Default statuses - Predefined and have automation logic based on the agent’s activity or workload.
  2. Custom statuses - Allow you to create new statuses for your agents to fit your business needs.

Additionally, there are 4 groups of statuses:

  1. Available - Indicates that agents are signed in and available to take on new conversations
  2. Busy- Agents are unable to receive new but can receive transferred conversations.
  3. Away- Agents are away from a computer and won’t receive new but can receive transferred conversations.
  4. Unavailable- Agents are not signed in and cannot receive any conversations.

Configuring and being aware of agents' statuses enables supervisors to better track how agents spend their time and get an insight into how to better utilize their agents.

Agent’s status is also connected to Auto Assignment, in a way that only agents in any status from the Available group of statuses will be a candidate to receive a new conversation.
Also, if the agent’s current workload is 90% (or higher) of their maximum capacity, they will automatically be transferred to the Full Capacity status.

The Full Capacity status considers three categories: Email, Live Messaging, and Live Chat. An agent reaches full capacity when the combined percentage across these categories reaches 90 or higher, e.g.:

Live Messaging 2 Occupancy / 6 Capacity + Live Chat 1 Occupancy / 5 Capacity + Email 3 Occupancy / 10 Capacity = 33% Live Messaging + 20% Live Chat + 30% Email = 83% - the agent has not reached the full capacity yet.

However, if an agent receives, e.g., an additional email on top of their current workload, resulting in percentages of 33% Live Messaging, 20% Live Chat, and 40% Email (totaling 93%), the agent will automatically switch to the full capacity status.

When their current workload drops below their maximum capacity, they will be back in the Under Capacity status.

Another important mechanism is the agent’s activity within the system. The system tracks whether agents are really in the status they set themselves in.

Example: If an agent sets themselves as Available but the system notices there is no activity in the browser (or the browser is closed), the system will automatically log them out to prevent further conversations assigned to them and inaccurate time tracking on Agent’s Utilization.


Agents should end their shift by setting their status to offline and logging out of the system. Otherwise, they will remain in the current status while logged off.

Voice and Video channel statuses

For the Voice and Video channel there is an additional logic involved. To receive, accept and have a conversation and later wrap it up, agents will undergo several statuses:

  • Ringing - Call is not yet connected to the agent but they are prompted with the ringing dialog.
  • In a call - When the agent accepts the call.
  • Wrapping - After the completed call, the agent has additional time to write important notes or conclude the call if there was a resolution with the customer. In this status, the call does not count the agent's capacity, allowing the agent to receive another call or engage in other conversations.

Sensitive data masking

Sensitive data masking is a fundamental component of data security and privacy. It is used to protect sensitive or confidential information by replacing or hiding original data with a masked or hidden version. With data masking, you can ensure that sensitive information remains confidential while allowing non-sensitive parts of the data to remain usable.

The data masking feature hides or masks data labeled as sensitive from agents. This includes information such as:

  • Text messages
  • PDF and other files
  • Images (with or without description)
  • Videos
  • Audio files
  • Location data
  • Links

The system identifies data as sensitive based on the configuration of your chatbot's attributes. These attributes (marked as sensitive) are masked and provided by the chatbot in the Conversations agent panel.

You can hide attribute values so that agents cannot view these values in the context card and conversation history:

  1. On the Infobip web interface (opens in a new tab), go to AnswersChatbots and navigate to your chatbot.
  2. Go to the Attributes tab → Attributes section.
  3. Navigate to the attribute for which you do not want agents to see the values.
  4. Deselect the Available to agents field.

For example, when a customer contacts the bank and shares sensitive data with the chatbot, that data will be masked.

Conversations - Sensitive data masking

Conversation forms

These are fully customizable forms that agents can assign to conversations (Digital, Calls, and Social Media) based on each conversation's parameters. Agents can fill these forms to collect information that can later be used for analysis and re-engagement.

To set up forms, you need to navigate to the Conversations moduleSettings→ select Conversation Forms.

There are multiple types of input fields that you need to fill in:

  • Text - simple text input
  • Multi-line - larger texts
  • Checkbox
  • Dropdown - multiple levels of hierarchy are possible; you can create a new level using: e.g. Clothing: Shirts will return results in a drop-down menu with the value 'Clothing' and sub-value 'Shirts'
  • Whole number
  • Decimal number
  • Datetime
  • Regex - a textual input that uses regular expressions to limit inputs from agents (e.g., So that they can only enter numbers in the input)

The limit for the number of input fields per conversation is as follows:

  • The maximum limit for custom input fields per account is set at 10,000.

  • The maximum number of input fields that can be assigned to one conversation is limited to 500.

After you have created input fields, you can add them to your form. If needed, you can mark each input as mandatory. Empty mandatory input fields in the form will prevent agents from marking the conversation as Solved or Closed.

Conversations - Forms

You can mark input as conditional, meaning that if some fields are set to a specific value, additional fields will be shown to the agent. Moreover, you can set any of these conditional fields as required so the agents know they need to fill them in.

Forms - Conditional inputs modal

When creating a form, users can use the same conditional input fields multiple times in the form. Regardless of the setup, the input field will be shown only once. With this improvement, we are making forms more flexible and fulfilling for users:

  • In the configuration, the same conditional field can be placed multiple times in the form.
  • Forms cannot be created with inputs like "Input A, Input A, Input A" because conditional fields must be utilized if they are added more than once.
Forms - Conditional inputs

When you have created a form, you need to set triggers. They define which conversations will have the newly created form displayed. The triggering mechanism is similar to the one on Routing. If no triggers are fulfilled, the default form is assigned. You can mark any form as the default one.

Note that only one form can be default at any given moment.

Conversations - Forms triggers

After you have added triggers, the form is ready to be displayed to agents. Also, forms will be assigned when conversations from bots or flows are transferred to an agent.

When they start a conversation, and it fulfills the parameters set in the triggers section, the form will be shown in the My Work panel so that the agent can fill in the data during or after the conversation with the customer. Agents can change the form for the conversation as needed.

As mentioned before, agents will not be able to mark the conversation as Solved/Closed if they do not fill in the required fields.

When merging two conversations, form fields set in the initiator conversation (not in the recipient conversation) are merged.

You can use the assigned forms and values entered in input fields to filter out conversations in the All Work and the Reporting section.


In the background, all inputs are available for all conversations. The exact form that you want to use serves as a filter on input fields so that only relevant ones are shown in the conversation. This means that removing one input field from the form will not result in losing the value stored in it. This way, the input field will not be displayed within the form but is available for usage.


Macros are primarily used to help agents resolve repetitive tasks more quickly. These are previously made responses for agents to faster respond to customers if they often ask similar things or discuss the same topics, as well as create escalations to external sources, internal escalations within Conversations, etc. They simplify the agent's work and enable automation of the needed steps for the same use cases by simply choosing the appropriate macro, whether in open or new conversations, where all steps are completed automatically.

Available actions to automate are:

  • Status (change the status of conversations)
  • Priority (change the priority)
  • Forms (fill in the form values/choose the correct form to be displayed to the agent)
  • Template (pre-fill the template in message composer)

Macros are only available in the Grow and Scale package.

To create a new macro, navigate to ConversationsSettings → click the Macros tile.

Conversations- Macros settings

From there, you can:

  • Create new macros
  • Search for the existing ones
  • Edit macros
  • Add macro tags
  • Duplicate
  • Delete
Conversations - Macros options

When you click the Create New button, a new window opens where you can add the following macro details:

  • Name
  • Description
  • Settings:
    • availability for:
      • All Agents (if you set it for all, then agents from all queues can use the macro)
      • Selected Queues (if you click this option, you can select specific queues that will have access to the macro, and agents assigned to that queue can use it)
    • Add tag (adding tags makes macros easier to find)
  • Set actions:
    • Conversation status
    • Conversation priority
    • Conversation form input fields
    • Conversation form (you can choose which form is displayed to the agent once they apply the macro)
    • Template (you can set a template per channel in one macro that is an omnichannel and can be used in multiple channels; in that case, the system automatically detects which channel the agent is in, and based on that, applies the proper template (if the template for that channel is not set, it is not populated))
    • Tag conversation
    • Assign agent to conversation (set the agent to which the conversation should be assigned once the macro is applied)
    • Set topic or email subject for conversation
    • Set conversation queue (set the queue to which the conversation should be assigned once the macro is applied)
    • Fill in recipient field (choose a channel, and upon applying the macro, it will be utilized based on the sender previously selected; only supported for SMS, Viber Business Messages, WhatsApp, and Email channel)
    • + Add an Action button
    • Note: When setting actions, it is crucial to carefully select their order, as it can significantly affect the macro's ability to execute successfully. For instance, changing the conversation status to Solved cannot occur before assigning a form to the conversation. The proper sequence should be to first set the form for the conversation, fill in the form data, and then proceed to change the status to Solved.
Conversations - Macros settings Conversations - Macros set actions

On the Macros page, you can filter them by:

  • All
  • Tags (these tags are not related to any other tags in Conversations since these are just macros tags that are used for faster searching or categorization of macros, e.g., escalation macros, Sales macros, etc.)
  • Status
Conversations - Macros filtering

The sorting is done by:

  • Macro name A-Z
  • Macro name Z-A
  • Date created - Newer first
  • Date created - Older first
Conversations - Macros sorting by date and name

Macro tags

Next to Macros, click the Tags tile to create new macro tags and/or edit/delete existing ones. Tags can be assigned to conversations to better categorize conversation topics or customer intent, and they are connected to the dashboard where Supervisors can analyze the number of conversations per specific tag.

The main purpose of macro tags is to group the related macros under the logical group from the supervisor perspective that could help agents in finding and utilizing the appropriate macro much faster.

Such tags can be used based on:

  • Customer process flow (e.g. Problem acknowledgment (tag1), Problem resolution postponed (tag2), Problem resolved (tag3), etc.)
  • Importance of customer (e.g. Gold customer macros, Silver customer macros, etc.)

Once the agent uses a certain macro, they do not need to remember its name, since they can simply use a tag suitable for the current situation they are handling, and based on that, get the needed macro faster because the list will be already filtered for the situation they are handling.

Conversations - Macro tags

To create a new tag, click the Create New button, enter the tag name and click Save.

Conversations - Create new tag

Users and permissions

In order to provide a more flexible approach to users and permissions, we have added four Conversations roles that can be set on the user’s profile:

  • Conversations Agent - Users assigned to this role can handle conversations.
  • Conversations Manager - This user can manage conversations regardless to whom they are assigned.
  • Conversations Analytics Manager - Can check analytics and reports
  • Conversations Account Manager - Users who can manage Conversations setup.
Conversations - Users and roles

Note that these roles can be combined, which means that one user can have multiple roles assigned, thus fulfilling any specific permission needs the client might have. A user cannot have both Agent and Manager roles because the Manager role has all the permissions that the Agent role has and additional access rights.

Every user assigned to any of the Conversations roles needs to have an active Named User License (NUL).

After you have set this up, the new user will get an email with login data and can successfully log in to the Conversations module.

Queues and routing

Conversations routing is a process of finding the right queue for new messages from where they can be further processed. The new message is evaluated against each route in routing and when the first route is matched, the message is added to the specified queue. If no route is matched, the message is added to a default queue.

The order of routes inside routing is important because the new message is compared to a rule in a given order in routing to find the first match.

Routing is a set of rules which determine the assignment of a new conversation to a particular queue executed in a specific order. Route consists of a set of conditions that determine the destination queue and priority for a new conversation. Conditions are expressions defined based on the message or customer attributes and conversations tags.


You can manage both queues and routes over the web interface and API.

Only supervisors can create and/or change route setup.

You can define and store customers' information in People.


Queues are buckets or folders for conversations. Agents are assigned to pick up work from specific queues. New conversations are handled based on specific rules called routes. The purpose of queues is to categorize conversations. Supervisors can assign agents to certain queues, so conversations are managed in a timely manner by the most knowledgeable team members.

Important to note is that the Default queue is a system-defined queue that collects all unmatched conversations during routing. It is available to all agents and all agents are part of this queue automatically. All agents have access to conversations in the default queue and can reply to customers. The default queue can be changed in a conversation but it cannot be deleted.

Manage queues

Queue management inside the web interface is located within the Conversations moduleSettingsGeneral setupQueues.

Previously created queues are listed on the Queues page, and this is where Supervisors can:

  • Check the lists of created queues
  • Create a new queue
  • Manage existing queues
Conversations in Apps - Queues

When you click on a queue name, the Queue detail page will open. Here you can find more information about the selected queue such as:

  • Name of the queue
  • List of agents assigned to the queue
  • List of routes leading to that queue

For easier management, it is recommended to name the queue according to its purpose. For example, if you have frequent inquiries from premium customers you can name the queue 'Premium customers'. You can manage assigned agents and routes setup on the same page.

Conversations - Routes and assigned agents

Create a queue

To create a new queue, click on the Create New button in the top right corner. Every new queue is named ‘Queue #X’ by default where X is a random number, but the Supervisor can rename the queue at any point. Agents and routes should be assigned to created queues to make them functional.

When you click Add Agent, the list of enabled agents appears on the right side panel and any agent can be added to the queue. To add a route, the Supervisor can choose from the list of existing routes or create a new one and assign it to the queue.

Auto assignment on the queue level is mandatory for calls, so you should enable this for the default queue and/or all other queues you expect calls to be routed to.

Conversations - Queue auto assignment

Delete a queue

To delete a queue, navigate to the list of all queues, click the three dots, and then Delete. Only queues that do not have an active conversation associated with it can be deleted.

Conversations - Delete queue


To set up notifications for the agents (opens in a new tab) on a queue level, log into your Infobip account, and navigate to ConversationsGeneral setupQueues → select an existing queue or create a new one → Notifications.

You can enable additional notification options that affect sound alerts when:

  • New conversation arrives in the queue
  • New message arrives in a conversation from the queue

The queue must have at least one agent assigned to it for the notification setup to show.

Agents will receive notifications when a new conversation arrives in the queue, or when a new message arrives to any conversation in the queue, regardless of whether the agent is assigned to it or not.

Conversations - Sound notifications setup

Working hours

Set the working hours for this queue. Choose a suitable period from the drop-down menu. Read more on how to create new Working Hours.

Automatic agent assignment for chats

The Automatic Agent Assignment is a process of distributing conversations between available agents based on their workload, capacity, and idle time. Supervisors can configure this on the queue level in ConversationsSettingsGeneral setupQueues.


This info is for automatic agent assignment for chats only. Calls have a different logic - please scroll down to that section to read more.

Automatic agent assignment is turned on by default for all new queues. This applies to all channels.

There are two options you can choose for the Automatic Agent Assignment:

  1. Assign conversations to any available agent - where agents are randomly picked out of all agents assigned to the queue the conversation is routed to
  2. Assign conversations to the agent who last interacted with the customer - where previous interactions with the customer are taken into consideration creating a situation where the agent might already have some context. When using this option, you can set an additional parameter: the period during which the agent had to have communicated with the customer to be considered for assignment.

For the second option, you can select one of the following:

  • In the last 30 days
  • In the last 60 days
  • In the last year
  • Ever

The process when a new conversation is assigned to a queue goes like this:

  1. Automatic Agent Assignment process starts (only one can run at any given time)

    • On newly created conversations
    • Or when an agent changes their status to Available
  2. Availability is calculated

    • An agent is marked as Available when their status is available, and they have fewer conversations assigned in any status other than Closed, than their defined capacity
  3. Workload and waiting time is calculated for every agent marked as Available

When a conversation is in one queue, and is transferred to another one where the Automatic Agent Assignment is turned on, the agent is assigned automatically. However, if a conversation is in one of the statuses that are set not to occupy the agent, then the Automatic Agent Assignment does not occur, and, if needed, the agent manually assigns the conversation to themselves.

In the Conversations statuses and capacity section, you can exclude or include statuses that you do not want to be counted in the capacity. The conversation statuses you select here will be counted into an agent's maximum capacity.

Conversations - Exclude statuses for automatic agent assignment

The Open status is displayed here but you cannot move it because it is counted by default.

You can exclude Solved and/or Waiting status when calculating capacity. This means that agents will appear Busy while in the status you select in this box.

Additionally, use the Reset to defaultbutton on the far right to reset this configuration.


These options should alleviate any previous issues with agent capacity not being counted correctly or when agents were not able to receive new conversations.

When agent occupancy has dropped, AA is triggered for that specific agent. The following areas can cause a drop in occupancy:

  • Conversation unassigned
  • Conversation closed
  • Conversation merged
  • Transition from included to excluded conversation status

When a conversation is routed to a queue and assigned to an agent, and in the meantime, the queue changes, the following happens:

  • If the agent is assigned to the new queue, they are left assigned to the conversation after the queue change.
  • If the agent is not assigned to the new queue, they are unassigned from the conversation, and the Automatic Agent Assignment starts (if turned on) on the new queue. If the Automatic Agent Assignment is not turned on, the system is waiting for agents in that new queue to take the conversation and handle it.

Also, if an agent was previously assigned to a conversation, they are not eligible for AA for the same conversation.


AA triggered on Working Hours starts on the corresponding queues for the conversations that arrived during non-working hours.

Bulk AA algorithm is triggered at the beginning of the working hours, which means that all conversations that arrive outside business hours will be assigned once the agents' shift starts. When an agent becomes available, either by coming online with free capacity or by unassigning some conversations, they enter an available status. At this point, unassigned conversations are retrieved for that agent and ordered. The ordering is such that those with higher priority are placed at the top, and if there are conversations with the same priority, they are further ordered by the createdAt timestamp. The conversations are then assigned to the agent until their capacity is full. This process is commonly referred to as "bulk auto-assignment."

Single AA algorithm has in mind the sticky agent first. If not found, the system looks for the best option (agent) in terms of workload and availability. This algorithm applies when a conversation changes its queue but also when a conversation is unassigned - it will exclude the previously assigned agent and look for a new one assignee.

Workload is represented as the ratio of occupancy and capacity. If two agents are eligible to be assigned to a conversation, and Agent A has the capacity of 4 and occupancy (number of open conversations assigned to the agent) of 2, and Agent B has the capacity of 8 and occupancy of 3, the conversation will be assigned to Agent B. This is because Agent A has an occupancy/capacity ratio equal to 0.50 and Agent B has a ratio of 0.38. We can say here that Agent B has more capacity to handle the new conversation.

Waiting time is the time marked from the last conversation assignment to the agent, meaning that the agent that was waiting longer has more chance to get a new conversation

Those two values are combined into a formula that results in the agent to whom the new conversation is assigned. This Automatic Agent Assignment logic applies to chat conversations only.

Automatic agent assignment in action

If the sticky agent option is not selected, then the system applies the Weight Sum Method. The following showcases how that is calculated (simplified).

A list of all Available agents in the queue is created, and every agent has two attributes assigned:

  1. Workload

    ([occupancyLiveChat]                [occupancyLiveMessaging]
                    x100 +     ___   x100 )
              ([capacityLiveChat]                 [capacityLiveMessaging]           

  2. Unserved Time UnservedTime= CurrentTime- TimeOfLastAssignment

AgentLiveChat CapacityLiveChat OccupancyLiveMessaging CapacityLiveMessaging OccupancyWorkloadUnserved Time (seconds)
Agent 11052042010
Agent 25110535200
Agent 320155148300

Weights are added to attributes, 0.5 for Workload and 0.5 for Unserved time, which means that both impact the overall result equally.

For any agent to be selected, the Workload should be as small as possible, and the Unserved time as large as possible. Workload is treated as a “non-beneficial attribute”, and Unserved time as a “beneficial attribute”.

AgentWorkload (weight 0.5)Unserved Time (weight 0.5)
Agent 120 (non-beneficial)10
Agent 235200
Agent 348300 (beneficial)

For agents on the list, the minimum workload (non-beneficial attribute) of all agents is divided by the workload of each agent.

AgentWorkload (weight 0.5)Unserved Time (weight 0.5)
Agent 120 ÷ 20 = 110
Agent 220 ÷ 35 = 0.57200
Agent 320 ÷ 48 = 0.42300

For agents on the list, the Unserved time values are divided by the highest Unserved time value (beneficial attribute) of all agents on the list.

AgentWorkload (weight 0.5)Unserved Time (weight 0.5)
Agent 1110 ÷ 300 = 0.03
Agent 20.57200 ÷ 300 = 0.67
Agent 30.42300 ÷ 300 = 1 

Divided values are then multiplied by 0.5 (weights for Workload and Unserved time).

AgentWorkload (weight 0.5)Unserved Time (weight 0.5)
Agent 11 x 0.5 = 0.50.03 x 0.5 = 0.02
Agent 20.57 x 0.5 = 0.290.67 x 0.5 = 0.34
Agent 30.42 x 0.5 = 0.211 x 05. = 0.5

Performance score for each agent on the list is then calculated by summing up the values from previous steps.

AgentWorkload (weight 0.5)Unserved Time (weight 0.5)Performance Score (Workload + Unserved Time)
Agent 20.290.340.63

The agent with the highest number wins and the conversation is assigned to them (as shown in the table above).


The Default queue is a system-defined queue that collects all unmatched conversations during routing. All agents have access to conversations in the default queue and can reply to customers. The default queue can be changed on a conversation but it cannot be deleted.

The auto assignment is available on the Default queue as well. This is the queue where all conversations land in case no match is found in the Routing criteria for specific queues.

Automatic agent assignment for calls

Besides standard automatic agent assignment which applies to chats, you can also set it up for calls. The logic is a little bit different here.

This is what the process looks like when a new conversation is assigned to a queue:

  • The automatic agent assignment process starts (only one can run at any given time)
  • It is applied to newly created conversations
  • Or when an agent changes their status to Available

Note that for calls, availability is taken into consideration. An agent is considered available to take on new calls when they set their status to Available, and they have fewer conversations assigned in any status other than Closed, than their defined capacity.

Workload and waiting times are calculated for every agent who is in the Availablestatus.


As mentioned in the beginning, Routing is defined as a set of rules that determine the assignment of a new conversation to a particular queue executed in a specific order.

With route management, you can define business rules according to which incoming customer requests will be assigned to queues and agents for the most effective resolution.

Create a route over web interface

To create a route over the web interface, you need to set up rules.

The rules are customizable and can refer to, e.g.,:

  • Message attributes such as channel, sender, receiver, or message content
  • Customer attributes that you specified in People (e.g., name, city, purchase power, etc.)
  • Conversation tags assigned manually or through automated flow
  • IVR inputs collected to a variable through automated flow
  • Custom data from Web and In-App Calls and Video
Conversations - Create new route

Only when all the above-mentioned parameters are defined, you can create a new route and it will be shown in the list of all routes.

Any route can be set as Enabled or Disabled (default status is Enabled).


Only routes set as Enabled will be taken into consideration when a new conversation starts.

In the table below you can find the options you can use to set up routes.

CategoryExisting attributesOperatorsValues
Conversation attributeschannelis
is not
Select channel
is not
starts with
Free input 
Conversation Tagsin list
not in list
Tags dropdown (you can select only one)
is not
starts with
Free input
is visitoris
is not
is not
Sender dropdown
Standard person attributesaddressis
is not
starts with
Free input
is not
before or on
after or on
Date picker
is not
starts with
Free input
is not
starts with
Free input
customer tagscontains
does not contain
Free input
is not
starts with
Free input
is not
starts with
Free input
is not
is not
starts with
Free input
is not
starts with
Free input
is not
starts with
Free input
is not
starts with
Free input
is not
starts with
Free input
is not
starts with
Free input
is not
starts with
Free input
Custom person attributesN/A  
Standard company attributesaccountManageris
is not
starts with
Free input
is not
starts with
Free input
is not
starts with
Free input
does not contain
Free input
is not
starts with
Free input
is not
starts with
Free input
is not
starts with
Free input
is not
starts with
Free input
is not
starts with
Free input
is not
starts with
Free input
is not
starts with
Free input
Custom company attributesN/A  
(Channel specific) Apple Messages for Business attributesdevice agentis
is not
starts with
Free input
is not
starts with
Free input
is not
starts with
Free input
is not
starts with
Free input
(Channel specific) Email attributesEmail CCcontains
does not contain
Free input
Email BCCcontains
does not contain
Free input
Email Toin list
not in list
Sender drop-down
Email Fromis
is not
starts with
Free input
Email routed to recipientis
is not
Sender drop-down
Email Subjectis
is not
does not contain
starts with
Sender drop-down
Custom attributesN/A  
Sender QueuesN/Ain list
not in list
Queues drop-down

Destination queue over web interface

Setting up routes means that when a new message arrives, the system will automatically check if message parameters comply with any of the rules specified within the route and will assign conversation according to the rules that match the defined destination queue.

Priority over web interface

If message parameters are matched with certain route rules, conversation will get a priority defined within that route setup. According to assigned priority, conversation will be shown in the list of All Conversations. Priority can be changed manually within the conversation details at any point.

Set conditions over web interface

Conditions are a set of criteria that will be checked when there is an incoming conversation. Based on those, a conversation will be added to a specific queue.

Set route order over web interface

Considering that several different routes can be set at the same time, you can set up route ordering.
When there is an incoming message, parameters will be checked, and message will be assigned according to the first route that matches against parameters.

Imagine you need to set two routing rules - one for Spanish speaking customers and another one for premium customers.

  • Rule 1: If the message comes to the destination number 123 and the person sending the message has been marked as Spanish speaking within the Target module, route this message to the Spanish queue.
  • Rule 2: If message comes to the destination number 123 and person sending message has been marked as premium customer within the Target module, route this message to the Premium queue.

Now each queue has a team of agents assigned to it:

  • Spanish queue - Ten agents that can read and write Spanish but are juniors and don’t know anything about premium customers.
  • Premium queue - Three agents who speak Spanish and English and know everything about premium customers.

What you want to make sure is that messages from your premium customers end up in the Premium queue and not in the Spanish queue. That’s why you need to set up the routing priority. The premium route should be priority number 1 and Spanish route priority number 2.

To re-arrange routes, drag and drop them according to their priority.

Conversations - Reorder routes

Enable or disable a route over web interface

All created routes can be enabled or disabled based on your needs. In case a route is  set as disabled, incoming messages will not be checked against conditions in disabled routes.

Configure routing for Live Chat

This section explains what can be configured for Live Chat in Routing to assign specific requests to certain Agents queues. (opens in a new tab)

To configure routing for Live Chat, navigate to ConversationsSettingsGeneral setup → RoutesCreate New.

Available fields that you need to set are as follows:

  • To – Destination to which inbound conversation messages are sent. This field accepts widgetID for Live Chat routing. Widget ID can be taken from the widget edit page and is unique for each widget configuration.
  • Channel – Defines if all inbound conversations from the specific channel shall be sent to a certain queue. For Live Chat applicable value is Live_Chat
  • Person attributes – All Person attributes are applicable for Routing, however only if the session is coming from an authenticated (logged in) customer and if we have a Person associated with a key identity (email address, in this case).
  • Authenticated customer/ anonymous visitor – can be used to differentiate which customer support queue should take on the on auth. customer or visitors. The parameter is Visitor defines if the inbound conversation comes from an anonymous visitor. If set to false, then it’s treated as inbound conversation from auth. customer.

Senders configuration


This feature is only available for the Grow and Scale package.

The Senders configuration feature limits access to specific senders based on different departments, preventing the misuse of incorrect email addresses.

The feature configuration is on an account basis, and once activated, it will be implemented throughout the entire account. The impact is evident through:

  • My Work
  • New conversations creation

Once the Select senders for each queue feature is enabled, agents will have the ability to start conversations only with the default senders set in specific queues. Agents can send messages and start calls only from queues where the agent is assigned based on senders added in that queue. Senders are all numbers, email addresses, and any other channels you have set up. This optional queue setup allows you to define the default sender and a list of available senders for a specific queue.

To enable it, navigate to Conversations → Settings → General setup → Queues →click the toggle to enable the feature.

If the feature is disabled, all senders will stay available on all queues and all agents can access all senders without limitations.

Supervisor - Senders configuration

Once the queue setup page opens, click the wanted queue to select senders from all channels that will be available for this queue by navigating to the Assigned Senders modal. When you click the Add Sender button, the Add senders to queue window will open where you can search for the sender by name, number, or channel. The first sender you add will automatically be selected as the default one.

Supervisor - Add senders

The default sender will be the only one provided when creating a new conversation, and they can be from any channel.


Queues with Senders configuration can have only one default sender.

Supervisor - Default sender

If you want to change the default sender, click the currently selected one. A list of all senders that were previously added to the queue will show, and select the one you wish to use as the default.

Supervisor - Default sender selection

You will receive a warning message and be required to choose a new default sender if the current default sender is deactivated in the meantime.

Supervisor - Default sender disabled

If you want to add all available senders to a queue, click the Add All button and all senders available at that point of time will be added to the wanted queue.

Once you set everything up, the Sender queues will be added as a new condition in:

  • Routing
  • Automation
  • Outbound email template

The condition represents a list of emails assigned to the chosen queue. As an example, within the context of routing, if an email is received by any of the email addresses specified in Queue 1, where you applied the conditioning, the system will identify the match and apply the appropriate routing. Consequently, rather than writing ten individual email addresses, agents can simply opt for the desired queue containing the appropriate addresses.

Modifying email addresses, such as adding or removing them, will not require updates to elements like the routing strategy. This is because any changes made to the email addresses will be automatically implemented.


If the feature is disabled, all related automations using the Sender queues condition need to be updated.

Short ID



This feature is only available in the Grow and Scale package.

Short Conversation IDs are concise and easy-to-use identifiers that streamline the process of referencing and organizing conversations. Short IDs enable easier collaboration and quicker decision-making by allowing users to easily access and reference conversations with a few keywords.

Short IDs enable both customers and agents to quickly refer back to specific conversations and issues.

Navigate to ConversationsSettingsGeneral SetupShort ID, and turn on the Short ID feature.

Short ID - Enablement

Once you turn it on, the Short ID will appear in:

  • My Work
  • All Work
  • Reports
  • Outbound email templates (new variable in Conversation attributes)

The Short ID is set as an incrementally growing number and it replaces the Conversation ID in My Work which is moved to the Conversation Context Card.

Short ID - My Work

Manage automations

Use automations to reduce manual and repetitive work and increase efficiency in your contact center. Check out the below mechanisms we have put in place to help you out in automating your contact center.


Workflows are easy-to-use automations created within a simple “if-this-then-that” editor.

You can set up workflows in Conversations → Settings → Automations. To manage these subsequently, navigate back to Settings → Automations.

There are two types of workflows:

  1. Time-based – built on a good sense of order, these workflows will be triggered after a certain time period, e.g., if a conversation has been in the Solved status for more than 24 hours. They can affect older conversations too, as long as the triggering update occurred after the workflow was set up. You have the ability to define time-based automations with a duration of up to 90 days. For bot conversations, the time since the conversation was handed over is taken into account, rather than when the agent was assigned to it. Additionally, the system will not make another attempt unless specific conditions are met and the conversation is updated. The minimal pending time is 10 seconds.
  2. Event-based – triggered right after a certain event occurs. For example, when a conversation status changes to Solved.

A workflow consists of:

  • Trigger(s) (mandatory) – refers to a time period or an event that triggers the workflow. You can set multiple triggers in a single workflow. If you have set up multiple triggers in a workflow, they will be tied to an ''OR'' operator, meaning that if any trigger is performed, the workflow will activate.
  • Conditions (optional) – these are additional statements that allow you to select the actions that should be performed on different entities. The OR operator is supported in conditions, allowing for a combination of multiple conditions where only the AND operator is applicable between them. As a result, you can achieve any desired combination of conditions through these combinations. It is important to note that within the setup of a single workflow, one attribute in conditions cannot be utilized multiple times as a condition.
  • Action(s) (mandatory) – changes that this workflow will perform. You can add single or multiple actions. If you add the “Close conversation” action, bear in mind that no other actions can follow this one. Add all other actions you need before you add the ''Close conversation'' action.

To put it simply, when certain triggers happen and conditions are met, actions will be performed.

You can order created workflows, meaning they are activated one after another and the result of one workflow can trigger one or more workflows later on the list.

  • Keep in mind that agents cannot send messages to customers if the conversation status is changed to Closed.

  • Workflows are triggered for Open, Waiting, and Solved conversations.

  • You can only use workflows in chat channels at this moment.

Find available triggers here:

Trigger/New trigger nameOperatorParametersTypeDescription
Customer reply is pending for/Customer did not reply forMore thanDays, hours, minutes (all set to 0 by default)Time-basedTriggers a workflow when a customer does not reply for a set period of time. If an agent sends multiple messages, the set period starts when the first agent message is sent.
Agent reply is pending for/Agent did not reply forMore thanDays, hours, minutes (all set to 0 by default)Time-basedTriggers a workflow when an agent does not reply for a set period of time. If a customer sends multiple messages, the set period starts when the first customer message is sent.
Solved conversation is unmodified forMore thanDays, hours, minutes (all set to 0 by default)Time-basedTriggers a workflow when a conversation has been solved for a set period of time AND if there were no changes in the conversation.
Conversation is solved forMore thanDays, hours, minutes (all set to 0 by default)Time-basedTriggers a workflow when a conversation has been in the Solved status for a set period of time, regardless if there were any changes.
Conversation status changedToOpen, Waiting, SolvedEvent-basedTriggers a workflow when the conversation status is changed to the set one.
Conversation form changedN/AN/AEvent-basedTriggers a workflow when an agent changes the conversation form or if the change happens automatically.
Conversation queue changedN/AN/AEvent-basedTriggers a workflow when the conversation is moved from one queue to another.
Conversation tag changedN/AN/AEvent-basedTriggers a workflow when tags are added or removed in a conversation.
Conversation customer changedN/AN/AEvent-basedTriggers a workflow when an agent unlinks a customer from the conversation.
Conversation channel changedFrom/ToAny, SMS, Viber, Messenger, WhatsApp, Email, RCS, Apple Messages for Business, Line, Google's Business Messages, Telegram, Calls, Instagram, KakaoTalkEvent-basedTriggers a workflow when the first message over the second channel in the same conversation is sent.
Conversation in status waiting forN/AN/ATime-basedExpands the functionality to work with all conversation statuses (except Closed), enhances automation abilities and introduces new use cases.
Note is createdN/AN/AEvent-basedTriggers a workflow when an agent adds a note.
Outbound agent message is sentN/AN/AEvent-basedTriggers a workflow when an agent sends a message.
Inbound message receivedN/AN/AEvent-basedTriggers a workflow when an agent receives a message from a customer.
Survey feedback receivedWith scoreHappy, Not happy (both can be picked)Event-basedTriggers a workflow when a customer sends survey feedback (e.g., send a message to Slack). It can be used in combination with the existing workflow/automation conditions and actions. Works with the text channel surveys, however, if you also configure a follow-up question in the survey, both the survey score and the follow-up answer need to be received for the trigger to be activated.
Form field updatedN/AN/AEvent-basedTriggers a workflow when any form value has been updated in a certain conversation.

Find available conditions here:

QueueIs in list, is not in listMultiselect of all existing queuesIf you use the "Conversation queue changed" trigger, the condition refers to the destination queue.
Conversation directionIsInbound, outboundInbound conversations are the ones initiated by a customer, and outbound ones by an agent.
Conversation tagIs in list, is not in listMultiselect of all existing conversation tagsIf the conversation has any or none of the tags selected from the drop-down.
Conversation channelIs, is not, is in list, is not in listFor is/is not a single-select option: Internal, Multichannel, Chat, Email, Messenger, Google's Business Messages, Apple Messages for Business, Telegram, Calls, Viber, LINE, Instagram Messaging, SMS, WhatsApp, RCS. For is on the list/is not on the list: multiple-select option of all channels listed above.

If the conversation is/is not ongoing over the selected channel;
If the conversation is/is not ongoing over any channel selected from the drop-down.

Note: At least 2 channels need to be used in order for the "Multichannel" condition to be fulfilled.

Conversation formIs in list, is not in listFor is a single-select option of all existing forms;
For is on the list/is not on the list: multi-select of all forms.
If a conversation has a selected form assigned to it: If any of the Conversation forms is/is not assigned to the conversation.
Conversation statusIs in list, is not in listDrop-down with statuses (Open, Waiting, Solved, Pending)This condition allows you to filter and run the appropriate automation solely for conversations in specific statuses.
Email subjectContains any, does not containTag lookalike string addingIf the email subject contains or does not contain any of the defined strings.
MessageIsFirst in the conversationIf a message is the first message sent in the conversation (by customer or agent). Only works for the following triggers: - Outbound agent message is sent - Inbound message received
Hours since assignee updatedGreater than6,12Denotes when was the last time the agent updated the conversation.
AgentIsAssigned, UnassignedIf the conversation is/is not assigned to an agent.
Agent statusIs in list, is not in listActive, Busy, Offline, AwayIf the agent currently assigned to the conversation is/is not marked with any of the statuses selected from the drop-down.
Agent contactIs in listDrop-down with available chat sendersThe contact details to reach the company (such as email, phone number, ID, etc.).
Agent domainIs in list, is not in listIs: A single-select option of all domains
Is on the list/is not on the list: A multi-select option of all domains
If the email address the agent is using has a domain that was selected from the drop-down;
If the email address has any or none of the domains selected from the drop-down.
SenderIs in list, is not in listQueues drop-downStarts interactions only with the senders you add to a certain queue. For incoming emails, the actual recipient for whom the conversation was triggered is taken into consideration.
Customer contactIs in list, is not in listParameters are added as inputIf a workflow is triggered with an event, the condition is used as a filter. For example, when a message arrives from a specific customer, a tag is added to the conversation.
People tagIs in list, is not in listMulti-select option of all defined tagsIf the customer in the conversation has/does not have any of the tags assigned in the drop-down.
Person countryIs in list, is not in listTag lookalike string addingIf the customer in the conversation has/does not have a country attributed in the People data platform match with any of the countries entered.
Agent email addressIs in listMultiple-select option of all agent addressesIf the email sent by a customer is sent to an agent address selected from the drop-down.
Email routed to recipientIs in list, is not in listList of registered email addresses for Conversations where only one can be chosenTo ensure accurate internal conversation routing, this condition takes into account the actual recipient of the incoming email that triggered the conversation, i.e., this condition represents the email address to which that email has actually been sent.
CompanyIs in list, is not in listInput valueAllows you to set specific automation based on the company of the client.
Company segmentIs in list, is not in listInput valueAllows you to set specific automation based on the company segment of the client.
Company tag Is in list, is not in listInput valueAllows you to set specific automation based on the company tag of the client.
CountryIs, Is not, Contains anyInput valueAllows you to set specific automation based on the company country of the client.
RegionIs, Is not, Contains anyInput valueAllows you to set specific automation based on the company region of the client.
Account ManagerIs, Is not, Contains anyInput valueAllows you to set specific automation based on the company account manager of the client.
StageIs, Is not, Contains anyInput valueAllows you to set specific automation based on the company stage of the client.
IndustryIs, Is not, Contains anyInput valueAllows you to set specific automation based on the company industry of the client.
VAT NumberIs, Is not, Contains anyInput valueAllows you to set specific automation based on the company VAT number of the client.
NotesIs, Is not, Contains anyInput valueAllows you to set specific automation based on the company notes of the client.
DomainsIs, Is not, Contains anyInput valueAllows you to set specific automation based on the company domains of the client.
Custom company attribute - text Is, Is not, Contains any Input valueAllows you to set specific automation based on the custom company attribute based on the text assigned to company to which the user belongs to.
Custom company attribute - Decimal/Wholenumber/False-True/DateIs, Is not,Input valueAllows you to set specific automation based on the custom company attribute based on the Decimal/Wholenumber/False-True/Date assigned to the company the user belongs to.
Form fields inputIs/Is notAll existing custom conversations form fields created in a conversation form.This condition allow you to trigger the workflow based on a specific value updated in a specific form field.

Find available actions here:

Send a message to the customerChannel (hardcoded to the last used channel)
Message (1000 chars) - no placeholders
Sends a message to the customer that participated in the conversation that triggered the workflow, over the last channel that the customer used.The content of the message needs to be manually added. The message is sent over the channel that was used for the last inbound message, not the last used channel overall.
Apply tag(s)A multi-select option of all tagsAdds selected tags to the conversation. 
Remove tag(s)A multi-select option of all tagsRemoves selected tags from the conversation. 
Email the customerEmail subject (no placeholders)
Email content (no placeholders)
Sends an email to the customer that participated in the conversation that triggered the workflow.The last message in the conversation has to be an e-mail, otherwise, this action will not be executed.
Email the external recipientFrom: A drop-down with senders registered for this purpose.
To: Tag lookalike string adding.

Email subject

Email content (no placeholders; basic formatting options)
Sends an email to any defined recipient(s), regardless if they were involved in the conversation that triggered the workflow, or not. The sender's email address used to send these emails must be manually set as a no-reply address. 
Email transcriptFrom: A drop-down with senders registered for this purpose

Email subject
Sends the transcript of the conversation that triggered the workflow, using the sender's email address that must be manually set as a no-reply address.The customer must have a defined email address in the People data platform.
Notify by email

From: A drop-down with senders registered for this purpose
To: Tag lookalike string adding

Email subject

Sends an email notification using the sender's email address that must be manually set as a no-reply address. Recipients need to be manually defined. 
Message on SlackType: A drop-down with two options (Select recipient from conversations - shows a drop-down with form fields, free entry of recipients; (Manual) - shows 2 To fields (Channels and Users)

Message: Standard placeholder picker

Sends a Slack message to a person or a channel defined by the user, or to Conversation users subscribed via Infobip Tools. To be able to use this action, Slack for Conversations integration on Exchange must be enabled. 
Set conversation statusDrop-down with an option to mark conversations as SolvedChanges the conversation status to Solved. 
Set conversation priorityDrop-down with priorities (low, normal, high, urgent)Sets the conversation priority to the chosen one. 
Unassign agentN/AUnassigns agent. 
Email survey to the customerN/ASends an email with the link to the CSAT survey. 
Close conversationN/ACloses the conversation. No other action can be added after this one. 
Call APIMethodURLContent typeHeadersBodyTriggers Infobip and third-party APIs. When a customer sends a message and a conversation is created, Infobip needs to know if the customer reached out to Support or Marketing. When a conversation is created, the workflow is triggered to check to which sender the inbound message is sent. If the message is sent to a Support sender, the Call API action is triggered which updates the person's attribute with the "SUPPORT CUSTOMER" value. If the message is sent to a Marketing sender, the person's attribute is updated with the "MARKETING CUSTOMER" value.The "Content", "From", and all Email variables within the Call API action are only available when using the "Outbound agent message is sent" and "Inbound message received" triggers.
Populate form fieldsDrop-down with all available input fields.When used, a list of all existing input fields is available in the autocomplete drop-down. The attribute can be populated with fixed text or a value picked from the standard attribute picker.In order for the input fields to appear in the drop-down menu, they first need to be configured in the Conversation Forms.

Placeholders for automatic replies

You can configure placeholders to customize automated replies for the following actions:

  • Send message to customer (content)
  • Email customer (content + subject)
  • Email external recipient (message content + subject)
  • Email transcript (subject)
  • Notify by email (subject)
  • Message on Slack (content)

Moreover, you can configure identical variables already supported in the Call API actions, along with a new placeholder referred to as the Short ID (also included among the supported placeholders in API actions).

Conversations - Placeholders automation

It is the customer's responsibility to monitor the message length, inclusive of the placeholder. Given our inability to predict, if the complete message, including the placeholder value, exceeds the length limit, the message will not be sent.

Call API

As mentioned in the table above, the Call API action in Workflows triggers Infobip and third-party APIs when a customer sends a message to differentiate if they reached out to Support or Marketing. It consists of the following parameters:

  • Method
  • URL
  • Content type
  • Headers
  • Body

As mentioned above, the "Content", "From", and all Email variables within the Call API action are only available when using the "Outbound agent message is sent" and "Inbound message received" triggers.


The Method parameter is used to specify the type of HTTP request you want to make to the endpoint. The method parameter indicates the desired action to be performed on the resource identified by the URL.

  • GET: It is a read-only method and does not modify the resource. For example, when you want to retrieve information about a user from an API, use the GET method.
  • POST: Used to submit data to the server to create a new resource. It is often used for creating or submitting data, such as submitting a form or creating a new user. When you want to create a new resource, use the POST method.
  • PUT: Used to update an existing resource on the server. It replaces the entire resource with the new data provided. For example, if you want to update the details of a user, use the PUT method.
  • PATCH: Similar to the PUT method, but instead of replacing the entire resource, it applies partial updates to the resource. It allows you to update specific fields or properties of an existing resource.
  • DELETE: Used to delete a resource from the server. When you want to remove a resource, you would use the DELETE method.


The URL in an API Call is the specific address where the API is located and the desired resource or action is identified. It consists of the base URL (API location) and the path (resource/action within the API). The endpoint uniquely represents the location within the API that you want to interact with.

For example, (opens in a new tab) represents the endpoint for the 'users' resource in the API.

Content Type

The Content Type in an API Call refers to the format of the data being sent or received, and it specifies how the data should be interpreted. It includes the following options:

  • RAW
  • JSON (application/json)
  • Text (text/plain)
  • XML (application/xml)
  • URL-encoded (application/x-www-form-urlencoded)
  • Form Data (multipart/form-data)

Setting the correct content type is important to ensure the data is processed accurately by the API.


Headers in an API Call are the key-value pairs that provide additional information in the HTTP request or response. They include details like authentication credentials, content type, caching directives, and more. Headers help the client and server communicate effectively and handle various aspects of the API interaction.


The Body refers to the data transmitted in the HTTP request or response. It can contain various formats as explained under the Content Type. The Body allows for exchanging and manipulating data between the client and server and it can be set using key-value pairs or as text using the editor option.

Use ordered lists in workflows

You can drag and drop workflows to organize them in ordered lists. The system will then execute workflows according to their order, meaning that all actions from the first workflow are executed first, then all actions from the second workflow, and so on.

This helps you create more specific use cases and prevents some problematic cases such as random workflow execution and cycles.

Conversations - Time-based workflows

Voice of the customer

This dashboard offers insight into customers’ feedback that they provide after a conversation with an agent over surveys. This also ties in very closely with Analytics and the overall satisfaction the customers feel about Conversations and the services provided.


Surveys can help you automatically collect Customer Satisfaction Scores.

Conversations - Surveys card

These can help in recognizing more or less satisfied customers, to adjust the tone of ensuing communication, and improve the overall quality of your contact center.

Survey is triggered when a conversation status is changed to Solved. Shortly after that, the customer will receive a message over the channel that they used last in their conversation. Message contains questions about their satisfaction with the current issue and whether it was resolved. The questions are predefined but you have the option to edit them.

There are two possible answers: happy and not happy.

Supervisors can define a follow-up question requiring additional feedback that customers may provide. Scores and comments are visible in the agent panel and in the Voice of the Customer dashboard.

Conversations - Survey Edit

Along with the trigger saying that the conversation status is changed to Solved, you can set the time span between two surveys. This period starts after one survey has been sent to the customer. A new survey cannot be sent before this period elapses. This is a very important parameter that will protect customers from being spammed with multiple surveys within a short period of time.

Sentiment analysis

With sentiment analysis scoring, you can get feedback on your customers' satisfaction. Manage your agents' performance in a streamlined way and improve customer satisfaction faster.

Sentiment analysis uses natural language processing (NLP) to try to interpret customers’ feelings within messages and conversations. During a conversation, sentiment is analyzed in real time. That way Agents and Supervisors can track changes in the sentiment from the start to the end of the conversation.

This feature analyzes every message sent by the customer and scores it on a scale from -1 to +1 (-1 being the lowest score, and +1 the highest). The final sentiment score is determined as the average sentiment of all messages that contributed to the conversation. Messages sent later in the conversation have a higher weight since they show the latest sentiment of the customer.

The scoring follows this logic:

  • -1 ; -0,35 - Negative
  • -0,35 ; +0,35 - Neutral
  • +0,35 ; +1 - Positive

To monitor how Agents handle their conversations, Supervisors can dive into ongoing or past conversations. Following on this information, they can advise Agents on how to improve their interactions with customers and increase the satisfaction score.

To enable sentiment analysis for your conversations, navigate to ConversationsSettings → locate the Sentiment tile and turn on the toggle for Conversations. When you activate this feature, we encourage you to share your feedback with us on the sentiment score accuracy. This will help us improve and further develop the Sentiment Analysis feature.

To leave your feedback, click the feedback button in the web interface located in the top right corner.

Self-service automation

To optimize resources in your contact center, use automated flows or chatbots to avoid repetitive work so your agents can focus on more complex tasks. Automation is available over our Chatbots, Flow builder in the web interface or over Flow API (opens in a new tab).

Conversations - Set up automated flow

Self-service over Moments and IVR over Flow

Moments and IVR over Flow let you create automated flows to engage your customers and come to a satisfactory resolution in no time, thus avoiding any repetitive work for your agents.

Create Flows

Navigate to Moments and click Create Flow. Select a predefined Flow template or choose Start from Scratch to build your own.

You can choose one of the following options to start your flow:

  • Inbound message – inbound messages through a channel, using a 2-way number or creating your own content
  • One-time audience – you know your audience in advance and want to invite them to a conversation
  • Flow API – audience is added to Flow via API
  • People events – people are added to Flow after it starts, based on their profile changes

In the example below, the Flow is started by sending bulk messages to customers for special offers. If they are interested and wish to receive more information they can connect with an agent by replying YES.

Conversations - WA flow example

To enable the Flow to transfer a customer to a real agent, you need to specify the Start a conversation action. Any conversation transferred to agents has an option to get a tag for an effective routing or topic hint to agents.

Conversations - Start conversations with flow

After the conversation is transferred to an agent, all messages exchanged between Flow and the customer are shown in the conversation details so the Agent can see the customer intent.

Create Outbound IVR over Flow

Navigate to Moments and click Create Flow. You can use a predefined Flow template or choose Start from Scratch to build your own and select Predefined Audience as your entry point. Existing users in People, either grouped or tagged will enter the flow.

In the example below, calls are placed to a predefined list of phone numbers when flow is initiated. An IVR message is played to the callee and later their inputs are collected to a variable.

Depending on the variable value, the flow will transfer the call to a real agent. To make this happen, you need to specify the Start a Conversation action.

Conversations - Outbound flow

Having in mind the number of agents who will be answering calls, note that you should adjust sending speed. If there are no available agents at that moment, waiting strategy would be played to the caller. Also, you can tag any conversation that you want to transfer to an agent. Use tags to hint the conversation topic to agents.

Conversations - Outbound flow tags

Both collected inputs and tags can be used for effective routing of conversations.

Self-service over Answers

Create chatbot

To create a chatbot, navigate to the Answers module → select Chatbots → and then click on the New Chatbot button.

Chatbots always start with inbound messages. You can create simple FAQ types of scenarios or more advanced AI-based chatbots. To enable the transfer of a customer to a real agent, you need to specify the Redirect to agent action in Answers. Any conversation transferred to agents has the option to get a tag for an effective routing or topic hint to agents.

Chatbots have the ability to automatically transfer customers to agents if they are not able to resolve the inquiry.

After the conversation is transferred to an agent, all messages exchanged between the bot and the customer are shown in the conversation details so the Agent can see the customer's intent.

View chatbot conversations

Chatbot conversations are conversations or parts of conversations exchanged between end users and an automated bot. Only chatbot conversations that have Start a conversation element defined will be visible in the Conversations module. All chatbot conversations will have a chatbot agent assigned. The chatbot name will be equal to the name of the Flow used to execute the chatbot conversation. To view chatbot conversations, Supervisors need to go to Conversations > All Work and select Chatbots view.

Monitoring chatbot conversations helps Supervisors identify bottlenecks in the chatbot setup and improve the user experience. It also helps measure how many conversations still end up transferred to agents and for which topics specifically. This helps predict further workload so the supervisor can adjust agent shifts and training accordingly.

In case chatbots are unable to resolve customer queries, supervisors can select the Agent takeover action to transfer the conversations to an agent and assist the customers in a timely manner.

Connect external bots

When you use an external bots solution to automate a part of the user journey, you can still connect it to the Conversations solution by triggering the transfer to agent action. The action will move the bot-to-customer conversation to the agent along with all the conversation history.

Bots are similar to Agents in the sense that they can have a conversation with customers by sending and receiving messages through an API endpoint.

Set up external bot

To configure a bot, go to the Conversations moduleSettingsGeneral setup → Chatbots → click on theConnect Chatbot button on the far right and define the following as an admin:

  • Bot name - A unique name that will be visible in the bot conversations queue. It’s different from the existing Flow or Infobip bots.
  • Bot URL - The URL where all inbound messages will be forwarded to until the bot triggers the Transfer to the agent action.
  • The number for which the bot is configured - Any inbound message from customers to this number will be forwarded to the bot.
  • Conversation history - If checked, messages exchanged between the customer and the bot will be visible to agents after they take over the conversation. Otherwise, the Agent will not be able to view messages exchanged between the customer and bot.
  • Whether the bot is active or not
Conversations - Connect your chatbot

Optionally you can define the Session timeout parameter. This timeout is the time period in which the bot conversation session will expire if there are no messages exchanged by the end user.


A bot cannot start a conversation. Conversations can be initiated by the end user only.

Receiving messages

All inbound messages received on the defined destination number assigned to an active bot will automatically be forwarded to its webhook URL via the POST HTTP method with the conversationId parameter.

Based on the threading mechanism, a new conversation is created or customer messages are added to an ongoing conversation.

Conversations are automatically assigned to the Bot. Bots are managed as special types of agents by the system.
When a human agent takes over the conversation, all new customer messages are not sent to Bot webhook URL but rather shown to agent only.

Sending bot messages

To send messages from a bot, use our standard Conversation Messaging API (opens in a new tab). To do this, you must have the conversationId in the URL path and an identifier x-agent-id in the header. The conversationid parameter is used to keep track of messages exchanged between the end user and bot and later agent, while the  x-agent-id parameter is a bot identifier.

Transferring conversation from bot to agent

There are two ways you can do this:

  1. Conversation can be transferred to an agent by invoking the Route conversation endpoint (opens in a new tab). It will remove the bot as an assignee from the conversation, execute routing logic, and find the appropriate queue if any. If you have configured the auto-assignment, the conversation will be assigned to the first available agent.
    The bot will not receive any further inbound messages for this conversation and it will not be able to send any outbound messages.
  2. Conversation can also be transferred to the agent by invoking the Change conversation assignment endpoint (opens in a new tab) and passing the new agentId parameter. This way routing is avoided and direct assigning is committed.


You can set the customer intent by adding a tag to the conversation which can later be used for routing.

Refer to the Add Tag to Conversation (opens in a new tab) article for more information.

*Conversation Metadata

Use Conversation Metadata to store and manage additional information. Conversations metadata provides context for agents when taking over a conversation from a bot. It is displayed in the Agent panel so the end user does not have to repeat the entire conversation they had with the bot when switching to an agent.

Here is an example of conversation metadata:

{ "Manufacturer": "Mazda", "Model": "CX-5", "EngineType": "Diesel", "EnginePower": 90.0 }

Refer to the Metadata (opens in a new tab) article on our API docs for more information.

Need assistance

Explore Infobip tutorials

Encountering issues

Contact our support

What's new? Check out

Release notes

Unsure about a term? See


Research panel

Help shape the future of our products
Service Terms & ConditionsPrivacy policyTerms of use