GET and POST Methods
HTTP is a protocol that is used to send information through webservers; POST and GET are HTTP request methods. GET is usually intended to retrieve data, while POST is intended to send data to a server to create/update a resource, and POST can carry more data.
With the GET method, the data is sent as URL parameters that are usually strings of name and value pairs separated by ampersands (&). In general, a URL with GET data will look like this:
https://www.example.com/action.php?name=john&age=24
With the POST method, the data is sent to the server as a package in a separate communication with the processing script. Data sent through the POST method will not be visible in the URL.
The DialedIn CCaaS system includes messages that can be used with either GET or POST methods to facilitate a number of operations on the data stored in the database. These messages are handled through the following:
https://api.chasedatacorp.com/HttpImport/
Before we go through the specifics, it is important to mention that you will need an authentication token for every operation, which you will need to set up via Integration Settings (refer to "Setting Up API Tokens").
The available messages and the operations they invoke are as follows.
Important
Unless otherwise specified, parameters that represent phone numbers, e.g., Phone, CallId, are expected as a 10-digit string without spaces or dashes.
InjectLead.php
Purpose |
- Inserts Contact (lead) into the DialedIn database
|
Minimum required identifying name‐value pairs |
- token — security component provided by DialedIn or obtained via Integration Settings
- accid — security component that identifies the DialedIn customer or its vendor; it corresponds to the FQDN prefix (ex: if customer/vendor FQDN is
test.chasedatacorp.com , accid = test)
- Campaign — existing campaign
- PrimaryPhone — default Contact field.
|
Optional insertion behavior name-value pairs |
- ImportOnly — indicates whether this is a standard insertion (1) or it’s a Hot Lead insertion (0); 0 is the default; Hot Lead means that, upon insertion, the Contact (lead) will be dialed with priority as soon as possible
- DuplicatesCheck — indicates whether and how to check if the Contact is already in the database (based on PrimaryPhone), and whether to allow insertion if it indeed becomes a duplicate; the possible values are:
0 — check within the Campaign only; do not insert if it already exists (this is the default);
1 — insert without check;
2 — check across all Campaigns; do not insert if it already exists
3 — check within same Campaign and Sub-Campaign.
|
Optional Hot Lead insertion name-value pairs (applicable if ImportOnly = 0) |
- Subcampaign — sub‐campaign to assign the lead to
- timezone — Set (1) or not set (0); if set, the Hot Lead treatment will be applied only if a time-zone check succeeds (i.e. check Contact and Campaign time zones to verify that the call would be within calling hours); 0 is the default
- AllowDialingDups — Set (1) or not set (0); if set, the Hot Lead will still be dialed even if determined to be a duplicate Contact (based on DuplicatesCheck) and no other condition prevents the system from dialing it; 0 is the default
- DialNonCallables — Set (1) or not set (0); if set, the Hot Lead will be dialed even if determined to be a non-callable Contact (including when the corresponding number is found in the DNC table) and no other condition prevents the system from dialing it; 0 is the default.
|
Optional Callback name-value pairs |
- CallbackAgent — name identifier of the Agent, as defined in the system
- CallbackDate — date and time (based on PrimaryPhone time zone) when the call-back is to be performed, in
MM/dd/yyyy HH:mm:ss format, as follows:
- MM — 2‐digit month number;
- dd — 2‐digit day of the month;
- yyyy — 4‐digit year;
- HH:mm:ss — Time of the day in 24‐hour format;
- CallbackNotes — generic notes for the callback.
|
Other optional name‐value pairs |
- Can include any other
name‐value pair where name is a valid Default Field
- Can provide any other
name‐value pair where name is a valid Custom Field; in this case, the name must be pre-fixed by adv_ (e.g. if Custom Field is MobilePhone , then name must be adv_MobilePhone )
- If a name includes whitespace, each whitespace character must be replaced by a double-underscore (__) (e.g. if field is
Mobile Phone , then name must be Mobile__Phone ).
- Default field length:
ClientId = 50
FirstName = 100
LastName = 100
Address = 500
City = 100
State = 2
ZipCode = 10
PrimaryPhone = 50
Rep = 50
CallStatus = 50
Campaign = 50
Notes = unlimited
Subcampaign = 50
|
Example (shown as GET):
https://api.chasedatacorp.com/HttpImport/InjectLead.php?token=ABCDEFGHIJK&accid=test&Campaign=TEST&Subcampaign=HotLeads&FirstName=John&LastName=Smith&PrimaryPhone=5553334444&adv_MobilePhone=5552226666
UpdateLead.php
Purpose |
- Makes changes to an existing Contact (lead) into the DialedIn database
- Will NOT create a new one, if it doesn’t exist.
|
Minimum required identifying name‐value pairs |
- token — security component provided by DialedIn or obtained via Integration Settings
- accid — security component that identifies the DialedIn customer or its vendor; it corresponds to the FQDN prefix (ex: if customer/vendor FQDN is
test.chasedatacorp.com , accid = test)
- SearchField — name of the Contact field to be used to search for the Contact; allowed values are:
- ClientId — corresponds to
ClientId from Default Fields
- LeadId — corresponds to
id from Default Fields
- Phone — corresponds to
PrimaryPhone from Default Fields.
- Identifier — value corresponding to SearchField.
|
Optional Callback name-value pairs |
- CallbackAgent — name identifier of the Agent, as defined in the system
- CallbackDate — date and time (based on PrimaryPhone time zone) when the call-back is to be performed, in "MM/dd/yyyy HH:mm:ss"; format, as follows:
MM — 2‐digit month number;
dd — 2‐digit day of the month;
yyyy — 4‐digit year;
HH:mm:ss — Time of the day in 24‐hour format;
- CallbackNotes — generic notes for the callback.
|
Other optional name‐value pairs |
- Can include any other
name‐value pair where name is a valid Default Field
- Can provide any other
name‐value pair where name is a valid Custom Field; in this case, the name must be pre-fixed by adv_ (e.g. if Custom Field is MobilePhone , then name must be adv_MobilePhone )
- If a name includes whitespace, each whitespace character must be replaced by a double-underscore (__) (e.g. if field is
Mobile Phone , then name must be Mobile__Phone )
- Field names not found (including misspelled ones or wrong case) are ignored
|
Example (shown as GET):
https://api.chasedatacorp.com/HttpImport/UpdateLead.php?token=ABCDEFGHIJK&accid=test&SearchField=Phone&Identifier=5553334444&FirstName=John&LastName=Smith&adv_MobilePhone=5552226666
LeadOperations.php
Purpose |
- Performs and operation on an existing Contact (lead) in the DialedIn database
|
Minimum required name‐value pairs |
- token — security component provided by DialedIn or obtained via Integration Settings
- accid — security component that identifies the DialedIn customer or its vendor; it corresponds to the FQDN prefix (ex: if customer/vendor FQDN is
test.chasedatacorp.com , accid = test)
- Action — the operation to be performed; allowed values are:
DispositionLead , SearchLead , InsertDnc , DeleteDnc
|
Parameters (name‐value pairs) for Action DispositionLead |
- LeadId — corresponds to
id from Default Fields
- Disposition — disposition or Wrap-up Code to assign to Contact.
|
Parameters (name‐value pairs) for Action SearchLead |
|
Parameters (name‐value pairs) for Action InsertDnc |
- Number — the 10-digit phone number to insert into the internal DNC database and scrub it for all existing leads
|
Parameters (name‐value pairs) for Action DeleteDnc |
- Number — the 10-digit phone number to delete from the internal DNC database
|
Examples (shown as GET):
https://api.chasedatacorp.com/HttpImport/LeadOperations.php?token=ABCDEFGHIJK&accid=test&Action=DispositionLead&LeadId=1234&Disposition=TestDispo
https://api.chasedatacorp.com/HttpImport/LeadOperations.php?token=ABCDEFGHIJK&accid=test&Action=SearchLead&SearchField=Phone&Identifier=5554441111&Detailed=0
https://api.chasedatacorp.com/HttpImport/LeadOperations.php?token=ABCDEFGHIJK&accid=test&Action=InsertDnc&Number=5553331111
https://api.chasedatacorp.com/HttpImport/LeadOperations.php?token=ABCDEFGHIJK&accid=test&Action=DeleteDnc&Number=5552221111
AgentDialList.php
Purpose |
- Performs and operation on an Agent Dial List in the DialedIn database
|
Minimum required name‐value pairs |
- token — security component provided by DialedIn or obtained via Integration Settings
- accid — security component that identifies the DialedIn customer or its vendor; it corresponds to the FQDN prefix (ex: if customer/vendor FQDN is
test.chasedatacorp.com , accid = test)
- Agent — login name of the Agent upon which the Dial List operation is to be performed
- List — unique name (avoid spaces) of the Agent Dial List to which the operation is to be performed
- Action — the operation to be performed; allowed values are:
CreateList , DeleteList , AddPhone , DeletePhone , PhoneDialed , PhoneUnDialed .
|
Additional parameters (name‐value pairs) for Action AddPhone |
- Phone — telephone number (digits only) to add to an existing Agent Dial List
|
Additional parameters (name‐value pairs) for Action DeletePhone |
- Phone — telephone number (digits only) to remove from an existing Agent Dial List
|
Additional parameters (name‐value pairs) for Action PhoneDialed |
- Phone — telephone number (digits only) to be marked as Dialed on an existing Agent Dial List
|
Additional parameters (name‐value pairs) for Action PhoneUnDialed |
- Phone — telephone number (digits only) to be marked as UnDialed on an existing Agent Dial List.
|
Examples (shown as GET):
https://api.chasedatacorp.com/HttpImport/AgentDialList.php?token=ABCDEFGHIJK&accid=test&Action=CreateList&Agent=agent-login-name&List=new-list-name
https://api.chasedatacorp.com/HttpImport/AgentDialList.php?token=ABCDEFGHIJK&accid=test&Action=DeleteList&Agent=agent-login-name&List=new-list-name
https://api.chasedatacorp.com/HttpImport/AgentDialList.php?token=ABCDEFGHIJK&accid=test&Action=AddPhone&Agent=agent-login-name&List=new-list-name&Phone=5559998888
https://api.chasedatacorp.com/HttpImport/AgentDialList.php?token=ABCDEFGHIJK&accid=test&Action=DeletePhone&Agent=agent-login-name&List=new-list-name&Phone=5559998888
https://api.chasedatacorp.com/HttpImport/AgentDialList.php?token=ABCDEFGHIJK&accid=test&Action=PhoneDialed&Agent=agent-login-name&List=new-list-name&Phone=5559997777
https://api.chasedatacorp.com/HttpImport/AgentDialList.php?token=ABCDEFGHIJK&accid=test&Action=PhoneUnDialed&Agent=agent-login-name&List=new-list-name&Phone=5559996666
TextOperations.php
Purpose |
- Requests executing an SMS operation on behalf of the account
|
Minimum required name‐value pairs |
- token — security component provided by DialedIn or obtained via Integration Settings
- accid — security component that identifies the DialedIn customer or its vendor; it corresponds to the FQDN prefix (ex: if customer/vendor FQDN is
test.chasedatacorp.com , accid = test)
- Action — the operation to be performed; allowed value is:
SendSms
|
Parameters (name‐value pairs) for Action SendSms |
- From — a phone number owned by the account from which the SMS message is to be sent
- To — the phone number to which the SMS message is to be sent
- Message — the content of the SMS message to be sent.
|
Optional Parameters (name‐value pairs) for Action SendSms |
- Agent — the login name of the agent for which the SMS message is sent on behalf of
- LeadId — an existing lead to which the SMS is to be assigned; corresponds to id from Default Fields.
|
Example (shown as GET):
https://api.chasedatacorp.com/HttpImport/TextOperations.php?token=ABCDEFGHIJK&accid=test&Action=SendSms&From=5553331111&To=5552226666&Message=Hello
CallOperations.php
Purpose |
- Performs an action on ongoing call
|
Minimum required name‐value pairs |
- token — security component provided by DialedIn or obtained via Integration Settings
- accid — security component that identifies the DialedIn customer or its vendor; it corresponds to the FQDN prefix (ex: if customer/vendor FQDN is
test.chasedatacorp.com , accid = test)
- Action — the operation to be performed; allowed values are:
ConferenceCall , TransferCall , TerminateCall , AvailableInboundAgents
|
Parameters (name‐value pairs) for Action ConferenceCall |
- Agent — the login name of the agent involved in the call
- Phone — the number to be conferenced
- PrivateConference — indication on whether the customer side of the call should be put on hold hence muted (
1 ), or not (0 ); 0 is the default.
|
Parameters (name‐value pairs) for Action TransferCall |
- CallId — identifier of the already established call to be transferred
- Phone — the destination number for the call transfer.
|
Parameters (name‐value pairs) for Action TerminateCall |
- CallId — identifier of the already established call to be terminated.
|
Parameters (name‐value pairs) for Action AvailableInboundAgents |
- DID — the phone number associated with the ring group
- CallId (optional) — identifier of the incoming call (to look up an associated Lead)
- CanBeOnCall (default is
0 ) — indication on whether an agent is considered available even if in another call
- CanBeOnBreak (default is
0 ) — indication on whether an agent is considered available while on a break state
- CanDoWrapUp (default is
0 ) — indication on whether an agent is considered available while on a call wrap state.
|
Examples (shown as GET):
https://api.chasedatacorp.com/HttpImport/CallOperations.php?token=ABCDEFGHIJK&accid=test&Action=ConferenceCall&Agent=agent-login-name&Phone=5553331111&PrivateConference=0
https://api.chasedatacorp.com/HttpImport/CallOperations.php?token=ABCDEFGHIJK&accid=test&Action=TransferCall&Phone=5553331111&CallId=5556661111
https://api.chasedatacorp.com/HttpImport/CallOperations.php?token=ABCDEFGHIJK&accid=test&Action=TerminateCall&CallId=5556662222
https://api.chasedatacorp.com/HttpImport/CallOperations.php?token=ABCDEFGHIJK&accid=test&Action=AvailableInboundAgents&DID=5553337777&CallId=5556663333
SkillListOperations.php
Purpose |
- Applies changes related to Skills, on Call Queues
- UpdatePriority sets skill priority, delay, and status for the specified Source DID; if no priority exists, a new one is added
- Reload applies any changes and reloads Call Queues.
|
Minimum required name‐value pairs |
- token — security component provided by DialedIn or obtained via Integration Settings
- accid — security component that identifies the DialedIn customer or its vendor; it corresponds to the FQDN prefix (ex: if customer/vendor FQDN is
test.chasedatacorp.com , accid = test)
- Action — the operation to be performed; allowed values are:
UpdatePriority , Reload
|
Parameters (name‐value pairs) for Action UpdatePriority |
- Priority (optional) — the priority to assign to the selected Skill on the queue associated with the selected DID Source
- Delay (optional) — the delay assigned to the specified Skill before the DID Source queue moves to the next skill
- Active (optional) — set the specified Skill to active (
1 ) or disabled (0 ) on the specified DID Source queue.
|
Parameters (name‐value pairs) for Action Reload |
|
Examples (shown as GET):
https://api.chasedatacorp.com/HttpImport/SkillListOperations.php?token=ABCDEFGHIJK&accid=test&Action=UpdatePriority&Skill=skill-1&Source=5552226666&Priority=10&Delay=30&Active=1
https://api.chasedatacorp.com/HttpImport/SkillListOperations.php?token=ABCDEFGHIJK&accid=test&Action=Reload
Power‑Import PHP Script
PHP is a server scripting language, where scripts are executed on the server; the result is returned to the browser as plain HTML. PHP scripts can collect form data, as well as add, delete, and modify data in the database. The default file extension for PHP files is .php
.
Note that within a PHP script you could actually send HTTP requests; that's not the intention here, but rather to perform the operations on the database in a more programmatic (controlled) manner.
In order to use PHP to insert, or update Contact (lead) records in the database, a PHP script would need to be developed; in order to work, this cunstom PHP script must include
the DialedIn PowerImportAPI
PHP script unmodified. This PowerImportAPI.php
file will be provided by DialedIn upon request.
Following are guidelines and examples on how all this works.
The first thing to do by a user script or procedure is to include the PowerImportAPI.php
file and instantiate the PowerImportAPI
class (defined in the file that was included). That class contains the necessary record array, public functions, and supporting variables and private functions needed to execute the desired operations (insert, update, or delete contact record).
When instantiating PowerImportAPI
, the following need to be considered:
- FQDN must be replaced with the corresponding value unique to the particular operation/group
- TOKEN must be replaced with the corresponding value, which is the integration token available in the integration settings for the particular operation/group (refer also to "Setting Up API Tokens" article).
The next thing is to define the data representing the Contact record to be handled; this is an Associative Array ($data
in the example that follows) containing pairs of Named Keys and Values, where each Named Key represents a Default Field as referenced in the System-Provided Contact Fields table in Custom Data, under General Tools and Data.
If Custom Fields also need to be accounted for, these fields must be defined in a sub-array with Named Key [extended]
, which contains a Named Key‐Value pair for each relevant Custom Field.
It's important to understand that Named Keys must match exactly a Default Field or a Custom Field, as applicable, and that both names and values are case‐sensitive in the database.
The values are set or read according to the behavior of each operation (function) performed (insert, update, or delete contact record).
It's also important to instantiate the variables containing the relevant Campaign (existing campaign), and Sub-campaign (existing sub-campaign, if any), so they can be passed to the PowerImportAPI
functions, where applicable.
Notice that these variables may represent a field in the Contact record; however, if they’re included in the $data
array, as well, they may create a conflict within a particular operation, in which case it will cause the operation to fail and generate an error.
At this point, the necessary constructs have been defined and we can now proceed to call a PowerImportAPI
function to execute an operation. The following example shows basic code to import one Contact record into the DialedIn CCaaS database using the ImportData
function. Other PowerImportAPI
functions can be used in a similar manner, according to their call signature.
It is up to the developer to determine how to loop over all Contact records that need to be processed, and populate or retrieve the values in the $data
, $campaign
and $subcampaign
variables (as it’s applicable for each operation).
The following example shows basic code to insert one telephone number into the DialedIn CCaaS DNC table using the InsertDncNumber
function.
The PowerImportAPI
class makes available several functions as follows; all functions perform the corresponding operation on a single record.
Contact Record Insertion
ImportData (
$dataArray,
$campaign,
$subcampaign,
$dialDups,
$dialNonCallables,
$duplicatesCheck )
|
- Inserts Contact (lead) record (
$dataArray ) into the DialedIn database
- Valid
$dataArray must be provided
- Valid
$campaign must be provided
$subcampaign is optional (can be empty string)
$dialDups and $dialNonCallables are reserved for future use (values will have no effect)
$duplicatesCheck indicates whether and how to check if the Contact is already in the database (based on $PrimaryPhone ), and whether to allow insertion if it indeed becomes a duplicate; the possible values are:
0 — check within the Campaign only; do not insert if it already exists (this is the default);
1 — insert without check;
2 — check across all Campaigns; do not insert if it already exists
- Success returns
true ; otherwise false
- If
false , sets error for retrieval via GetLastError .
|
InsertHotLead (
$dataArray,
$campaign,
$subcampaign,
$dialDups,
$dialNonCallables,
$duplicatesCheck )
|
- Inserts Contact (lead) record (
$dataArray ) into the DialedIn database, which is also set to be dialed with priority as soon as possible
- Valid
$dataArray must be provided
- Valid
$campaign must be provided
$subcampaign is optional (can be empty string)
$dialDups — set (1) or not set (0); if set, the Hot Lead will still be dialed even if determined to be a duplicate Contact (based on DuplicatesCheck ) and no other condition prevents the system from dialing it
$dialNonCallables — set (1) or not set (0); if set, the Hot Lead will still be dialed even if determined to be a non-callable Contact (including when the corresponding number is found in the DNC table) and no other condition prevents the system from dialing it
$duplicatesCheck indicates whether and how to check if the Contact is already in the database (based on $PrimaryPhone ), and whether to allow insertion if it indeed becomes a duplicate; the possible values are:
0 — check within the Campaign only; do not insert if it already exists (this is the default);
1 — insert without check;
2 — check across all Campaigns; do not insert if it already exists
- Success returns
true ; otherwise false
- If
false , sets error for retrieval via GetLastError .
|
InsertHotLeadWithTimezoneCheck (
$dataArray,
$campaign,
$subcampaign,
$dialDups,
$dialNonCallables,
$duplicatesCheck )
|
- Inserts Contact (lead) record (
$dataArray ) into the DialedIn database, which is also set to be dialed with priority as soon as possible if a time-zone check succeeds (check Contact and Campaign time zones to verify that the call would be within calling hours)
- Valid
$dataArray must be provided
- Valid
$campaign must be provided
$subcampaign is optional (can be empty string)
$dialDups — set (1) or not set (0); if set, the Hot Lead will still be dialed even if determined to be a duplicate Contact (based on DuplicatesCheck ) and no other condition prevents the system from dialing it
$dialNonCallables — set (1) or not set (0); if set, the Hot Lead will still be dialed even if determined to be a non-callable Contact (including when the corresponding number is found in the DNC table) and no other condition prevents the system from dialing it
$duplicatesCheck indicates whether and how to check if the Contact is already in the database (based on $PrimaryPhone ), and whether to allow insertion if it indeed becomes a duplicate; the possible values are:
0 — check within the Campaign only; do not insert if it already exists (this is the default);
1 — insert without check;
2 — check across all Campaigns; do not insert if it already exists
- Success returns
true ; otherwise false
- If
false , sets error for retrieval via GetLastError .
|
Contact Record Update
UpdateDataByLeadId (
$dataArray,
$campaign,
$subcampaign,
$identifier )
|
- Updates an existing Contact (lead) record (
$dataArray ) in the DialedIn database, identified by its system-generated unique id (default field) provided in $identifier
- Valid
$dataArray must be provided
- Valid
$campaign must be provided
$subcampaign is optional (can be empty string)
- Success returns
true ; otherwise false
- If
false , sets error for retrieval via GetLastError .
|
UpdateDataByClientId (
$dataArray,
$campaign,
$subcampaign,
$identifier )
|
- Updates an existing Contact (lead) record (
$dataArray ) in the DialedIn database, identified by its customer-defined client ID (default field ClientId) provided in $identifier
- Valid
$dataArray must be provided
- Valid
$campaign must be provided
$subcampaign is optional (can be empty string)
- Success returns
true ; otherwise false
- If
false , sets error for retrieval via GetLastError .
|
UpdateDataByPhone (
$dataArray,
$campaign,
$subcampaign,
$identifier )
|
- Updates an existing Contact (lead) record (
$dataArray ) in the DialedIn database, identified by its primary telephone number (default field PrimaryPhone) provided in $identifier
- Valid
$dataArray must be provided
- Valid
$campaign must be provided
$subcampaign is optional (can be empty string)
- Success returns
true ; otherwise false
- If
false , sets error for retrieval via GetLastError .
|
General Operations
LeadOperation (
$leadId,
$actionValue,
$action )
|
- Performs and operation on an existing Contact in the DialedIn database
$leadId corresponds to id from Default Fields
$actionValue — the operation to be performed; allowed value is (currently just):
DispositionLead
actionValue : disposition or Wrap-up Code to assign to Contact
|
AgentDialListOperation (
$action,
$agent,
$list,
$phone )
|
- Performs and operation on an Agent Dial List in the DialedIn database
$action — the operation to be performed; allowed values are:
CreateList
phone : (ignored)
DeleteList
phone : (ignored)
AddPhone
phone : telephone number (digits only) to add to an existing Agent Dial List
DeletePhone
phone : telephone number (digits only) to remove from an existing Agent Dial List
PhoneDialed
phone : telephone number (digits only) to be marked as Dialed on an existing Agent Dial List
PhoneUnDialed
phone : telephone number (digits only) to be marked as UnDialed (skipped) on an existing Agent Dial List
$agent — login name of the Agent upon which the Dial List operation is to be performed
$list — unique name of the Agent Dial List to which the operation is to be performed.
|
DNC Record
InsertDncNumber (
$number )
|
- Inserts (imports) DNC Number into the DialedIn database
- Updates an existing number to FTC DNC, making it non‐callable
- Valid
$number must be provided
- Success returns
true ; otherwise false
- If
false , sets error for retrieval via GetLastError .
|
DeleteDncNumber (
$number )
|
- Deletes (imports) DNC Number from the DialedIn database
- No effect on an existing Contact with that number
- Valid
$number must be provided
- Success returns
true ; otherwise false
- If
false , sets error for retrieval via GetLastError .
|
Error Retrieval
GetLastError ( )
|
- Retrieve the last error code and description (single string) that was set by the
$PowerImportAPI class
|
Lead Verification
GetResponse ( )
|
- Retrieve the last error code and description (single string) that was set by the
$PowerImportAPI class, when an Import/Insert method has returned true ; those methods are ImportData , InsertHotLead , and InsertHotLeadWithTimezoneCheck .
|
Questionnaire
In order to get some basic information that will aide in getting the initial DialedIn CCaaS system setup going, a questionnaire is usually provided (usually at the demo stage); for a successful setup, it is important to have a set of answers that are as detailed and accurate as possible. Following is some of the information requested.
Initial Setup Questionnaire
Date & Time |
Submissions date and time |
Company Name |
Formal company name |
Company Address |
Street / City / State / ZIP Code / Country |
Contact Name |
Name of contact person in the company |
Contact Email |
Email of the contact person in the company |
Contact Telephone Number |
Telephone number of the contact person in the company |
Call Center Mission |
Checkboxes to indicate main types of business activities (e.g. Sales / Marketing) |
Line of Business / Industry |
Industry field in which company is involved (e.g. Insurance) |
Business Success Measuring Factors |
Checkboxes to indicate KPI and factors used to measure success of the business:
- Agent Time to Answer
- Escalations per Ticket
- First Call Resolution
- Average Talk Time
- Agent Idle Time
- Post Call Satisfaction Ratings
|
Type of Contacts |
Type of contacts handled by the business (e.g. Consumers) |
Type of Calls |
Type of calls handled by the business (Inbound, Outbound, Both) |
Nationwide Calls |
Indicates whether handling nationwide calls (Yes / No) |
Most important Question That Must be Answered |
The most important question that ChaseData must answer during the software demonstration |
2nd Most important Question That Must be Answered |
The 2nd most important question that ChaseData must answer during the software demonstration |
3rd Most important Question That Must be Answered |
The 3rd most important question that ChaseData must answer during the software demonstration |
CRM Integration |
Whether currently using CRM software that requires integration with the ChaseData CCaaS system (Yes / No) |
Website Integration |
Whether would like integration from company website or landing page in order to have the ability for inquiries to be followed up (e.g. callbacks) from the ChaseData CCaaS system (Yes / No) |
Network Type |
Type of network currently set up at the business location (e.g. Hardwired Internet) |
Broadband Service Type |
Type of broadband internet connection in use at the business location (e.g. Cable) |
Computer Type |
Type of computers in use at the business location (e.g. MS-Windows based PC) |
Number of Agent Seats |
Number of agent seats used by the business |
Number of Agents |
Total number of agents employed by the business |
Describe Business Process |
Information about the business process that will allow effective configuration and customization of the DialedIn CCaaS system |
Setup Flow
Strategy Alignment
It's important to be prepared for the specific needs of the customer that requires the Initial Configuration; that way we can focus on those configuration items that are key to get them started for their business domain and their particular needs.
The first clues come from understanding the business type; what business are they in, do they make calls, do they receive calls, how much lead/contact segmentation is typical in their business, how many agents they have, whether agents are multi-functional or specialized, etc.
With that in mind, following are a few general guidelines to consider, as follows.
Question — Are the business needs purely for Outbound calls? This would be typical for legacy telemarketers, political campaigns, and organizations that are in charge of setting appointments, to give some examples.
Answer — Start with a single Outbound Campaign; consider a couple of sub-campaigns to introduce customer to segmenting leads, then define corresponding but simple Outbound Dial Priorities; include a couple of Agents with a standard Skill.
Question — Are the business needs purely for Inbound calls? This would be typical for those who just close sales (e.g. health insurance), or a customer support organization, for example.
Answer — Start with a single Inbound Campaign; set up a basic IVR tree (Call Flow); include a couple of Agents with a standard Skill.
Question — Are the business needs for a combination of Outbound and Inbound calls? This would be typical for complex sales organizations where they have separate qualifier (front) and closer groups.
Answer — Consider whether a Blended Campaign should be used, or separate Outbound and Inbound Campaigns would be more appropriate, usually by determining if same Agent can handle both (Blended) or Agent is assigned just one or the other (separate); on Outbound, ignore sub-campaigns for now, unless it’s a specific business requirement; on Inbound, set up a basic IVR tree (Call Flow); include a couple of Agents, with either a combined Skill or two different Skills.
There are certainly many other considerations, but for an initial setup or a trial, it’s best to start a workable configuration that is as simple as possible. This will get the customer started, who after training should be able to expand the initial configuration as needed.
The following diagram depicts the initial setup flow suggested here.
Pre-Setup
There are a few things that need to be completed before a DialedIn CCaaS setup is to be performed, as follows:
- Contract executed between Customer and DialedIn.
- Customer application space defined and configured on DialedIn CCaaS server(s), including Administrator account.
- DialedIn CCaaS Management Console and Agent Client installation links specific to Customer generated by DialedIn.
- If applicable, DID(s) set up for Customer.
1 – Requirements Verification
Refer to Requirements to verify that the following items meet the minimum requirements in the Customer environment:
- Workstation(s) where the Management Console and the Agent Client are to be installed and executed.
- IP network where those workstations operate.
- IP router handling that network.
Help Customer take corrective action where needed; if not able to resolve, reschedule for when Customer is expected to have resolved the issue(s).
2 – Management Console and Agent Client Installation
Refer to Installation under Management Console and under Agent Client; follow installation instructions using the installation links provided by DialedIn.
3 – Custom Fields
Perhaps the first thing to consider is the information that the Customer needs to save and use within the ChaseData system, for each lead or contact; if a corresponding field doesn't exist already in the system by default, Custom Fields would need to be defined, and that would be assigned to the corresponding Campaign. For example, there's a system-provided PrimaryPhone field, but the Customer may also have a need for storing a secondary or mobile phone number, as well. Refer to Custom Data under General Tools and Data.
4 – Campaign
For basic Campaign there's no need for other elements to be provisioned beforehand, although we have chosen to create Custom Fields first. Other elements could be added later on, as needed, such as Custom Script Pages, Dialing Rules, Call Queues, etc.
It is important that the Campaign type is set for the right activities, Outbound, Inbound, or Blended (there are also ‘Virtual’ modes for more specialized functions). Since we decided to first create Custom Fields, also make sure to associate the corresponding Adv. Table (Custom Data) to the Campaign.
5 – Agent Skills
Before we're ready to provision Agents, we should have at least one Skill provisioned beforehand to represent the Agent role.
Note that when a Skill is provisioned, to be of use it must be activated for one or more Campaigns, which is the key link between an Agent and a Campaign; nevertheless, this relationship can be established at any time, therefore a Skill can be provisioned before the Campaign.
Refer to Agent Skills under Accounts.
6 – Agents
Just like Campaigns, Agents are necessary for any call center activity to take place (with the exception of Virtual Campaigns); therefore, we proceed to provision a few Agents and assign them of the Skills provisioned.
Also like with Campaigns, a Skill does not have to be given to the Agent at this time, but without it the Agent will not linked to any Campaign and therefore not active for all practical purpose.
7 – Voice Messages
Both Outbound and Inbound calls may require some custom Voice Messages; if recordings are available already for uploading, use them, otherwise for the time being could just define Voice Messages using Text-To-Speech (TTS).
Depending on the Campaign type(s) to be used, refer to Outbound Voice Prompts and/or Greetings & Announcements. If using TTS, refer to define corresponding Voice Scripts first.
8 – Lead Import
At this point we should already have everything we need to handle calls without customized rules, except that we don’t have Leads (Contacts) to act upon. Therefore, it’s important to Import some Contacts at this time; just make sure that the column headers for the records to be imported match exactly (case-sensitive) both the Default Fields and the Custom Fields previously defined. Refer to Contacts Import and Custom Data.
9 – Outbound Sub-Campaigns and Dial Priority
We now look into a nice-to-have setup, but also often used by typical Outbound Call Management; segmenting Contacts (Leads) into Sub-Campaigns for defining Dial Priorities.
The first step is to create Sub-Campaigns with a sub-set of the Contacts of a Campaign; refer to Sub-CampaignsCampaigns under Campaigns.
The second step is to activate and assign a priority rule to one or more of these Sub-Campaigns; refer to Dial Priority under Outbound Call Management.
This applies only if Outbound Call Management is to be performed.
10 – Inbound Call Flow
The other nice-to-have setup, in this case often used by typical Inbound Contact Centers is provisioning a Call Queue (which determines how to find an agent to take the call) and optionally defining a corresponding Call Flow (which allows for caller interactive responses). Refer to Inbound Call Queues/Ring Groups and Call FlowsInbound Call Queues/Ring Groups and Call Flows under Inbound Contact Center.
This applies only if Inbound Contact Center functions are to be performed.
11 – Wrap-Up Codes
An important part of a call center is to be able to set the disposition of calls in a manner specific to their business rules, therefore it’s highly recommended that a basic set of Wrap-up Codes is defined. Refer to Wrap-Up Codes under General Tools and Data.
Planning Guide
We have already shown both a generic initial customer questionnaire and a basic initial setup sequence to get us started with a workable configuration. Next, we’re going to go a little further by presenting planning guides to help us start fine-tuning both Inbound and Outbound operations.
Inbound Call Center
As we know, the purpose of the Inbound Call Center is to receive, distribute, and process incoming calls in a way that matches business needs and conditions in an optimal manner.
The key aspect, therefore, of planning for an Inbound Call Center configuration is to understand the defining components of the DialedIn CCaaS system that correspond to the business rules.
So, we need to know what types of calls we will be processing in order to map them to Agent Skills; and we need to assign these skills to Agents.
We need to know the phone number (DID) where we expect these calls to come in; if there are more than one, we need to know any relationship between them (e.g. one may present options, while another one may go straight to the final call queue). We need to know what Voice Messages to play to the caller, and under what conditions are those messages played. We need to know what to do when there are agents available, when there are agents signed-in but not available, and when there are no agents at all.
We need to know the Campaign that provides supporting information, tools and rules for the agent that answers the call; for example, a Script and/or Form to provide and gather information related to the call. We need to know what is the corresponding information that is collected and/or maintained about the Contact related to the call.
We need to know how to disposition a call, in other words, what Wrap-up Codes to be made available to the agents.
Following is a suggested planning list with example entries.
Incoming Call Points |
Label |
Main-Number |
Support-Direct-Number |
Description |
Main general-purpose numbers |
Numbers that go straight to Support |
Numbers (DID) |
888-555-0001 888-555-0002 |
855-555-1110 |
Greeting Message |
Main-Greeting |
N/A |
Type |
IVR Tree |
Direct Number |
Decision Tree |
IVR-Main |
IVR-Support-Direct |
Routing Queue |
Queue-Main |
Queue-Support |
Decision Trees |
Label |
IVR-Main |
IVR-Support-Direct |
Description |
Actions corresponding to main IVR options menu |
Actions for special case responses |
Response |
0 - "for any other requests" 1 - "for general inquiries" 2 - "to reach support" 7 - "if you want to be called back" |
7 - "no agents... if you want to be called back" |
Action |
0 - Route to Queue 1 - Route to Queue 2 - Route to Queue 7 - Set a callback |
7 - Set a callback |
Action Data |
0 - Queue-Main 1 - Queue-Main 2 - Queue-Support 7 - N/A |
7 - N/A |
Voice Messages |
Label |
Description |
Type |
Media |
Main-Greeting |
Welcomes caller, presents all options, and requests a response |
Greeting |
main_greeting.mp3 |
Support-Wait |
Tells caller to wait while the system connects to next available agent |
Wait |
support-wait.mp3 |
Main-Leave-Message |
Requests caller to leave message after the tone |
Voicemail request |
main-leave-message.mp3 |
Support-Leave-Message |
Requests caller to leave message after the tone |
Voicemail request |
support-leave-message.mp3 |
Call Queues |
Label |
Queue-Main |
Queue-Support |
Description |
Agents that can take general-purpose questions |
Specialized support agents |
Agent Skill List |
Skill-List-Call-Center |
Skill-List-Support |
Next Skill Timeout |
2 secs |
0 secs |
Busy Agents Action |
Wait for an agent indefinitely |
Wait for an agent indefinitely |
No Agents Action |
Voicemail redirect |
Voicemail redirect |
Schedule |
24/7 |
24/7 |
Campaign |
Customer-Care-Campaign |
Support-Campaign |
Skill Lists |
Label |
Skill-List-Call-Center |
Skill-List-Support |
Description |
List of the skills of agents that should handle general-purpose calls, in priority order |
List of the skills of agents that should handle a support call, in priority order |
Priority/Agent Skill |
1 / Call-Center-Skill 2 / T1-Support-Skill |
1 / T1-Support-Skill 2 / T2-Support-Skill 3 / Call-Center-Skill |
Agent Skills |
Label |
Description |
Incoming Calls |
Outgoing Calls |
Manual Calls |
Call-Center-Skill |
Allowed to handle general customer care |
Yes |
No |
No |
T1-Support-Skill |
Allowed to handle basic to medium support issues |
Yes |
Yes |
No |
T2-Support-Skill |
Allowed to handle all types of customer care and support |
Yes |
Yes |
Yes |
Campaigns |
Label |
Description |
Agent Script and/or Form |
Contact Data |
Customer-Care-Campaign |
Provides scripts for agents handling a customer care call, identifies the information that is available for a contact, and related rules |
Customer_Care_Script.docx |
Customer_Fields.docx |
Support-Campaign |
Provides scripts and forms for agents handling a support call, identifies the information that for the contact, and related rules |
Support_Script_and_Form.html |
Customer_Fields.docx |
Wrap-up Codes |
Label |
Description |
For All Campaigns |
For a Specific Campaign |
Requested-Info |
Caller has requested product information |
Yes |
N/A |
Inquiry-Resolved |
General inquiry was handled satisfactorily |
Yes |
N/A |
Minor-Problem-Resolved |
A minor reported problem was resolved |
No |
Support-Campaign |
Major-Problem-Resolved |
A major reported problem was resolved |
No |
Support-Campaign |
General-Resolved |
Non-categorized request was resolved |
No |
Customer-Care-Campaign |
General-Unresolved |
Non-categorized request was left unresolved |
No |
Customer-Care-Campaign |
Outbound Marketing & Sales
As we know, the purpose of the Outbound Call Manager is to perform calls to prospective or existing customers (leads and contacts) according to business goals (e.g. marketing, sales, political campaigns, fund-raising, etc.) in a way that maximizes the use of resources (agents, lines, and time).
Planning for Outbound Call Management configurations involves many business and regulatory considerations which often influence each other. The complexity therefore requires careful analysis and a good understanding of how to map the needs and requirements to related components in the DialedIn CCaaS system.
We know that Outbound Call Management relies heavily on leads (contacts) and the rules on how, how often, and when to call them. The best way to define these rules is to group them together, which is what a Campaign is for.
The how considers things like Agent Skills, available dialing lines, dialing mode, scripts, forms; the how often considers things like dial sequence, drop rate, redialing; the when considers things like dialing hours.
Following is a suggested planning list with example entries.
Campaigns |
Label |
New-Sales-Campaign |
VIP-Campaign |
Lost-Customer-Campaign |
Description |
To generate new sales from contacts that have not been previously approached |
To contact key important potential customers |
To try to win back previous customers |
Caller ID |
Default |
555-333-7777 |
Default |
Agent Call Script and/or Form |
New_Sales_Script_and_Form.docx |
VIP_Script_and_Form.html |
Bring_Back_Script_and_Form.docx |
Agent Waiting Screen |
https://app.powerbi.com/view?r=abc |
N/A |
N/A |
Agent Paused Screen |
https://www.timeanddate.com |
https://www.brainyquote.com |
https://weather.com |
Contact Data |
Customer_Fields.docx |
Customer_Fields.docx |
Customer_Fields.docx |
Dialing Strategy |
Campaign |
New-Sales-Campaign |
VIP-Campaign |
Lost-Customer-Campaign |
Dialing Hours |
9 AM – 8 PM |
3 PM – 7 PM |
10 AM – 7 PM |
Lines per Agent |
2 |
1 |
3 |
Maximum Drop Rate Allowed |
0.02 |
0 |
3% - count only connected calls - include calls in last 30 days |
Dialing Order or Priority |
Dial newer leads first |
Dial in the order of the contact list |
No specific order, but give priority to contacts with fewer call attempts |
Dialing Optimization (Mode) |
Predictive – optimize based on number of lines, agents, drop ratio, etc. |
Preview – allow agent to review contact information before dialing |
Predictive |
No Answer Actions |
Campaign |
New-Sales-Campaign |
VIP-Campaign |
Lost-Customer-Campaign |
Rings to Determine No Answer |
6 |
4 |
4 |
Wait Time Before Redial |
4 hours |
N/A |
Immediate |
Redial Attempts Per Day |
2 |
1 |
1 |
Lifetime Redial Attempts |
10 |
5 |
10 |
Answering Machine Detection (AMD) |
Yes - Accurate (accuracy more important than delay) |
Yes - Optimized / Balanced |
No |
Leave Message |
Yes - once per day only |
Yes - once only |
No |
Wrap-up Codes |
Label |
Description |
For All Campaigns |
For a Specific Campaign |
Can be Called Again |
It's a Final State |
Generate a POST action |
Possible-Sale-Follow-Up |
Somehow interested and should try again |
Yes |
N/A |
Yes |
No |
sale_call_post_message.html |
Sale-Initiated |
Started transaction; need to follow up |
Yes |
N/A |
Yes |
No |
sale_call_post_message.html |
Sale-Completed |
Completed transaction |
Yes |
N/A |
Yes |
No |
sale_call_post_message.html |
Call-Back |
Can talk some other time |
Yes |
N/A |
Yes |
No |
sale_call_post_message.html |
Left-Message |
Machine answered; left message |
Yes |
N/A |
Yes |
No |
sale_call_post_message.html |
Not-Interested-For-Now |
nterested but check back in the future |
Yes |
N/A |
Yes |
No |
sale_call_post_message.html |
Not-Interested-Final |
Not interested |
Yes |
N/A |
No |
Yes |
sale_call_post_message.html |