Campaigns
Graia CCaaS's Campaigns feature is a structured tool for outbound calls, offering four modes: preview, predictive, callback and workflow controlled. Each campaign has its own queue settings and channel identifier.
- In preview mode, agents can choose to accept or reject the task, and initiate the call themselves.
- In predictive mode, the system automatically dials based on agent performance patterns and various configurations (see below). Agents only receive live calls, they have no control over which customer they handle. Predictive is efficient only if the available agent count eligible for the campaign is larger than 15.
- In callback mode, the campaign is serving callback requests from connected channels.
- Workflow campaigns enable highly flexible automation for outbound calls, allowing features like conversational bots to manage most—or even all—of these voice interactions, minimizing the need for human agents.
Creating a campaign
To start creating a campaign, navigate to the Graia CCaaS portal > Voice > Campaigns and click the Create button.
You will be presented with a guided process in a modal window.
Details tab
Provide a name for your campaign. Ensure the name is easily understood as the queue created for the campaign will inherit it, showing up in the reporting data.
Set the Campaign type. Currently this can be Preview, Callback, Workflow or Predictive, depending on the purpose of the campaign.
For a Workflow campaign, select a Workflow.
Select a Business unit. You may select no business unit if your contact center does not need business units.
Business units are used for filtering purposes as well as routing. When queuing records, the business unit will be taken into consideration and only agents within the selected business unit will be counted as logged in. In effect, agents without the selected business unit will not receive campaign tasks from this campaign.
Configuration tab
Select a channel for outbound calls: This channel will be used to dial the customer, it needs to be created beforehand. However, only the phone number property of the channel is used.
Select an announcement bundle: This is used to stream the confirmation message to the customer if they opt-in for a callback targeting this campaign.
Limit campaign record reschedules: Control the number of times any agent can reschedule a particular record. Once the limit is reached, it cannot be reset and the only option is to complete the record. It also limits the number of times a workflow campaign record can be postponed by the system.
Postpone duration: Controls the minimum duration the system should wait before queueing a postponed record for dialing again. Minimum value accepted is 1 hour while the maximum is 72 hours. Please note that postponed records may be dialed after a longer period of time depending on the amount of records to dial before the postponed record.
Max number of parallel calls: For Workflow campaigns, especially without Queue nodes (human agent involvement), this is the way to control the rate of campaign record progress. Setting this higher increases the overall campaign performance by launching more calls at each processing cycle. Setting this lower offers supervisors better chance to follow campaign progress and catch problems. When using conversational bots in the flow, try setting a relatively low value until you are confident your customers are happy with your bot setup.
Custom Fields
This allows you to add custom fields to the CSV file. They will be displayed in the campaign list and presented to the agent as well, unless the field itself is marked as hidden, in which case, the data is still retained, but not shown to the agent.
Preview details tab
Auto-accept campaign tasks for agents: When enabled, this feature sets a configurable timer, after which the task is accepted and the outbound call is automatically initiated – first to the agent. If the agent fails to answer the call, they are moved to RONA break.
Auto-close campaign tasks: When this is enabled, the campaign task will automatically terminate after the customer is called once the specified timer elapses. The agent task, or workitem, will enter the wrap up state. Setting a very low timer on this functionality will not allow the agent to perform any post-call actions on the campaign record itself, such as reschedule.
Limit task dial attempts: Controls the number of times an agent can dial a record in the context of a task. This counter resets if the task is sent back into the queue through reschedule. This counter is not based on individual phone numbers.
Allow agents to cancel campaign records: When enabled, agents can cancel campaign tasks without being moved to a RONA break. This is useful in circumstances where agents should be able to cancel records without penalty.
Allow agents to reschedule campaign records to other agents: Controls agent task behavior. In some circumstances, agents should be able to reschedule campaign records and assign them specifically to one of their colleagues. Enable this feature to allow agents to reschedule campaign tasks to other agents.
Allow agents to edit campaign record phone numbers: Turn this off to prevent agents from adding or editing phone numbers to a campaign record. When this is off, the agents can only select phone numbers to dial.
Note
For predictive campaigns, these preview functions apply to campaign records for which the system falls back to preview dialing mode, such as for nuisance calls or those having been rescheduled by agents.
Predictive details tab
When the campaign is of predictive type, the following options are available.
Dialing mode: Dialing mode is available for predictive calls for situations where you may want to switch the way records are processed based on your business needs. You may switch a predictive campaign type back to preview dialing mode, in which case, the records will be handled accordingly, or switch back to predictive. Please note that records already processing or processed will not be affected by this change.
Nuisance call treatment: This setting allows configuring what should happen with a call marked as nuisance. The available options are to mark the record as postponed and switch the dialing mode to preview, allowing the agent to preview the record before calling again, or drop the record altogether and cancel it as nuisance, in which case, the record will no longer be processed.
Allowed nuisance percentage: This is the percentage of connected outbound calls that the system fails to assign to an agent, compared to the total. While avoiding this is ideal, setting the percentage too low can make the system overly cautious, reducing campaign performance. On the other hand, setting it too high improves performance but leads to more frustrated customers who are called without reaching an agent.
Target agent busy percentage: This measures the proportion of agents occupied with tasks from this campaign and other queues they are qualified to handle, compared to the total number of available qualified agents. This setting helps balance agent capacity across multiple queues, supporting flexible task allocation and improved agent utilization.
Anticipated task handling time: This setting is used during the initial phase of a campaign when the predictive algorithm lacks sufficient data. It helps estimate how long tasks are expected to take until the system gathers enough statistical information.
Disable default music: Predictive campaigns play a system defined music when the customer is connected and waiting for an agent to be available, if you wish to disable that music and have the customer sit in silence while waiting for an agent, turn this feature on.
Note
Predictive calls connected to a customer but without an available agent are placed in the campaign queue to await agent availability. When the queue uses SLA-based task prioritization, the SLA Threshold setting in the Queue Properties also impacts the predictive algorithm.
Callback tab
The following functionalities are available for callback campaigns.
Register abandoned calls as callbacks: Turn this on to convert abandoned calls from the queue to which this campaign is associated into callback tasks. Multiple queues can target the same campaign, if this is a concern, we recommend creating separate campaigns. If the customer already has a record in any incomplete state, then the callback will not be registered to avoid duplicates.
Offer to use alternative numbers: Provides the option for customers to specify a different phone number to be called back on when opting in for a callback. Special announcement files are required. See the announcements section for more details. Country codes can be added to offer validation. If this field is empty, validation is skipped. The customer must press 1 to provide a different number and 2 to be called back on the number they are calling from.
Enable voicemail for callbacks: When set, customers opting to schedule a callback in a related channel will hear a specific callback offer announcement (
voicemail.wav). Upload this file to the relevant Announcement bundle. It should instruct callers to leave a voicemail after the tone; the recording is attached to the callback request, so agents can listen to it before launching the callback call. To finish recording their voicemail message, callers need to press the DTMF key they used when opting in to leave a callback, or just hang up.
Queue properties tab
Queue properties define your campaign queue, serving as a virtual queue and eliminating the need for a separate workflow in your campaign. Campaigns simply require a queue to distribute tasks to agents.
Routing Mode: Choose between automatic and manual routing. In automatic mode, tasks are automatically assigned to agents, whereas in manual mode, agents select tasks from the agent performance dashboard. Predictive campaigns can not be set to manual routing mode.
SLA Threshold: Enable SLA-based task prioritization to optimize agent blending across multiple queues. For predictive campaigns, balance the setting carefully—too high raises nuisance rates and decreases campaign performance, too low leaves other queues under-resourced.
Preferred Agent Timeout:
- Determines the time the system waits for a specific agent to accept a rescheduled task that is assigned only to them.
- If deactivated, the system waits indefinitely.
- If activated and the time limit is exceeded, the task becomes available for any agent.
- The timeout begins when the agent's specified reschedule time is reached. For instance, if an agent reschedules a task for today at 10:30 AM, the system starts searching for that agent at 10:30 AM. If the agent doesn't accept the task within the set timeout (e.g., 10 minutes), it becomes available to other agents at 10:40 AM.
Agent Workspace: Assign an existing workspace to the queue to enable scripting, completion codes, and other functionalities for campaign tasks.
Attribute Requirements: Define the attributes that agents must have to receive or select tasks from this queue.
Queue timeout: This is available for predictive campaigns only. Turn this on to prevent long waiting times for customers during predictive campaign calls. This feature can take values from 0 seconds to 60 minutes, 0 meaning that the system will try to pair the customer with an agent once and if it's not possible, the call will end. Calls ending due to queue timeout are considered nuisance calls and handled accordingly by the predictive dialer.
Business hours tab
In the Business hours tab you may configure your timezone and operational hours of your campaign. Additionally you may add holidays and exceptions.
Completion codes tab
Add completion codes for your campaign. These codes will be used only if no agent workspace containing completion codes was set in the queue properties tab.
Workflow campaigns
In this mode the system dials the customer first and launches the workflow only if successfully connected. National telecommunication policies typically control outbound ("robot") calls; make sure you treat the customer in your workflow accordingly.
When you use conversational bots, it is best practice to offer an escalation to human agent queues. Read more about conversational bots here.
Read more about voice workflows here.
When the customer does not answer the call, the system postpones it for later. It does this up to the Limit campaign record reschedules value, and then files the record as Unsuccessful.
You may set a maximum parallel call count limit, this is done through the campaign's Details > Configuration > Max number of parallel calls. The limit per campaign is 100; however, your total parallel calls per tenant cannot exceed 400. Calculate your maximum number of parallel calls in the context of all campaigns you plan to run.
Note
The max number of parallel calls is guaranteed if the call length is larger than 30 seconds, meaning, if calls are shorter than 30 seconds, the system will not fire more calls until the 30 seconds elapse. This is to prevent spamming the system with extremely short calls.
Processing records in a workflow based campaign works similarly to a predictive campaign, the customer is dialed first, then the assigned workflow is used, which can contain announcements, bots and escalations to agents.
Edit or delete an existing campaign
To edit an existing campaign, navigate to Campaigns > Select the campaign you wish to edit.
You can download a CSV template that you can populate with customer records and Upload it.
Additionally, you can manage your contact records and view their current status.
To edit the details of a campaign, click the Details button.
Here you can change:
- the campaign details, except the campaign type
- the queue properties, except the routing mode
- the business hours
- the completion codes
You can also start, stop or delete the campaign.
Tip
You may not edit campaign details or delete a campaign while it is running, you must stop it first. Campaigns having records processing cannot be stopped.
Idling campaigns stop automatically
Idling campaigns are defined as running while their records are not being scheduled for a set amount of time:
- Preview and Predictive campaigns stop if none of their records are activated for 7 days.
- Callback campaigns stop if none of their records are activated for 30 days.
Configure callback
After creating a callback campaign, you now have to specify where this callback campaign is referenced.
To enable callback for a particular voice queue, navigate to the workflow containing your desired queue.
Select or create a queue treatment containing the "Offer Callback" step. Now select the already created callback campaign.
A new output will be displayed, called Callback requested. Pair this output with the Schedule callback node and set the Registered output to end conversation.
Your callback offering is now set. Your customers requesting a callback through the queue will have their requests automatically added to the target campaign.
Additionally, if a callback campaign has Register abandoned calls as callbacks turned on, it will automatically enable this feature for any queue it is associated with.
Moreover, any additional configuration such as the alternative option or voicemail set for this configuration will apply to the queue.
Duplicate detection
Graia CCaaS offers two duplicate detection solutions. Find these options in the Configuration > Voice section of the portal.
Campaign level duplicate detection
When configured, the duplicate detection is set at the campaign level, meaning customers who have already been offered a callback for that campaign will not hear the callback offer again. However, they may call through a different queue to request additional callbacks or reach an agent.
Additionally, an administrator may enable the Delete callback on customer connect toggle, in which case, all callbacks from all campaigns that use the same channel as the one from which the customer is connecting with an agent, will be cancelled.
Tenant level duplicate detection
When configured, the system considers ALL campaigns when offering a callback. If a customer already has a pending callback registration, they will not be offered another callback in any other queue.
Additionally, an administrator may enable the Delete callback on customer connect setting. When enabled, all callbacks from all campaigns using the same channel as the customer's current connection will be cancelled.
Campaign contact records
When a supervisor selects a campaign, the campaign's contact records are displayed by default.
Available columns in contact records
- Creation Time: Indicates the time when the record was initially created.
- First Name: The first name of the contact.
- Last Name: The last name of the contact.
- Status: Current status of the record (explained below).
- Created By: The username of the individual who uploaded the records, scheduled them, or marked as 'Customer' if a customer requested a callback. Other system-generated values may also appear.
- Preferred Agent: Shows the agent name if they requested an "Only Me" reschedule. Clickable to view agent details. Defaults to 'Anyone' if not specified.
- Last Handling Agent: Shows the last agent who interacted with the record. Clickable for more details.
- Phone: The primary contact number. Hovering reveals all associated phone numbers.
- Action (also available in bulk via the Selection Mode option):
- Edit: Supervisors can alter the schedule time or preferred agent. Only available if the record status is Newly Added or Rescheduled.
- Cancel: Supervisors can cancel a record. Applicable for Newly Added, Rescheduled, or Processing statuses. Not available if an agent is currently handling the record.
- Playback: When enabled, Supervisors can play back voicemail messages left by customers in their callback requests while waiting in a queue.
Status definitions
This section explains what the state of a record means currently, depending on the campaign type.
| Status | Preview & Callback | Predictive | Flow-controlled |
|---|---|---|---|
| Newly Added | The record has been registered via portal upload, API upload or scheduling done by the system via the reschedule abandoned calls as callbacks or agent via schedule call feature. | Same as preview | Same as preview |
| Processing | The record is waiting to be dialled (in a queue), or is being actively worked upon by an agent. | The system is dialing the customer, the customer is waiting for an agent, or the agent is actively working on the record. | The system is dialing the customer, the customer is navigating through the workflow or the agent is actively working on the record. |
| Completed | The record has been handled and completed by an agent and the customer was connected to the agent. | Same as preview | The customer either reached an end node in the workflow or an agent and the agent completed the record. |
| Cancelled | Manually cancelled by a portal user. | Same as preview. | Same as preview |
| Cancelled by Agent | The agent cancelled the campaign record. | A record rescheduled by an agent or supervisor or a call previously postponed due to it being a nuisance call has been cancelled by the agent when it was offered again. | Not applicable. |
| Auto Cancelled | Automatically cancelled due to duplicate detection when the customer is already connected with an agent through a different path. | Same as preview | Same as preview |
| Postponed | The agent postponed the record as they did not want to deal with it when it was offered or the agent could not reach the customer and decided to postpone the record. | The customer could not be reached due to rejection or busy, or the customer was reached but not connected to an agent and the call is marked as nuisance as well, dialing mode switches from predictive to preview for calls marked as nuisance. | The customer could not be reached. |
| Rescheduled | The agent/supervisor has rescheduled the campaign task. | Same as preview. | Only a supervisor can set a record to rescheduled for Flow-controlled campaigns. |
| Failed | The record failed due to a technical error, e.g. because there was no dialable number in the record. | Same as preview | Same as preview |
| Unsuccessful | The agent tried to contact the customer, but the customer didn't connect or if the agent closed the record without connecting with the customer. Note: A voicemail is considered a connection, but a busy tone is not. | The dial limit is reached and the customer could not be connected or a record was switched to preview and the agent tried to contact the customer, but the customer didn't connect or agent closed the record without contacting the customer. | The dial limit is reached and the customer was not connected. |
Below is a matrix showcasing the next possible state for a record in a current state. A record can transition only into one next state at a time. These apply to all campaign types, however, campaign types may have different rules to determine the next state of a record.
| Current state | Newly added | Processing | Completed | Cancelled | CancelledByAgent | Auto-Cancelled | Postponed | Rescheduled | Failed | Unsuccessful |
|---|---|---|---|---|---|---|---|---|---|---|
| Newly Added | - | Yes | No | Yes | No | Yes | No | Yes | No | No |
| Processing | No | - | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Postponed | No | Yes | No | Yes | No | Yes | - | Yes | No | No |
| Rescheduled | No | Yes | No | Yes | No | Yes | No | - | No | No |
| Completed | No | No | - | No | No | No | No | No | No | No |
| Unsuccessful | No | No | No | No | No | No | No | No | No | - |
| Cancelled | No | No | No | - | No | No | No | No | No | No |
| Failed | No | No | No | No | No | No | No | No | No | No |
| CancelledByAgent | No | No | No | No | - | No | No | No | No | No |
| Auto-Cancelled | No | No | No | No | No | - | No | No | No | No |
Record processing rules
Non-predictive campaigns adhere to the following activation process: Every 2 minutes, the system assesses the quantity of skilled agents currently logged in (known as the adjustment period). This also occurs when the campaign starts.
The system then maintains the number of records in the processing state at 110% of the skilled logged-in agents. This continues until the campaign stops. This rule is applied to each campaign individually.
Note
If the calculation does not return an exact number, the system will automatically round up. For example, there are 23 skilled logged in agents, 110% of 23 is 25.3, the system will round up to 26 and ensure there always are 26 records in processing state until the campaign is stopped or the number of agents changes.
In contrast, predictive campaigns continuously adjust how many records they dial based on agent availability, target busy/nuisance limits, and recent call outcomes. Ramp-up and throttle down happen throughout the operation of the campaigns as these parameters change.
Campaign actions
Upload records
Campaign records can be easily uploaded into a campaign.
First, download the CSV template by clicking the Template button for a particular campaign. Please note that while additional fields are entirely configurable, the CSV template may be different for each campaign. We assume no additional fields are added in this documentation.
The required format is UTF-8, keep in mind some editors such as Microsoft Excel may use a different encoding by default resulting in uninterpreted characters. We recommend using text-based editors such as notepad or notepad++ to correct the encoding.
Template format:
FirstName,LastName,PhoneNumber,PhoneTag,AdditionalPhone-1,AdditionalPhoneTag-1,AdditionalPhone-2,AdditionalPhoneTag-2,AdditionalPhone-3,AdditionalPhoneTag-3
- First name: The first name of the contact. (optional)
- Last name: The last name of the contact. (optional)
- Phone number: The primary phone number of the contact. (mandatory)
- Phone tag: A custom description for this number, such as "Secretary's number". (optional)
- Additional phone: An extra phone number (optional) agents can select in their interface before dialing or redialing.
- Additional phone tag: The description for the additional phone number.
Up to 10 additional phone & phone tags can be added following the template format.
Once you have populated your file, upload it to the portal by clicking the Upload button, now, start the campaign and the records will be processed.
You may also decide to upload records and replace the existing list by checking the Clear all previously uploaded records box in the record upload dialog, in which case, the records that are not in processing state will be deleted and replaced with your new list.
Cancel records
You may cancel records you no longer wish to process, through the following options:
- Cancel individual records. Find the record you wish to cancel, and click the Cancel button on the right side of the listing page, under actions.
- Cancel records in bulk. Click the selection mode button, select the records you wish to cancel, and click the Cancel records button. Note that this affects only the records you are looking at; navigating to other pages will clear your selection.
- Cancel all filtered records. Apply filters according to your needs, then, click the Cancel all filtered records button. This will cancel all records from all pages, based on the filters you applied.
You may cancel records that are in the Newly Added, Postponed, Rescheduled states. In progress records may be cancelled if they were not delivered to an agent.
Schedule records
As a team lead or supervisor, you may schedule records for a particular agent with a date-time setting. This option is available per record as well as in-bulk through the selection mode option.
To schedule a record, click the pen icon under action for an active record, select the schedule date and the preferred agent. You may schedule a record without a preferred agent as well. The record state will change to rescheduled and if you selected an agent, this is displayed as well. You may not schedule or reschedule completed records, regardless of the completion reason.
To perform this operation in bulk, click the selection mode button, select the records you wish to schedule, then click the Schedule records button.
Pause new campaign record processing
During the lifecycle of a campaign, many records can end up in a Rescheduled state when agents make commitments to call back specific customers. However, agents often cannot keep up with these commitments as the campaign continuously delivers new records.
You may pause processing records that are not Rescheduled with this option. Navigate to your campaign, click the Details button and turn on the toggle to process Rescheduled records only. Please note that the campaign must be stopped to change this configuration.
This option does not affect records already in the Processing state; these will be delivered until they reach another state, such as Completed, Rescheduled, or Postponed. When this feature is enabled, Postponed records are also not processed, allowing agents to focus only on rescheduled records created by themselves, the supervisor, or the system.
Suspend campaign records
Suspending campaign records is an effective way to prevent processing of a record until you unsuspend it, without having to cancel and reupload it later.
To suspend a campaign record, locate the record in your campaign and click the Suspend button (represented by a snowflake icon) under the Actions column. Once clicked, the record is held and will not be processed until you unsuspend it.
You may suspend records that are active, except for the processing records.
This operation is also available in bulk, through the selection mode.
Turn on Selection Mode, select all the records you want to suspend and click the suspend button. You may unsuspend records in bulk through the same process. If a record from your selection is not eligible for suspension or unsuspension, the button will be disabled.