Campaign configuration is set via the Set Campaign Properties [SO] method and is retrieved via the Get Campaign Properties [GP] method. See RouterNET Integration.
A successful call will yield the Property Data [PD] event with a Data (DT) parameter containing a large XML document with the properties set for that campaign.
This XML document is saved per tenant as CampaignParams_<tenant>.xml in the C:/<root>/CM/<tenant> folder (where C is the installation root drive). It has the following format:
<?xml version="1.0" encoding="utf-16"?>
<CampaignMap>
<Campaign Name="Campaign1" ID="1" State="0" CallsMade="6">
<CampaignParams ....>
</Campaign>
<Campaign Name="Campaign2" ID="2" State="1" CallsMade="3">
<CampaignParams ....>
</Campaign>
....
</CampaignMap>
A full description of each element in this file is given in the example below.
<?xml version="1.0" encoding="utf-16"?> <CampaignMap> <Campaign Name="Mobiles" ID="1" State="2" CallsMade="0"> |
|
<CampaignParams DSN="Mobiles" SchemaName="" DBUser="" DBPassword="" DBVerified="true"> | |
DSN, SchemaName, DBUser and DBPassword attributes are the data source specifiers for the campaign. | |
<CampaignName> Mobiles </CampaignName> | |
The name of the Campaign. | |
<TelColumn> Telephone </TelColumn> | |
The column name used to store the primary telephone number | |
<KeyColumn> Contact_ID </KeyColumn> | |
The column name of the primary key (identity) column | |
<AbandonRate> 3.00000000 </AbandonRate> | |
The configured Abandon Rate - only applies to predictive | |
<AbandonDelay> 1 </AbandonDelay> | |
The configured Abandon Delay - only applies to predictive | |
<MaxWrapTime> 0 </MaxWrapTime> | |
The configured Maximum Wrap time | |
<WrapOutcome> </WrapOutcome> | |
The configured Wrap Outcome | |
<WrapData> </WrapData> | |
The Wrap Data | |
<RingTimeout> 16 </RingTimeout> | |
The configured RNA timeout - only applies to outbound campaigns | |
<EstimateTalk> 2 </EstimateTalk> | |
Estimated talk time - only applies to predictive | |
<CacheSize> 200 </CacheSize> | |
Configured default cache size | |
<TableName> mobiles </TableName> | |
The name of table or view used for input to the campaign | |
<CLICol> </CLICol> | |
The table column containing the CLI data | |
<AMCol> </AMCol> | |
The table column containing the Answering Machine data | |
<LastDialed> </LastDialed> | |
Deprecated | |
<ResultPrimaryTable> mobiles </ResultPrimaryTable> | |
The name of table to apply result updates. This will normally be the same as the TableName element but in the case of a view may be different | |
<ResultTimestampCol> Result_TS </ResultTimestampCol> | |
The column name used to store the timestamp for the last Result | |
<RetryCountCol> Retry_Count </RetryCountCol> | |
The column name used to store the retry count for this Record | |
<RetryTimestampCol> Retry_TS </RetryTimestampCol> | |
The column name used to store the timestamp for the next retry | |
<RetryUserName> Retry_Username </RetryUserName> | |
The column name used to store the user that the call is to be presented to. For an agent callback this column will be set | |
<ResultColumn> Switch_Result </ResultColumn> | |
The column name used to store the last telephony result | |
<KeyNumeric> true </KeyNumeric> | |
Is the key column numeric or alphanumeric? | |
<RetryMode> 2 </RetryMode> | |
0 for no retries, 2 for Campaign Manager | |
<EnableCallbacks> true </EnableCallbacks> | |
Are Callbacks enabled? | |
<DatabaseMode> 2 </DatabaseMode> | |
0 for simple number feed, 2 to allow retries and database update | |
<CampaignType> 0 </CampaignType> | |
Note: These values are NOT the same as the values used in the Dialing Mode (DM) parameter of the Open Campaign [OC] message.
|
|
<AgentResultCol> Agent_Result </AgentResultCol> | |
The column name used to store the last agent disposition for the call | |
<CTLayerID> </CTLayerID> | |
The telephony layer that the campaign gets deployed against | |
<LCRCode> </LCRCode> | |
The least-cost routing prefix to be used | |
<RetryParams MaxRetries="8" MaxRetriesNotPresent="4" MaxTimeOfDay="0.87500000" MinTimeOfDay="0.33333333" MultipleNumberStrategy="0" MultiRetryThreshold="0" LimitAcrossAllNumbers="true" MaxOverdue="0.00347220" OverdueOffset="1.00000000" CallbackNotPresentOffset="1.00000000" CallbackPresentOffset="0.00347220" CallbackPlannedNotMadeOffset="1.00000000" PoolCBNP="false" PoolCBP="false" PoolCBPNM="false" CountCBNPRetry="false" CountCBPRetry="false"> | |
Attributes of RetryParams element contain overall retry strategy as follows:
|
|
<Retry Outcome="1"> | |
The Outcome Attribute is an integer number for the cause code returned by CallGem when a call is dispositioned | |
<RetryDetail Type="0" Offset="0.01041670" Offset1="0.00000000" Offset2="0.00000000" Offset3="0.00000000" Offset4="0.00000000" Offset5="0.00000000" Precedence="0" MaxAttempts="6" NotPresent="false" BadNumber="false" MaxTimeOfDay="0.87500000" MinTimeOfDay="0.33333330"/> </Retry> | |
Each fail type outcome has rules that govern selection of next retry time. The attributes of each RetryDetail element contain these rules:
|
|
</Retry> </RetryParams> | |
<WriteAudittrail> true </WriteAudittrail> | |
Boolean indicating whether or not an audittrail table should be written. Default is true. Audittrail contains history to enable intelligent selection of retry time | |
<RouteExternal> false </RouteExternal> | |
false if Softdial CallGem™ determines route to agent. true if the telephony platform determines route to agent | |
<ExternalTimeOut> 0 </ExternalTimeOut> | |
The length of time after which an unavailable request for externally-routed agents is timed out | |
<RunUsers/> <ManageUsers/> |
|
Deprecated | |
<AlternateNumberCols>
<Item> Telephone </Item> </AlternateNumberCols> |
|
Collection of column names for alternate telephone numbers. Each Item is the name of a column | |
<AlternateNumberCLICols>
<Item> </Item> </AlternateNumberCLICols> |
|
Collection of column names for alternate CLIs. Each item is the name of a column. | |
<CleanGlobal> false </CleanGlobal> | |
Clean this campaign against a built-in global DNC list | |
<CleanCallCenter> false </CleanCallCenter> | |
Clean this campaign against a built-in tenant-level DNC list | |
<CleanCampaign> false </CleanCampaign> | |
Clean this campaign against a built-in campaign-level DNC list | |
<CheckedFlagField> </CheckedFlagField> | |
Deprecated | |
<TZBoundUpper> </TZBoundUpper> | |
Column name for timezone management latest time to call | |
<TZBoundLower> </TZBoundLower> | |
Column name for timezone management earliest time to call | |
<TZStateCodeField> </TZStateCodeField> | |
Column name for state code to support timezone management | |
<TZPostCodeField> </TZPostCodeField> | |
Column name for post/ zip code to support timezone management | |
<NumDigitsAreaCode> 0 </NumDigitsAreaCode> | |
The number of digits in the phone number that indicate the area code | |
<TZLegislaturesFile> </TZLegislaturesFile> | |
The Legislatures file to be used for timezone processing | |
<DNCListsSelected/> | |
Collection of DNC lists selected to clean against | |
<DNCListsCleaned/> | |
Collection of DNC lists cleaned against | |
<FilterList> | |
Collection of Filter elements which in turn are a collection of FilterCondition elements. | |
<Item> <Filter Name="lt1000" Apply="true" FreeForm="false" FreeFormText="> |
|
Each Filter element with the attribute Apply set true is logically 'OR'ed to form the selection criteria for the records to make up the campaign. Filter attributes are:
|
|
<ConditionList> <Item> <FilterCondition Column="Contact_ID" Comparison="<=" Value="1000" Type="4"/> |
|
FilterCondition attributes are:
|
|
</Item> </ConditionList> </Filter> </Item> <FilterList> | |
<OrderColumn> Contact_ID </OrderColumn> | |
The column to determine sort order for the campaign | |
<CallbackNumber> Retry_Number </CallbackNumber> | |
The column name for storing a specific number the respondent wanted to be called back on | |
<RecTagCol1>
</RecTagCol1> <RecLabel1> </RecLabel1> |
|
The column name for data to be embedded in a call recording tag. Each campaign can define 6 custom tags | |
<BlanketRecording> false </BlanketRecording> | |
Whether all calls should be recorded on this campaign | |
<AnsMachineDetMode> 1 </AnsMachineDetMode> | |
The mode used for call progress analysis. An enumeration as follows:
|
|
<AnsMachineMsg> </AnsMachineMsg> | |
The symbolic name for the answer machine message for AnsMachineDetMode 3 (above) | |
<AgentlessSpoofAgents> 0 </AgentlessSpoofAgents> | |
How many agents should an agentless campaign dial for? | |
<Agentless_Behaviour> 2 </Agentless_Behaviour> | |
Behaviour of agentless campaign. Enumerator values:
|
|
<AgentlessPredictiveMode> false </AgentlessPredictiveMode> | |
Boolean indicating whether Softdial CallGem™ should dial predictive on agentless campaigns or progressive | |
<AgentlessMessage> </AgentlessMessage> | |
Symbolic name for agentless campaign message | |
<AgentlessEnabled> false </AgentlessEnabled> | |
Are agentless campaigns enabled? | |
<CLIPresented> </CLIPresented> | |
CLI to be presented for this campaign. (If not overridden by <CLICol>) | |
<RetryIndexColName> Retry_Index </RetryIndexColName> | |
The column name for the column storing the indicator for the telephone number to be used to dial on the next attempt | |
<AbandonMessage> </AbandonMessage> | |
The symbolic name for the abandon call message. (If not overridden by <AMCol>) | |
<MultiNumFlagging> false </MultiNumFlagging> | |
Whether or not priority flagging for multiple phone numbers is supported | |
<CliPerNumFlagging> true </CliPerNumFlagging> | |
Whether or not CLI flagging for multiple phone numbers is supported | |
<DiallingPrefix> </DiallingPrefix> | |
The prefix to be used for this campaign | |
<DiallingPostfix> </DiallingPostfix> | |
The postfix to be used for this campaign | |
<MultiNumFlagCols/> | |
Collection of column names for flag columns | |
<MultiNumProgressModes>
<Item> -1 </Item> </MultiNumProgressModes> |
|
Collection of call progress modes for each phone number column. Values as per AnsMachineDetMode, or -1 to indicate that the default mode for the campaign is used | |
<MinCallTimeForColumn>
<Item> 0.000000 </Item> </MinCallTimeForColumn> |
|
Collection of earliest times-of-day to call for each phone number column. The value 0.0 indicates that the shift time boundary is used | |
<MaxCallTimeForColumn>
<Item> 1.000000 </Item> </MaxCallTimeForColumn> |
|
Collection of latest times-of-day to call for each phone number column. The value 0.0 indicates that the shift time boundary is used | |
<MaxRingTime> <Item> 0 </Item> </MaxRingTime> | |
The maximum ring time set for this campaign | |
<EndOfListBehaviour> 0 </EndOfListBehaviour> | |
End of List behaviour. An enumerator describing what should happen when the last record has been read in. Values:
|
|
<ChainCampaignName> </ChainCampaignName> | |
If campaign chaning is used, the name of the campaign to chain on to | |
<PreviewTimeout> 0 </PreviewTimeout> | |
The amount of time an agent on a preview campaign gets to preview a call before it is launched | |
<BreatherTimeout> 0 </BreatherTimeout> | |
The amount of time an agent on a preview campaign gets to pause for breath before being presented with another account | |
<PreviewOnHook> false </PreviewOnHook> | |
Whether preview on-hook behaviour is enabled | |
<DialerCampaign> </DialerCampaign> | |
For linked campaigns, the name of the master campaign | |
<ApportionmentType> 0 </ApportionmentType> | |
How records are apportioned. Enumerator with values
|
|
<ApportionmentRatio> 1 </ApportionmentRatio> | |
For ApportionmentType 1, the ratio to be used for this campaign | |
<RecordTypeCol> </RecordTypeCol> | |
The column name containing record type data to be passed to Softdial CallGem™ | |
<CompleteCol> Complete_TS </CompleteCol> | |
The column name for the 'record complete' timestamp | |
<SBRType> 0 </SBRType> | |
Whether Outbound Skills Based Routing is enabled and if so, how the skills skill data is obtained:
|
|
<QueueCol> </QueueCol> | |
The column used to identify the queue to be used for outbound skills-based routing | |
<QueueAddress> </QueueAddress> | |
The queue address for outbound skills-based routing. This should only be set for linked campaigns | |
<SBRAbandonOutcome> 0 </SBRAbandonOutcome> | |
The outcome code to be used if a call is abandoned due to lack of agent with the required skill | |
<ConstrainRetries> false </ConstrainRetries> | |
Determines whether retries are filtered. false - Not filtered true - Filtered | |
<QuotedIdentifiers> false </QuotedIdentifiers> | |
Determines whether table and field names are quoted in SQL. Quoted Identifiers are required for PostgreSQL database | |
<RetryPrecedence> 100 </RetryPrecedence> | |
<MediaType> </MediaType> | |
<CallsToSupplyMaster> 0 </CallsToSupplyMaster> | |
<LastRequestedCount> 0 </LastRequestedCount> | |
<CustomerIdentity> </CustomerIdentity> | |
From V10.7 - The content of this element is used to specify a customer name from the database record, with row names defined in brackets and all other text copied directly (for instance, {Title} {Forename} {Surname}, {Quals} might return "Mr John Smith, PhD" assuming all the rows exist in the database). This is passed to the endpoint as the Display Name (YO) parameter of an Agent Connect [AC] message, and is then transferred to the Agent Desktop client as the CustomerName field in UpdateEndpoint messages |
|
<FilterResultCols/> | |
<Schedule IsScheduled="false"> | |
Scheduled start/ stop of campaigns. The IsScheduled attribute determines whether the campaign runs according to a schedule. The Schedule element is a collection of days starting index 0 - Sunday, 1 - Monday and so on | |
<Day Index="0" StartTime="0.33333333" EndTime="0.87500000"/> |
|
The StartTime and EndTime attributes are a fractional time of day representing LOCAL time at the server. | |
</CampaignParams> </Campaign> </CampaignMap> |