780 likes | 1.01k Views
Design & Development Aheeva Education & Certification Services. Outbound Module. Outbound Campaigns. An advanced and flexible mechanism for optimizing agents’ time utilization Suites different business models Answering Machine Detection Four different dialing mode Predictive Progressive
E N D
Design & DevelopmentAheeva Education & Certification Services
Outbound Campaigns • An advanced and flexible mechanism for optimizing agents’ time utilization • Suites different business models • Answering Machine Detection • Four different dialing mode • Predictive • Progressive • Preview • Broadcast • Aheeva’s predictive dialer is the perfect tool to contact a list of clients efficiently • In this training you will learn how to use all the functions that are included in the Aheeva outbound module
Pre-requisites • A functional Aheeva CCS Manager for demonstration and practice purposes • Knowledge of • Agent management • Agent group management • Basic knowledge of • Asterisk’s configuration files • Aheeva’s routing scripts building • MySQL database • HTML programming with PHP
Agenda • Making sure all processes are running • Trunk configuration in Asterisk • Creating treatments • Creating filters • Do-Not-Call list settings • Defining prefix rules for your location • Defining time zone rules for your location • Creating calling lists • Live statistics for calling lists • Running outbound campaigns • Live statistics for outbound campaigns • Configuring Queues • Live statistics for queues • Customizing data screens (pop-up screens) • Reports for outbound campaigns
Processes • Making sure all processes are running
Step-by-step (1) • General • Prepare your calling list • Remove invalid phone numbers • Duplicates • Empty • Invalid chracters • Invalid length and format (In North America NXX-NXX-XXXX (N:2-9, X:0-9)) • Put your calling list in one of the three possible formats • Excel spreadsheet (.xls) • Comma separated values (.csv) • Text file (.txt) • Prepare a PHP or JSP screen-pop if required
Step-by-step (2) • In Asterisk configuration files • Configure the TRUNK variable in extensions.conf • For each agent, create a user in the appropriate technology file, depending on the device the agent will be using • iax.conf if the agent is using the Aheeva Starphone or the web-based AhevaPhone • sip.conf if the agent is using a SIP hardphone • zapata.conf if the agent is using an analog phone • If the agent is using the Aheeva Starphone application, then create an agent in agents.conf for each agent. No need to create such an entry if the agent is using the AheevaPhone or a hardphone
Step-by-step (3) • In Aheeva CCS Manager • Create the agent group associated with the queue • Create the agents • Create the Treatments, if necessary • Create the Filters, if necessary • Create the Do-not-call lists, if necessary • Define and load the Phone numbers Prefix rules • Define and load the Time Zone rules • Create and load the calling list, and assign any treatments, and filters to the calling list • Create the campaign and associate any calling lists, do-not-call lists, and the agent group with it • Load and start the campaign
Asterisk Configuration – TRUNK • Configure the TRUNK variable in extensions.conf • Make sure that the global variable TRUNK set at the beginning of extensions.conf is set up correctly to dial out • Examples of TRUNK: • Zap technology (E&M, PRI, etc.): TRUNK=Zap/g1 • IAX technology: TRUNK=IAX2/iax_client:secret@205.123.245.3 • SIP technology: TRUNK=SIP/sip_client:secret@205.123.245.3 • The TRUNK variable is used in the configuration file aheeva_dialplan.conf in the context ‘aheeva_ccs’ with with the extension ‘_OUT.’ in the context aheeva_ccs.
Asterisk Configuration – IAX • Create an IAX user of type ‘friend’ in iax.conf for each agent. Only for agents using the Windows Starphone or the AheevaPhone. • The user name is the agent’s ID • The entry must be similar to [1001] type=friend host=dynamic context=agents permit=0.0.0.0/0.0.0.0 disallow=all allow=ulaw
Asterisk Configuration – Agents • Create an agent in agents.conf for each agent. Only for agents using the Windows Starphone • Do not specify a password for the agent • The parameter musiconhold must be set to ‘none’ musiconhold => none agent => 1001,,Agent agent => 1002,,Agent
Treatments • A treatment defines actions that are performed when the dialer encounters a call result other than ‘answer’ • Example of a treatment: If the call result is ‘answering machine’, then call a client 10 times every 30 minutes • You can apply multiple treatments on a calling list • Call results are
Treatments facts • All information about the treatment is kept in the memory of the CTI. Unloading a campaign, or removing a calling list from a campaign will reset all treatments • If you need the dialer to stop taking new records from a calling list but keep on processing only the records with a treatment on, then you should keep the calling list associated with the campaign and set its weight to Zero • The treatment ‘Agent Unavailable’ is useful only when redials are scheduled as ‘Personal Callbacks’
Treatments setup • Add a treatment • Tenant Resources Treatments <Add treatment> • Fields • Name: Make the name self explanatory i.e. OnBusy_10Times_30Minutes • Description: Optional field • Call result: Drop down menu of all the possible call results • Order: The order in which this treatment is to be processed by the dialer • Attempts: Number of retries dialing this number • Interval: How often will dialer redial this number • Increment: Number of minutes by which the time between retries is increased • Active: Activate or deactivate the treatment
Filters • Filters help you dial specific numbers and sort remaining records for each calling list • Filters are the WHERE and ORDER BY clauses in a SELECT SQL statement
Filters setup • Add a filter • Tenant Resources Filters <Add Filter> • Fields • Name: Make the name self explanatory i.e. EasterTimeZone • Description: Optional field • Criteria: Where clause i.e. WHERE TIME_ZONE='EST' • Order by: The order by which the dialer should select the records through this filter i.e. ORDER BY RAND()
Do-Not-Call lists • The Do-Not-Call lists will make sure that certain numbers or patterns of numbers are not dialed when you are running a campaign • You can create different groups of Do-Not-Call rules and apply one or multiple groups to your campaign • The Global Do-Not-Call list is reserved for numbers that should never be dialed, from any campaign. Numbers such as the emergency services (911) or of people who wish to be removed from all of your calling lists
Do-Not-Call lists setup (1) • From the Aheeva CCS Manager you can • Create a Do-Not-Call list of numbers • Tenant Resources Do-not-call Lists Create a do-not-call list group • Add number to Do-Not-Call lists • Tenant Resources Do-not-call Lists Add numbers to a do-not-call list • Search campaigns for Do-Not-Call numbers in the lists • Tenant Resources Do-not-call Lists Search campaign for do-not-call list number • Display the number in a Do-Not-Call list • Tenant Resources Do-not-call Lists Display do-not-call list contents
Do-Not-Call lists setup (2) • Do-not-call rules are pattern matching on the phone numbers in a calling list • Adding numbers to a Do-not-call list consists in adding a rule to a list • Pattern rules are • EQUAL TO • NOT EQUAL TO • START WITH • END WITH • CONTAIN • DON’T CONTAIN • Example: Do not call numbers if they START_WITH 911
Prefix rules • Prefix rules determine the proper digits to prefix the phone number with in order to dial it correctly • The North American Numbering Plan specifies that you must dial ‘1’ before the area code when dialing a long distance number and ‘011’ when dialing an overseas number • Prefix rules are specific to your location • Prefix rules will automatically add the long distance prefix (1,011,…) to phone numbers when calling lists are loaded • You don’t need to define rules if the numbers on the calling list already have a prefix that is accepted by your telephony provider
cfg_calling_list_prefix • The name of the table that you populate to set prefix rules is: cfg_calling_list_prefix. You need to populate manually • CREATE TABLE `cfg_calling_list_prefix` ( • `DBID` int(11) NOT NULL auto increment, • `MATCH_TYPE` enum( 'EQUAL', • 'NOT_EQUAL', • 'START_WITH', • 'DOESNT_START_WITH', • 'END_WITH', • 'DOESNT_END_WITH', • 'CONTAINS', • 'DOESNT_CONTAINS' ) default NULL, • `MATCH_DATA` varchar(20) default NULL, • `PREFIX_DATA` varchar(10) default NULL, • `PRIORITY_IN_GROUP` varchar(10) default NULL, • `GROUPNAME` varchar(100) default NULL, • PRIMARY KEY (`DBID`), • UNIQUE KEY `DBID` (`DBID`)) • ENGINE=MyISAM
Example of prefix rules • INSERT INTO cfg_calling_list_prefix ( • `MATCH_TYPE`, • `MATCH_DATA`, • `PREFIX_DATA`, • `PRIORITY_IN_GROUP`, • `GROUPNAME`) • VALUES ('START_WITH','201','1','1','NORTH_AMERICAN_RULES'); • INSERT INTO cfg_calling_list_prefix ( • `MATCH_TYPE`, • `MATCH_DATA`, • `PREFIX_DATA`, • `PRIORITY_IN_GROUP`, • `GROUPNAME`) • VALUES ('START_WITH','809201','1','1','NORTH_AMERICAN_RULES'); • See more examples in prefix.sql
Time Zone rules • Time zone rules associate a time zone with a phone numbers • Time zone rules are specific to your location • Time zone rules will help you set the time zone for all the clients in the same calling list • Time zone rules are set after the prefix for long distance
cfg_timezone_rules • The name of the table that you will populate to set time zone rule is: cfg_timezone_rules. You need to populate manually • CREATE TABLE `cfg_timezone_rules` ( • `DBID` int(11) NOT NULL auto_increment, • `MATCH_TYPE` enum( 'EQUAL', • 'NOT_EQUAL', • 'START_WITH', • 'END_WITH', • 'CONTAINS', • 'DOESNT_CONTAIN' ) default NULL, • `DATA` varchar(50) default NULL, • `ASSOCIATE_TIMEZONE` varchar(10) default NULL, • `PRIORITY_IN_GROUP` char(3) default NULL, • `GROUPNAME` varchar(100) default NULL, • PRIMARY KEY (`DBID`), • UNIQUE KEY `DBID` (`DBID`)) • ENGINE=MyISAM;
Example of time zone rules • INSERT INTO `cfg_timezone_rules` ( • `DBID`, • `MATCH_TYPE`, • `DATA`, • `ASSOCIATE_TIMEZONE`, • `PRIORITY_IN_GROUP`, • `GROUPNAME`) • VALUES (324,'START_WITH','1201','EST','1','NORTH_AMERICAN_RULES'); • INSERT INTO `cfg_timezone_rules` ( • `DBID`, • `MATCH_TYPE`, • `DATA`, • `ASSOCIATE_TIMEZONE`, • `PRIORITY_IN_GROUP`, • `GROUPNAME`) • VALUES (648,'START_WITH','829','EST','1','NORTH_AMERICAN_RULES'); • See examples in timezonerules.sql
Calling lists • A calling list is a list of phone numbers and related information that the dialer will dial • The phone number in a calling list must be unique. A campaign can however have two distinct calling lists with duplicate phone numbers • A calling list can be loaded using the wizard from the Aheeva CCS Manager • To load a calling from the wizard, it must be in on of the three accepted format (.xls, .csv, .txt)
Calling lists facts • A calling lists corresponds to a table in the database • Deleting a calling list from the CCS Manager does not drop the corresponding database table • The maximum number of attempts set for the calling list will be in competition with the number of attempts for each treatment — the lower number will be the value accepted by the system • The dialing hours set for the calling list will be in competition with the dialing hours of the campaign — both must be satisfied to dial the number • The loading of large calling lists (more than 50,000 leads) takes a lot of resource on the server —we recommend that you undertake those loadings when the activities at the call center are at their lowest level: at night, for example • Aheeva does not provide a feature to execute treatments of type “the next in chain”. Those types of treatments should be done manually, by database administrators. • For broadcast campaigns, you must set the ‘extra data’ field to “broadcast” for each record on the calling list, and you must define a Routing Script that will be executed when the call gets answered. The first operation of the Routing Script must be IF(broadcast=true)
Calling lists setup (1) • Create and load a calling list • Tenant Resources Calling lists <Add calling list> • Aheeva CCS provides a multi-page wizard for creating and loading calling lists • On page 1 of the wizard you must specify: • List name: choose a significant name • Description: optional field • Associated Table Name: name of the database table associated with the calling list. A good practice is using the same name • Max Attempts: Number of times the dialer tries to reach those numbers • Active: Activate or deactivate the calling list
Calling lists setup (2) • On page 2 of the wizard you must specify: • File format: Excel spreadsheet, comma separated values, or plain text • Delimiter: When you choose the CSV format, you must specify the delimiter which is one of: come, semi-colon, tab, and space • Quote: When you choose the CSV format, you must specify the quote character which is a single or double quotation mark • Source File Name: Browse to select the file containing the calling list • Load Format: Select a calling list template saved during a previous loading of a similar calling list
Calling lists setup (3) • On page 3 of the wizard you see on the left hand the list of the standard fields that will be automatically part of the calling list, and on the right hand the fields and data of your calling list • The wizards tries to match the columns between the two lists when you click on the ‘AutoFills’ button • If the source file contains a header row, you can tell the wizard to discard that row by entering the number of rows to skip in the ‘Skip Rows’ field • To manually match columns, click a field on the table list and then click the corresponding field on the source file list • The ‘Clear All’ button clears the matches
Calling lists setup (4) • On page 4 of the wizard you will see the progress of the actual loading of the data from the source file into the database table: • Number of records processed • Numbers of rows inserted • Number of errors (duplicates, missing)
Calling lists setup (5-1) • Create and load a calling list • Tenant Resources Calling lists <Add calling list> • Aheeva CCS provides a multi-page wizard for creating and loading calling lists • On page 1 of the wizard you must specify: • List name: choose a significant name • Description: optional field • Associated Table Name: name of the database table associated with the calling list. A good practice is using the same name • Max Attempts: Number of times the dialer tries to reach those numbers • Active: Activate or deactivate the calling list
Calling lists setup (5-2) • Page 5 of the wizard lets you: • Specify the dialing hours for all records, for records where the dialing hours are not set in the source file, or for none • Specify the screen-pop by entering the full URL pointing to the screen-pop with any parameters you may need. Or you could just choose one from a list of defined URLs. The URL will populate the ‘extradata’ field in the calling list database. The URL can be set for all records, for records where the ‘extradata’ field is empty, or for none • Specify the ‘Phone number purification’ action. This let you decide whether to remove or keep non-numeric numbers • Specify the Prefix rules • Specify the Time zone rules and decide to apply them to all records, to records where the ‘TIME_ZONE’ field is not set, or to none
Calling lists setup (6) • Page 6 of the wizard gives you a resume of the execution of the operations specified on the previous page: • Status of setting the dialing hours • Status of setting the screen-pop in the extradata field • Status of purging non-numeric phone numbers • Status of applying the prefix rules • Status of applying the time zone rules
Calling lists setup (7) • Page 7, the last page of the wizard, gives you a general report on the loaded records • At this stage you have the possibility to save into a template the settings and rules you specified while loading this calling list. This allows you to bypass all these wizard screens by directly selecting the template to use for similar source files and calling lists
Calling lists statistics • Remaining records: Total in the database and in the current time zone • Records in process: Records on which there is a treatment, total in the database and that can be dialed in the next hour • Records in Filter: Total number of records filtered and in the current time zone • Percent completed: Percentage of the records already dialed and completed • Hit rate: How many records are being answered • Number of Dials, Answered, No answer, Answering Machine, SIT, Busy and Fax
Campaign setup (1) • Add a Campaign • Tenant Resources Campaigns <Add campaign> • On the ‘General’ panel specify: • Campaign name • Description • Number of ports • Caller ID • Active or not
Campaign setup (2) • The ‘Calling lists’ panel offers a list of all available calling lists • Select the calling lists by marking them as active • Specify the weight for each calling list. A weight is a relative value that tells the dialer the ratio of records to fetch from each list • Two calling lists A and B with weights 10 and 30 respectively mean that for every record retrieved from the list A the dialer will retrieve 3 from list B
Campaign setup (3) • The ‘Do-not-call lists’ panel assigns the blacklist groups to the campaign • You can have one or multiple groups assigned concurrently
Campaign setup (4) • Use the ‘Hours’ panel to specify, for each day, the beginning and the ending of the dialing times • The dialer takes into consideration the dialing hours set in the calling list and the dialing hours set for the campaign. Both must be satisfied in order to dial • Campaign: 9:00 -----------------------> 14:00 • Calling list: 11:00 ---------------------------> 16:00 • then the dialing hours will be 11:00 14:00
Campaign setup (5) • Panel ‘Mode’ is used to set the dialing mode and the appropriate parameters • Agent group: The group of agents handling the calls • Dialing modes: • Predictive: Dials in a way to keep the agent waiting time as low as possible • Progressive: Dials a number when there is an agent ready to handle the call • Preview: Sends the screen-pop to the agent prior to dialing the number. The agent decides when to do the dial • Broadcast: Dials and plays a pre-recorded message
Campaign setup (5) • If Predictive dialing then specify • Dialer takes into account statistic data of the last 20 minutes and determines the number of dials to launch in order to keep the agents waiting time as short as possible. • Optimization parameter: • Agent Busy Factor: calculated as the (total-talk-outbound-time + total-talk-inbound-time + total-wrap-up-time)/ total-login-time Target parameter indicates the time you want the agents to be busy • Overdial Rate: Forces an increase of decrease of the number of dials calculated by the dialer. The target value can be zero, positive or negative. When set to zero, the dialing rate is set to keep the agents busy. Target parameter of 10%: 100 dials 110 dials • Abandon rate (if overdial rate): The dialer will slow down and never exceed it • Enable or disable the Answering Machide Detection
Broadcast campaign setup • The setup of an outbound campaign running in Broadcast mode differs from a ‘normal’ outbound campaign • A Broadcast campaign is the ONLY type of campaign that must have a routing script associated with it • In the routing script associated with the broadcast campaign you must manually add a new Call property called ‘broadcast’ • The first statement of the routing script associated with the campaign MUST be IF(broadcast=true) • While loading the calling list of a broadcast campaign, the field ‘URL’ must be set to the string ‘broadcast’. This populates the ‘extradata’ in the database table • On the Campaign setup page in the CCS Manager, after selection the dialing mode ‘broadcast’, you must select the name of the routing script associated with the campaign
Campaign operations • Operations: • Load: The dialer will fetch and store in memory records with the field ‘RECORD_STATUS’ set to ‘Ready’ from calling list table and change it ‘Retrieved’ • Start: Starts dialing • Stop: Stops dialing but the retrieved records remain in the dialer memory • Unload: Flushes all records from memory and the records with the field ‘RECORD_STATUS’ set to ‘Retrieved’ will be changed back to ‘Ready’ • For every agent logged in, the dialer will fetch 20 records from the calling list table
Campaign statistics • Campaign statistics can be viewed in a graphical representation from the ‘Statistics’ panel of the campaign, or in a numeric representation in the ‘Campaigns’ panel part of the real-time statistics • In addition to the number of dialing results like Answered, No answer, Abandoned, Answering Machine, SIT, Busy and Fax, the real-time view shows the starting time, the status, the dialing mode, the target, and the number of dials