A campaign is a flexible master plan that organizes calling lists for dialing calls and handling call results. An outbound campaign specifies what kind of work the agents perform (for example, collections, telemarketing, or fund-raising). A campaign is structured as follows:
- An Agent or Place Group may be assigned to multiple active campaigns. An agent can participate in multiple active campaigns. You can reassign agents between any active campaigns. Only one dialing session that is associated with a campaign can run in Predictive or Progressive dialing mode. Other dialing sessions for other campaigns must run in Preview mode. See Campaign Group for more information.
- One campaign can use several calling lists, and one calling list can be shared among several campaigns. A special record-level locking mechanism prevents simultaneous dialing of the same dialing record for different campaigns.
These configuration elements can be modified at runtime without stopping the dialing session that is associated with a campaign.
Interaction with Agents
Outbound Contact maintains a documented protocol of interactions between itself and an agent's desktop application. To simplify desktop application architecture and development, this protocol is based on the user events that T-Server distributes at the client application's requests. The supported types of interactions between Outbound Contact and the desktop application are described in the following subsections. For more information about these interactions, see "Communication Protocols," in the Outbound Contact Reference Manual.
Agent Assignment in Multiple Campaigns
Outbound Contact supports agent assignment in multiple campaigns for both the Transfer Mode and ASM Modes. When using Universal Routing Server (URS) 8.0.1 and higher, you can enforce the routing of any call to an agent assigned to a specific Campaign Group by invoking the UseActivityType routing strategy function. For details, see the description of the UseActivityType function in the Universal Routing Reference Manual. Keep in mind, however, that use of the UseActivityType function may affect performance of predictive algorithm and cause abandonment of outbound calls if outbound-dedicated Agents are occupied by non-outbound calls.
Universal Routing Server (URS) must be used in order to support agent groups in multiple campaigns. OCS will attach CampGroupID data to every outbound call to represent the CampaignGroup DBID. For every agent assigned to more then one active CampaignGroup, Outbound Contact designates only one Campaign Group for this agent. OCS will change the Campaign Group designation when the configuration of campaign priorities and the staffing limits have been changed, when agents have been logged in/out, or when dialing sessions for some Campaign Groups have been started/stopped.
Stat Server uses the same information in the CurrentCampaignGroupDBID statistic. URS can then target agents by using the CampaignGroup target.
|Note:||A Campaign Group routing target should be used only when routing calls to groups with an agent assignment.
OCS also supports agent assignments in multiple campaigns in ASM modes. When you set the agent-assignment option to true, OCS includes the Campaign Group name and DBID in its request for an engaging call. This ensures that a customer call will be merged only with an engaging call that originated for the same Campaign Group.
When OCS is making assignment decisions in ASM modes, OCS considers an engaged agent eligible for reassignment to other Campaign Groups and can make a reassignment decision and release the engaging call.
ASM Modes & CPD Server
CPD Server attaches the Campaign Group identifiers to the user data of the engaging call as follows:
- For ISDN conventional configurations, CPD Server monitors the Voice Transfer Destination DN and requests an update of user data that has these identifiers when EventRouteRequest is signaled for the engaging call.
- When using CPD Server with HMP, the identifiers are attached during the call-setup phase, as SIP Server can attach data to new a call whenever this data is provided in the SIP header of the initial call-setup message. SIP Server must be properly configured to attach these identifiers to an engaging call. In the configuration section of the SIP Server Application object, INVITE section must contain the following options (example):
- userdata-1 = GSW_CAMPAIGN_GROUP_NAME
- userdata-2 = GSW_CAMPAIGN_GROUP_DBID
|Note:||Because user data is passed via SIP headers, the name of the Campaign Group used for agent assignment can contain only English letters, numbers and underscores.|
When CPD Server bridges an outbound call to an engaging call, CPD Server gives first priority to the Campaign Group DBID (GSW_CAMPAIGN_GROUP_DBID) in order to match calls associated with the same Campaign Group.
VoIP ASM Modes Without CPD Server
Because all VoIP ASM modes do not use CPD Server, OCS can attach Campaign Group identifiers to both engaging and outbound calls when they are created. As a result, these calls can be routed and bridged to the correct Campaign Group. To enable this, the routing strategy must be designed to route engaging calls to Campaign Group targets.
Routing Strategy Design and CampaignGroupID
For agent assignment, you should design the routing strategy to distribute only outbound calls and engaging calls (if running a dialing session/campaign in an ASM mode) that contain the correct CampGroupID attached data to agents who meet the following criteria:
- The agent belongs to the specified group that is configured for that CampaignGroup.
- The agent's current statistic in Stat Server contains the CurrentCampaignGroupDBID, which is equivalent to the CampGroupID.
Both requirements can be achieved by using routing targets of Campaign Group type. In addition, for engaging calls placed in conventional ISDN scenarios in which an engaging call arrives to the Route Point DN without attached data, you must include the SuspendForEvent function (EventAttachedDataChanged) in the routing strategy before the routing decision is made.
|Note:||This SuspendForEvent function should be applied only to engaging calls, (that is, those calls that originated from a certain DN list.)|
- Campaigns are prioritized according to the following definitions:
- An understaffed campaign is one in which the number of assigned agents is less than what is required to maintain a minimum service-level agreement (SLA).
- A staffed campaign is one in which the number of assigned agents is sufficient to maintain a minimum SLA, but is less than the maximum SLA.
- An overstaffed campaign is one in which that the number of assigned agents is sufficient to maintain the maximum SLA.
Agents are assigned based on the following priorities:
- All active campaigns that are configured with an equal priority will have an equal number of agents assigned to each campaign if all of the campaigns are equally understaffed or equally staffed.
|Note:||If agents are not configured equally for all Campaign Groups—for example, if they have different skills—the above behavior does not apply. In this situation, the distribution for campaigns could be uneven, and some agents could be moved to an Inbound session instead of being reassigned to an understaffed campaign.|
- When some campaigns with equal priority are understaffed, all non-assigned agents are assigned to the understaffed campaigns only. If there are several understaffed campaigns, an equal number of agents are assigned to each campaign that has equal priority.
- When there are no understaffed campaigns, all non-assigned agents are assigned to staffed campaigns only. If there are several staffed campaigns, an equal number of agents are assigned to each campaign that has equal priority.
- Agents are not assigned to overstaffed campaigns.
Refer to the descriptions of the following configuration options for more information about how the following options help to configure agent assignment:
Refining How Agent Assignment Functions
The following options address specific situations, providing you with more flexibility to refine the effectiveness of agent reassignment. OCS can now reassign agents to other activities if the dialing session to which they are currently assigned cannot use them because there are no available calling records or there are no free dialing ports.
- Agent reassignment if there are no available dialing ports or if there are no dialing records:
- Preventing agent assignment to inbound or low-priority outbound activities.
Claiming of Agents by a Routing Strategy.
The ClaimAgentsFromOCS routing function, new in Universal Routing 8.1, enables a routing strategy to make an immediate reassignment of one or more agents from outbound call handling to handling of inbound interactions.
This functionality is enabled using the ocs-urs-interact configuration option.
This function is used when a strategy that is processing inbound calls cannot process a call within the service objective criteria, and the call is important enough to require the use of agents currently busy with outbound activity.
For example, outbound agents can be claimed if a call has been waiting longer than some specified value.
For additional information on this functionality, see the chapter on Universal Routing Functions in the Universal Routing Reference Manual.
Personal and Campaign Callbacks
The OCS-Desktop protocol enables the agent to schedule Personal or Campaign callbacks for specific records. A Personal callback is delivered to the agent who scheduled it. A Campaign callback is sent to any agent working in the specified dialing session. The records scheduled as either Personal or Campaign callbacks are marked accordingly in the calling list, so that reports can be generated.
For Personal callbacks, OCS follows up on them if a dialing session is stopped but not unloaded.
For Campaign callbacks, if the predictive_callback option is set to true, OCS processes them only while the dialing session that owns them is running. This varies according to the dialing mode, as follows:
- In the Predictive or Progressive modes, if the dialing session is active (that is, loaded), then Campaign callbacks are retrieved and waiting in OCS memory buffers for the dialing session to start, even if the scheduled time arrives.
- In the Preview mode, if the dialing session is active (that is, loaded), Campaign callbacks wait until an agent desktop requests them, which only occurs when the dialing session is running.
If the predictive_callback option is set to false, OCS always sends Campaign callbacks to the agent desktop as long as the dialing session is active (loaded).
|Note:||See the "Communication Protocols" chapter of the Outbound Contact Reference Manual for information on the events that are distributed when an agent reschedules records.|
Outbound Contact supports dynamic manual sequencing of running campaigns (campaign sequencing). Only one campaign per dialing session can be running at a time, but multiple campaigns can be loaded into memory. This enables the user to stop a previous dialing session for a campaign and automatically start the next one without disrupting the agents' work. When the new dialing session starts, the agents who are working in the group are notified. If new agents log in to the group after a dialing session for an outbound campaign has started, they are informed of the name and status of the currently running dialing session. OCS sends the name and status of a dialing session for a campaign as user events by means of a communication protocol.
Campaign sequencing can be configured according to the following parameters:
- Stop at Contacts—This counter is increased when a dialed record is updated in the database with the Answer call result. As soon as the counter exceeds the campaign threshold, the dialing session for the campaign is stopped and unloaded.
- Stop at Dials—This counter is increased when a dialing request or a PreviewRecord user event is issued. When the counter exceeds the campaign threshold, the dialing session for a campaign is stopped and unloaded.
- Stop at time—This occurs when a dialing session for a campaign is stopped and unloaded after it had been running up to the specified time.