This document outlines the solution architecture for CX Campaigns.
Solution Components
The solution is comprised of the following main components,
-
Campaign Manager Front-end
-
Scheduler
-
Customer Channel Manager (CCM)
-
Voice Connector (VC)/ other channel connectors
-
EF CC Dialer/ Cisco Dialer / Channel Providers
-
Campaigns Database
Solution Workflow
Solution workflow for different channels.
Agent Based Calls
|
|
IVR Based Calls
|
|
Digital Campaigns
|
|
Technical Solution
Contact Structure
The parameters for a campaign contact are set in the campaign manager sent to the scheduler.
These parameters are described in the following sections, along with other relevant information that the dialer stores in a database based on the state of the contact.
Mandatory
|
Field |
Description |
Type |
Provided By |
|---|---|---|---|
|
id |
Unique UUID identifier used to identify this contact and call |
VARCHAR(40) |
Campaign Manager |
|
customer_number |
The number to be dialed |
VARCHAR(20) |
Campaign Manager |
|
campaign_type |
IVR or AGENT |
VARCHAR(20) |
Campaign Manager |
|
gateway_id |
The UUID of the EFSwitch gateway to be used to dial customer number |
VARCHAR(40) |
Campaign Manager |
|
status |
pending, agent_pending, dialed, ended, stopped or failed |
VARCHAR(20) |
Dialer |
|
call_result |
The result of a call e.g. Normal clearing, User busy etc |
VARCHAR(40) |
Dialer |
|
received_time |
The time at which the contact was received by the dialer |
DateTime |
Dialer |
|
dial_time |
The time at which the contact was sent by the dialer to EFSwitch to be dialed |
DateTime |
Dialer |
|
campaign_contact_id |
The id of the contact received in CCM message payload |
VARCHAR(40) |
Campaign Manager |
|
campaign_id |
The campaign id received in CCM message |
VARCHAR(40) |
Campaign Manager |
|
start_time |
The contact cannot be dialed before this time |
DateTime |
Campaign Manager |
|
end_time |
The contact cannot be dialed after this time |
DateTime |
Campaign Manager |
|
priority |
The contact between 1-10 |
Integer |
Campaign Manager |
IVR campaign
Can be provided in an IVR campaign. If not provided, the default value configured in the dialer is used.
|
Field |
Description |
Type |
Provided By |
|---|---|---|---|
|
ivr |
The ivr to be selected, THE IVR number, if contact is IVR based |
VARCHAR(20) |
Campaign Manager |
Agent campaign
Mandatory for agent campaigns.
|
Field |
Description |
Type |
Provided By |
|---|---|---|---|
|
dialing_mode |
|
VARCHAR(20) |
Campaign Manager |
|
routing_mode |
AGENT or QUEUE, only for contacts with campaign_type = AGENT |
VARCHAR(20) |
Campaign Manager |
|
resource_id |
Queue or AgentId based on routing_mode |
VARCHAR(40) |
Campaign Manager |
|
queue_name |
The name of queue if routing_mode = QUEUE, optional if routing_mode = AGENT or if routing_mode = QUEUE and resource_id is set |
VARCHAR(20) |
Campaign Manager |
Additional Functions
Campaign controls (Voice)
The dialer exposes three APIs that can be called by the campaign manager to start, stop or purge campaigns:
-
Set this campaign's stopped contacts' status to 'pending'.
-
Set this campaign's pending contacts' status to 'stopped'.
-
Remove all pending contacts with this campaign ID.
Check Dialer Status
This API can be used to check the configured value of MAX_CONCURRENT_CALLS and the current number of active calls i.e. contacts with the dialed or agent_pending state.
Failover Cases
|
Scenarios |
Behavior |
|---|---|
|
The voice connector is down and the agent reservation request cannot be sent to it. |
Contact status remains on pending and will be tried again. |
|
The database is down and dialer cannot retrieve contacts. |
Dialer will retry on its next cycle. |
|
EFSwitch gateway is invalid. |
Contact status is set to failed and call result set as Invalid Gateway. |
|
EFSwitch gateway is down. |
Contact status set to pending. |
|
EFSwitch is down and call command cant be sent. |
Contact status is set to failed. |
|
Campaign manager sends campaign control command(start/stop/purge) to dialer, but database is down. |
A Service Unavailable error is returned. |
|
Campaign manager sends campaign control command to dialer, but no entries with supplied campaign ID are found. |
A Not Found error is returned. |
|
Voice connector sends agent details to dialer but database is down. |
A Service Unavailable error is returned. |
|
Voice connector sends agent details to dialer but an unexpected error occurs e.g. EFSwitch is down. |
An Internal Server error is returned. |