Added Campaign setting for Hopper Drop-Run triggering. Forcing the one-time hopper insertion of DROP status leads instead of standard hopper loading.

git-svn-id: svn://192.168.202.10@3314 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2020-11-11 20:16:00 +00:00
parent efa3b3796a
commit 0ff02d9165
7 changed files with 88 additions and 25 deletions
+3
View File
@@ -543,6 +543,9 @@ OTHER CHANGES:
153. Added optional display of parked call stats and SLA 1&2 percentages to the
Real-Time Report
154. Added Campaign setting for Hopper Drop-Run triggering. Forcing the one-time
hopper insertion of DROP status leads instead of standard hopper loading
+45 -16
View File
@@ -20,6 +20,7 @@
# - Q = No-hopper queue insert
# - R = Recycled leads
# - S = Standard hopper load
# - D = Campaign Drop-Run
#
# Copyright (C) 2020 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
#
@@ -96,10 +97,11 @@
# 190524-1228 - Fix for lead filters with 'NONE' in the filter ID
# 190703-1650 - Allow for single-quotes in state field
# 200814-2132 - Added support for Internation DNC scrubbing
# 201111-1359 - Added support for hopper_drop_run_trigger
#
# constants
$build = '190703-1650';
$build = '201111-1359';
$DB=0; # Debug flag, set to 0 for no debug messages. Can be overriden with CLI --debug flag
$US='__';
$MT[0]='';
@@ -1086,11 +1088,11 @@ $ANY_hopper_vlc_dup_check='N';
if (length($CLIcampaign)>1)
{
$stmtA = "SELECT campaign_id,lead_order,hopper_level,auto_dial_level,local_call_time,lead_filter_id,use_internal_dnc,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,dial_statuses,list_order_mix,use_campaign_dnc,drop_lockout_time,no_hopper_dialing,auto_alt_dial_statuses,dial_timeout,auto_hopper_multi,use_auto_hopper,auto_trim_hopper,lead_order_randomize,lead_order_secondary,call_count_limit,hopper_vlc_dup_check,use_other_campaign_dnc,callback_dnc from vicidial_campaigns where campaign_id IN('$CLIcampaign');";
$stmtA = "SELECT campaign_id,lead_order,hopper_level,auto_dial_level,local_call_time,lead_filter_id,use_internal_dnc,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,dial_statuses,list_order_mix,use_campaign_dnc,drop_lockout_time,no_hopper_dialing,auto_alt_dial_statuses,dial_timeout,auto_hopper_multi,use_auto_hopper,auto_trim_hopper,lead_order_randomize,lead_order_secondary,call_count_limit,hopper_vlc_dup_check,use_other_campaign_dnc,callback_dnc,hopper_drop_run_trigger from vicidial_campaigns where campaign_id IN('$CLIcampaign');";
}
else
{
$stmtA = "SELECT campaign_id,lead_order,hopper_level,auto_dial_level,local_call_time,lead_filter_id,use_internal_dnc,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,dial_statuses,list_order_mix,use_campaign_dnc,drop_lockout_time,no_hopper_dialing,auto_alt_dial_statuses,dial_timeout,auto_hopper_multi,use_auto_hopper,auto_trim_hopper,lead_order_randomize,lead_order_secondary,call_count_limit,hopper_vlc_dup_check,use_other_campaign_dnc,callback_dnc from vicidial_campaigns where active='Y';";
$stmtA = "SELECT campaign_id,lead_order,hopper_level,auto_dial_level,local_call_time,lead_filter_id,use_internal_dnc,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,dial_statuses,list_order_mix,use_campaign_dnc,drop_lockout_time,no_hopper_dialing,auto_alt_dial_statuses,dial_timeout,auto_hopper_multi,use_auto_hopper,auto_trim_hopper,lead_order_randomize,lead_order_secondary,call_count_limit,hopper_vlc_dup_check,use_other_campaign_dnc,callback_dnc,hopper_drop_run_trigger from vicidial_campaigns where active='Y';";
}
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
@@ -1129,6 +1131,7 @@ while ($sthArows > $rec_count)
$hopper_vlc_dup_check[$rec_count] = $aryA[24];
$use_other_campaign_dnc[$rec_count] = $aryA[25];
$callback_dnc[$rec_count] = $aryA[26];
$hopper_drop_run_trigger[$rec_count] = $aryA[27];
if ($hopper_vlc_dup_check[$rec_count] =~ /Y/)
{$ANY_hopper_vlc_dup_check = 'Y';}
@@ -1229,7 +1232,7 @@ while ($sthArows > $rec_count)
$rec_count++;
}
$sthA->finish();
if ($DB) {print "CAMPAIGNS TO PROCESSES HOPPER FOR: $rec_count|$#campaign_id\n";}
if ($DB) {print "CAMPAIGNS TO PROCESS HOPPER FOR: $rec_count|$#campaign_id\n";}
##### END check for active campaigns that need the hopper run for them
@@ -2615,15 +2618,38 @@ foreach(@campaign_id)
if ($DBX) {print " |$CCLsql[$i]|\n";}
}
##### Set default variables for standard hopper inserts #####
$cslrSQL = "called_since_last_reset='N' and";
$hopperSOURCE='S';
$hopperPRIORITY='0';
##### Load overrides if Hopper Drop-Run is triggered #####
if ($hopper_drop_run_trigger[$i] =~ /Y/)
{
$cslrSQL='';
$STATUSsql[$i]="'DROP'";
$list_order_mix[$i]='DISABLED';
$lead_order[$i]='DOWN LAST CALL TIME';
$hopper_level[$i]='20000';
$hopperSOURCE='D';
$hopperPRIORITY='99';
$stmtA = "UPDATE vicidial_campaigns SET hopper_drop_run_trigger='N' where campaign_id='$campaign_id[$i]';";
$affected_rows = $dbhA->do($stmtA);
if ($DBX) {print "CAMPAIGN Hopper Drop-Run RESET: $affected_rows|$stmtA|\n";}
if ($DB) {print "Campaign Drop-Run triggered for $campaign_id[$i] |$STATUSsql[$i]|$list_order_mix[$i]|$affected_rows|\n";}
}
##### Get count of leads that are dialable #####
if ($list_order_mix[$i] =~ /DISABLED/)
{
$stmtA = "SELECT count(*) FROM vicidial_list $VLforce_index where called_since_last_reset='N' and status IN($STATUSsql[$i]) and ($list_id_sql[$i]) and ($all_gmtSQL[$i]) $lead_filter_sql[$i] $DLTsql[$i] $CCLsql[$i];";
$stmtA = "SELECT count(*) FROM vicidial_list $VLforce_index where $cslrSQL status IN($STATUSsql[$i]) and ($list_id_sql[$i]) and ($all_gmtSQL[$i]) $lead_filter_sql[$i] $DLTsql[$i] $CCLsql[$i];";
}
else
{
if (length($list_mix_dialableSQL)<3) {$list_mix_dialableSQL="called_count < 0";}
$stmtA = "SELECT count(*) FROM vicidial_list $VLforce_index where called_since_last_reset='N' and ($list_mix_dialableSQL) and ($all_gmtSQL[$i]) $lead_filter_sql[$i] $DLTsql[$i] $CCLsql[$i];";
$stmtA = "SELECT count(*) FROM vicidial_list $VLforce_index where $cslrSQL ($list_mix_dialableSQL) and ($all_gmtSQL[$i]) $lead_filter_sql[$i] $DLTsql[$i] $CCLsql[$i];";
}
if ($DBX) {print " |$stmtA|\n";}
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
@@ -2640,7 +2666,7 @@ foreach(@campaign_id)
if ( ($lead_order[$i] =~ / 2nd NEW$| 3rd NEW$| 4th NEW$| 5th NEW$| 6th NEW$/) && ($list_order_mix[$i] =~ /DISABLED/) )
{
$stmtA = "SELECT count(*) FROM vicidial_list $VLforce_index where called_since_last_reset='N' and status IN('NEW') and ($list_id_sql[$i]) and ($all_gmtSQL[$i]) $lead_filter_sql[$i] $DLTsql[$i];";
$stmtA = "SELECT count(*) FROM vicidial_list $VLforce_index where $cslrSQL status IN('NEW') and ($list_id_sql[$i]) and ($all_gmtSQL[$i]) $lead_filter_sql[$i] $DLTsql[$i];";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows=$sthA->rows;
@@ -2839,7 +2865,7 @@ foreach(@campaign_id)
if ($hopper_vlc_dup_check[$i] =~ /Y/)
{$vlc_dup_check_SQL = "and vendor_lead_code NOT IN($live_vlc$vlc_lists)";}
$stmtA = "SELECT lead_id,list_id,gmt_offset_now,phone_number,state,status,modify_date,user,vendor_lead_code FROM vicidial_list $VLforce_index where called_since_last_reset='N' and status IN('NEW') and ($list_id_sql[$i]) and lead_id NOT IN($lead_id_lists) $vlc_dup_check_SQL and ($all_gmtSQL[$i]) $lead_filter_sql[$i] $CCLsql[$i] $DLTsql[$i] $dnc_blocked_lists_SQL $order_stmt limit $NEW_level;";
$stmtA = "SELECT lead_id,list_id,gmt_offset_now,phone_number,state,status,modify_date,user,vendor_lead_code FROM vicidial_list $VLforce_index where $cslrSQL status IN('NEW') and ($list_id_sql[$i]) and lead_id NOT IN($lead_id_lists) $vlc_dup_check_SQL and ($all_gmtSQL[$i]) $lead_filter_sql[$i] $CCLsql[$i] $DLTsql[$i] $dnc_blocked_lists_SQL $order_stmt limit $NEW_level;";
if ($DBX) {print " |$stmtA|\n";}
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
@@ -2893,7 +2919,7 @@ foreach(@campaign_id)
if ($list_order_mix[$i] =~ /DISABLED/)
{
$stmtA = "SELECT lead_id,list_id,gmt_offset_now,phone_number,state,status,modify_date,user,vendor_lead_code FROM vicidial_list $VLforce_index where called_since_last_reset='N' and status IN($STATUSsql[$i]) and ($list_id_sql[$i]) and lead_id NOT IN($lead_id_lists) $vlc_dup_check_SQL and ($all_gmtSQL[$i]) $lead_filter_sql[$i] $CCLsql[$i] $DLTsql[$i] $dnc_blocked_lists_SQL $order_stmt limit $OTHER_level;";
$stmtA = "SELECT lead_id,list_id,gmt_offset_now,phone_number,state,status,modify_date,user,vendor_lead_code FROM vicidial_list $VLforce_index where $cslrSQL status IN($STATUSsql[$i]) and ($list_id_sql[$i]) and lead_id NOT IN($lead_id_lists) $vlc_dup_check_SQL and ($all_gmtSQL[$i]) $lead_filter_sql[$i] $CCLsql[$i] $DLTsql[$i] $dnc_blocked_lists_SQL $order_stmt limit $OTHER_level;";
if ($DBX) {print " |$stmtA|\n";}
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
@@ -2950,7 +2976,7 @@ foreach(@campaign_id)
$modify_to_hopper[$rec_countLEADS] = $aryA[6];
$user_to_hopper[$rec_countLEADS] = $aryA[7];
$vlc_to_hopper[$rec_countLEADS] = $aryA[8];
$source_to_hopper[$rec_countLEADS] = 'S';
$source_to_hopper[$rec_countLEADS] = $hopperSOURCE;
if ($DB_show_offset) {print "LEAD_ADD: $aryA[2] $aryA[3] $aryA[4]\n";}
$rec_countLEADS++;
$rec_count++;
@@ -2996,7 +3022,7 @@ foreach(@campaign_id)
if ($hopper_vlc_dup_check[$i] =~ /Y/)
{$vlc_dup_check_SQL = "and vendor_lead_code NOT IN($live_vlc$vlc_lists)";}
$stmtA = "SELECT lead_id,list_id,gmt_offset_now,phone_number,state,status,modify_date,user,vendor_lead_code FROM vicidial_list $VLforce_index where called_since_last_reset='N' and ($list_mix_dialableSQL) and lead_id NOT IN($lead_id_lists) $vlc_dup_check_SQL and ($all_gmtSQL[$i]) $lead_filter_sql[$i] $CCLsql[$i] $DLTsql[$i] $dnc_blocked_lists_SQL $order_stmt limit $LM_step_goal[$x];";
$stmtA = "SELECT lead_id,list_id,gmt_offset_now,phone_number,state,status,modify_date,user,vendor_lead_code FROM vicidial_list $VLforce_index where $cslrSQL ($list_mix_dialableSQL) and lead_id NOT IN($lead_id_lists) $vlc_dup_check_SQL and ($all_gmtSQL[$i]) $lead_filter_sql[$i] $CCLsql[$i] $DLTsql[$i] $dnc_blocked_lists_SQL $order_stmt limit $LM_step_goal[$x];";
if ($DBX) {print " |$stmtA|\n";}
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
@@ -3060,7 +3086,7 @@ foreach(@campaign_id)
$modify_to_hopper[$rec_countLEADS] = $aryA[7];
$user_to_hopper[$rec_countLEADS] = $aryA[8];
$vlc_to_hopper[$rec_countLEADS] = $aryA[9];
$source_to_hopper[$rec_countLEADS] = 'S';
$source_to_hopper[$rec_countLEADS] = $hopperSOURCE;
if ($DB_show_offset) {print "LEAD_ADD: $aryA[3] $aryA[4] $aryA[5]\n";}
if ($DBX) {print " $w|$LM_results[$w]\n";}
$rec_countLEADS++;
@@ -3093,6 +3119,7 @@ foreach(@campaign_id)
&event_logger;
$h=0;
$DBinserted=0;
foreach(@leads_to_hopper)
{
if ($leads_to_hopper[$h] != '0')
@@ -3216,8 +3243,9 @@ foreach(@campaign_id)
{
if ($DNClead == '0')
{
$stmtA = "INSERT INTO $vicidial_hopper (lead_id,campaign_id,status,user,list_id,gmt_offset_now,state,priority,source,vendor_lead_code) values('$leads_to_hopper[$h]','$campaign_id[$i]','READY','','$lists_to_hopper[$h]','$gmt_to_hopper[$h]',\"$state_to_hopper[$h]\",'0','$source_to_hopper[$h]',\"$vlc_to_hopper[$h]\");";
$stmtA = "INSERT INTO $vicidial_hopper (lead_id,campaign_id,status,user,list_id,gmt_offset_now,state,priority,source,vendor_lead_code) values('$leads_to_hopper[$h]','$campaign_id[$i]','READY','','$lists_to_hopper[$h]','$gmt_to_hopper[$h]',\"$state_to_hopper[$h]\",'$hopperPRIORITY','$source_to_hopper[$h]',\"$vlc_to_hopper[$h]\");";
$affected_rows = $dbhA->do($stmtA);
$DBinserted = ($DBinserted + $affected_rows);
if ($DBX) {print "LEAD INSERTED: $affected_rows|$leads_to_hopper[$h]|\n";}
if ($DB_detail)
{
@@ -3230,8 +3258,9 @@ foreach(@campaign_id)
##### Auto-Alt-Dial if DNCC or DNCL are set to campaign auto-alt-dial statuses, insert lead into hopper as DNC status
if ( ( ($auto_alt_dial_statuses[$i] =~ / DNCC /) && ($DNCC > 0) ) || ( ($auto_alt_dial_statuses[$i] =~ / DNCL /) && ($DNCL > 0) ) )
{
$stmtA = "INSERT INTO $vicidial_hopper (lead_id,campaign_id,status,user,list_id,gmt_offset_now,state,priority,source,vendor_lead_code) values('$leads_to_hopper[$h]','$campaign_id[$i]','DNC','','$lists_to_hopper[$h]','$gmt_to_hopper[$h]',\"$state_to_hopper[$h]\",'0','$source_to_hopper[$h]',\"$vlc_to_hopper[$h]\");";
$stmtA = "INSERT INTO $vicidial_hopper (lead_id,campaign_id,status,user,list_id,gmt_offset_now,state,priority,source,vendor_lead_code) values('$leads_to_hopper[$h]','$campaign_id[$i]','DNC','','$lists_to_hopper[$h]','$gmt_to_hopper[$h]',\"$state_to_hopper[$h]\",'$hopperPRIORITY','$source_to_hopper[$h]',\"$vlc_to_hopper[$h]\");";
$affected_rows = $dbhA->do($stmtA);
$DBinserted = ($DBinserted + $affected_rows);
if ($DBX) {print "LEAD INSERTED AS DNC: $affected_rows|$leads_to_hopper[$h]|\n";}
if ($DB_detail)
{
@@ -3245,8 +3274,8 @@ foreach(@campaign_id)
}
$h++;
}
if ($DB) {print " DONE with this campaign\n";}
if ($DB) {print " VLC Dup Check Rejected: $vlc_dup_check_SKIP_COUNT\n";}
if ($DB) {print " DONE with this campaign, hopper inserts: $DBinserted \n";}
if ($DB) {print " VLC Dup Check Rejected: $vlc_dup_check_SKIP_COUNT \n";}
}
}
}
@@ -1047,7 +1047,8 @@ amd_agent_route_options ENUM('ENABLED','DISABLED','PENDING') default 'DISABLED',
browser_alert_sound VARCHAR(20) default '---NONE---',
browser_alert_volume TINYINT(3) UNSIGNED default '50',
three_way_record_stop_exception VARCHAR(40) default 'DISABLED',
pause_max_exceptions VARCHAR(40) default ''
pause_max_exceptions VARCHAR(40) default '',
hopper_drop_run_trigger VARCHAR(1) default 'N'
) ENGINE=MyISAM;
CREATE TABLE vicidial_lists (
@@ -4677,4 +4678,4 @@ INSERT INTO vicidial_settings_containers VALUES ('INTERNATIONAL_DNC_IMPORT','Pro
UPDATE system_settings set vdc_agent_api_active='1';
UPDATE system_settings SET db_schema_version='1610',db_schema_update_date=NOW(),reload_timestamp=NOW();
UPDATE system_settings SET db_schema_version='1611',db_schema_update_date=NOW(),reload_timestamp=NOW();
+4
View File
@@ -1338,3 +1338,7 @@ ALTER TABLE vicidial_campaign_stats ADD park_calls_today MEDIUMINT(8) UNSIGNED d
ALTER TABLE vicidial_campaign_stats ADD park_sec_today BIGINT(14) UNSIGNED default '0';
UPDATE system_settings SET db_schema_version='1610',db_schema_update_date=NOW() where db_schema_version < 1610;
ALTER TABLE vicidial_campaigns ADD hopper_drop_run_trigger VARCHAR(1) default 'N';
UPDATE system_settings SET db_schema_version='1611',db_schema_update_date=NOW() where db_schema_version < 1611;
@@ -1,7 +1,7 @@
<?php
# AST_VICIDIAL_hopperlist.php
#
# Copyright (C) 2019 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
# Copyright (C) 2020 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
#
# CHANGES
#
@@ -27,6 +27,7 @@
# 170409-1544 - Added IP List validation code
# 180310-2250 - Added optional source_id display
# 190716-2119 - Added rank
# 201111-1435 - Added Campaign Drop-Run load
#
$startMS = microtime();
@@ -484,6 +485,7 @@ P = <?php echo _QXZ("Non-Agent API hopper load"); ?><br>
Q = <?php echo _QXZ("No-hopper queue insert"); ?><br>
R = <?php echo _QXZ("Recycled leads"); ?><br>
S = <?php echo _QXZ("Standard hopper load"); ?><br>
D = <?php echo _QXZ("Campaign Drop-Run load"); ?><br>
File diff suppressed because one or more lines are too long
@@ -142,6 +142,7 @@ campaigns-auto_active_list_new Auto Active List New <QXZ>This setting will autom
campaigns-call_quota_lead_ranking Call Quota Lead Ranking <QXZ>This setting will allow you to choose a Settings Container which has the settings you want to use for Call Quota Lead Ranking. Default is DISABLED.</QXZ>
campaigns-call_count_limit Call Count Limit <QXZ>This enforces a limit on the number of call attempts for the leads dialed in this campaign. A lead may go over this limit slightly if Lead Recycling or Auto-Alt-Dialing is enabled. Default is 0 for no limit.</QXZ>
campaigns-call_count_target Call Count Target <QXZ>This option is only used for reporting purposes and has no effect on leads dialed. Default is 3.</QXZ>
campaigns-hopper_drop_run_trigger Hopper Drop-Run Trigger <QXZ>This setting, if activated, will ignore all hopper loading criteria for a single hopper run for this campaign and it will only load the DROP status leads from the active lists for the campaign into the hopper at the highest hopper priority, and once this single hopper run has happened, this setting will reset to N for this campaign and the hopper loading will go back to normal for the next minute when it runs. WARNING, when this runs it will not check to see if the lists have been reset, so you may be calling back DROP leads that were recently called. However, if the Drop Lockout Time has been enabled, that setting will be honored. Default is N for inactive.</QXZ>
campaigns-drop_lockout_time Drop Lockout Time <QXZ>This is a number of hours that DROP abandon calls will be prevented from being dialed, to disable set to 0. This setting is very useful in countries like the UK where there are regulations preventing the attempted calling of customers within 72 hours of an Abandon, or DROP. Default is 0.</QXZ>
campaigns-force_reset_hopper Force Reset of Hopper <QXZ>This allows you to wipe out the hopper contents upon form submission. It should be filled again when the VDhopper script runs.</QXZ>
campaigns-dial_method Dial Method <QXZ>This field is the way to define how dialing is to take place. If MANUAL then the auto_dial_level will be locked at 0 unless Dial Method is changed. If RATIO then the normal dialing a number of lines for Active agents. ADAPT_HARD_LIMIT will dial predictively up to the dropped percentage and then not allow aggressive dialing once the drop limit is reached until the percentage goes down again. ADAPT_TAPERED allows for running over the dropped percentage in the first half of the shift -as defined by call_time selected for campaign- and gets more strict as the shift goes on. ADAPT_AVERAGE tries to maintain an average or the dropped percentage not imposing hard limits as aggressively as the other two methods. You cannot change the Auto Dial Level if you are in any of the ADAPT dial methods. Only the Dialer can change the dial level when in predictive dialing mode. INBOUND_MAN allows the agent to place manual dial calls from a campaign list while being able to take inbound calls between manual dial calls.</QXZ>
@@ -347,6 +348,7 @@ campaigns-in_group_dial_select In-Group Manual Dial Select <QXZ>This option is o
campaigns-agent_clipboard_copy Agent Screen Clipboard Copy <QXZ>THIS FEATURE IS CURRENTLY ONLY ENABLED FOR INTERNET EXPLORER. This feature allows you to select a field that will be copied to the computer clipboard of the agent computer upon a call being sent to an agent. Common uses for this are to allow for easy pasting of account numbers or phone numbers into legacy client applications on the agent computer.</QXZ>
campaigns-qc_enabled QC Enabled <QXZ>Setting this field to Y allows for the agent Quality Control features to work. Default is N.</QXZ>
campaigns-qc_statuses QC Statuses <QXZ>This area is where you select which statuses of leads should be gone over by the QC system. Place a check next to the status that you want QC to review. </QXZ>
campaigns-qc_statuses_id QC Statuses ID <QXZ>This area is where you select which "QC_TEMPLATE" settings container will be used to determine the call statuses that are eligible for QC evaluation in this campaign. </QXZ>
campaigns-qc_shift_id QC Shift <QXZ>This is the shift timeframe used to pull QC records for a campaign. The days of the week are ignored for these functions.</QXZ>
campaigns-qc_get_record_launch QC Get Record Launch <QXZ>This allows one of the following actions to be triggered upon a QC agent receiving a new record.</QXZ>
campaigns-qc_show_recording QC Show Recording <QXZ>This allows for a recording that may be linked with the QC record to be display in the QC agent screen.</QXZ>
@@ -397,6 +399,7 @@ lists-local_call_time Local Call Time <QXZ>This is a setting for this list only,
lists-audit_comments Audit Comments <QXZ>This option allows comments to be moved to an audit table. No longer editable, but viewable along with the date-time-creator of each comment. Default is N. This is a part of the Quality Control Add-On.</QXZ>
lists-agent_script_override Agent Script Override <QXZ>If this field is set, this will be the script that the agent sees on their screen instead of the campaign script when the lead is from this list. Default is not set.</QXZ>
lists-qc_scorecard_override QC Scorecard Override <QXZ>This is the scorecard to be shown to the agent when evaluating a QC record. It will override any campaign setting, but ingroup QC settings still take top priority.</QXZ>
lists-qc_statuses_id QC Statuses ID <QXZ>This area is where you select which "QC_TEMPLATE" settings container will be used to determine the call statuses that are eligible for QC evaluation in this list. This will override the campaign's "QC Statuses ID" setting if it is set, but not ingroups. </QXZ>
lists-inbound_list_script_override Inbound Script Override <QXZ>If this field is set, this will be the script that the agent sees on their screen instead of the campaign script when the agent receives an inbound call and the lead is from this list. Default is not set.</QXZ>
lists-inbound_drop_voicemail Inbound Drop Voicemail Override <QXZ>If an inbound call associated with this list drops while in an Inbound Group queue, this is the voicemail box the call will be sent to if the Drop Action is set to go to a voicemail box.</QXZ>
lists-inbound_after_hours_voicemail Inbound After Hours Voicemail Override <QXZ>If an inbound call associated with this list triggers an after hours action after it has been sent to an Inbound Group queue, this is the voicemail box the call will be sent to if the After Hours Action is set to go to a voicemail box.</QXZ>
@@ -579,6 +582,7 @@ inbound_groups-routing_initiated_recordings Routing Initiated Recording <QXZ>Thi
inbound_groups-ingroup_rec_filename In-Group Recording Filename <QXZ>This field will override the Campaign Recording Filenaming Scheme unless it is set to NONE. The allowed variables are CAMPAIGN INGROUP CUSTPHONE FULLDATE TINYDATE EPOCH AGENT VENDORLEADCODE LEADID CALLID RECID. If your dialers have --POST recording processing enabled, you can also use POSTVLC POSTSP POSTARRD3 POSTSTATUS. These POST options will alter the recording file name after the call has been finished and will replace the post variable with the value from the default fields. The default is FULLDATE_AGENT and would look like this 20051020-103108_6666. Another example is CAMPAIGN_TINYDATE_CUSTPHONE which would look like this TESTCAMP_51020103108_3125551212. The resulting filename must be less than 90 characters in length. Default is NONE.</QXZ>
inbound_groups-qc_enabled QC Enabled <QXZ>Setting this field to Y allows for the agent Quality Control features to work. Default is N.</QXZ>
inbound_groups-qc_statuses QC Statuses <QXZ>This area is where you select which statuses of leads should be gone over by the QC system. Place a check next to the status that you want QC to review. </QXZ>
inbound_groups-qc_statuses_id QC Statuses ID <QXZ>This area is where you select which "QC_TEMPLATE" settings container will be used to determine the call statuses that are eligible for QC evaluation in this ingroup. This will override both campaign and list "QC Statuses ID" settings. </QXZ>
inbound_groups-qc_shift_id QC Shift <QXZ>This is the shift timeframe used to pull QC records for an inbound_group. The days of the week are ignored for these functions.</QXZ>
inbound_groups-qc_get_record_launch QC Get Record Launch <QXZ>This allows one of the following actions to be triggered upon a QC agent receiving a new record.</QXZ>
inbound_groups-qc_show_recording QC Show Recording <QXZ>This allows for a recording that may be linked with the QC record to be display in the QC agent screen.</QXZ>
@@ -1117,6 +1121,8 @@ settings-agent_screen_colors Agent Screen Colors <QXZ>This feature allows you to
settings-agent_chat_screen_colors Agent Chat Screen Colors <QXZ>This feature allows you to set the different colors that are used for the users chatting within the internal chat window in the agent screen. These can be defined in the Screen Colors section, and only the five standard and three alternate colors are used. Default is default, for a standard set of eight colors</QXZ>
settings-label_hide_field_logs Hide Label in Call Logs <QXZ>If a label is set to ---HIDE--- then the agent call logs, if enabled on the campaign, will still show the field and data unless this option is set to Y. Default is N.</QXZ>
settings-qc_features_active QC Features Active <QXZ>This option allows you to enable or disable the QC or Quality Control features. Default is 0 for inactive.</QXZ>
settings-qc_claim_limit QC Claim Limit <QXZ>This option allows you to put a limit on the number of QC records an agent can claim for themselves without finishing them. Default is 3.</QXZ>
settings-qc_expire_days QC Expire Days <QXZ>This option allows you to limit the number of days an unclaimed QC call will be available to claim and evaluate. Default is 3 days.</QXZ>
settings-default_webphone Default Webphone <QXZ>If set to 1, this option will make all new phones created have Set As Webphone set to Y. Default is 0.</QXZ>
settings-webphone_systemkey Webphone System Key <QXZ>If your system or provider requires it, this is where the System Key for the webphone should be entered in. Default is empty.</QXZ>
settings-default_codecs Default Codecs <QXZ>You can define a comma delimited list of codecs to be set as the default codecs for all systems. Options for codecs include ulaw, alaw, gsm, g729, speex, g722, g723, g726, ilbc, opus, slin, g719,... Default is empty.</QXZ>