Patch 8.1.0

TLMessenger Text Message (SMS) Canned (Preset) Responses is finally here…it’s finally here.
You asked for this one for quite a while, so here it is! With some advanced features as well! FYI, for details, open up a SMS window, click the “?” icon next to the chat tab in TLMessenger.

Canned Responses ( Present Text Messages )

  • There is a new tab in the TLMessenger window, click it and it should fetch your canned responses.
    • Canned Responses are a mix of account and user based responses.
    • If you have an account based canned response it will not be editable.
    • Some user canned responses can be set to not be editable.
    • Canned Responses can be set to be invisible to agents (to be used instead of automation via dispositions).
    • The interface will allow you to label and set text to automatically send with the text.
    • There are two buttons: one to fill your text out or use it as a template, and the other is fire and forget (pressing it will reopen your chat window).
    • You can only have one Account or User Canned Response per Response key. It will error otherwise.
    • For users: keys are automatically made based on the Text Label.
    • For Admins: keys can be customized and and edited.
    • You can use a Key in a Status Disposition (or anywhere for that matter) and it will run the string autofill a second time to load the Response.
    • You can delete canned responses you created or own.
    • You can edit canned responses you created or own.
  • Created Autofill Model so it can be used throughout the system and reestablish order.
  • See Help Icon in the CRM for most details information.

Vendor Performance

  • Added some Links in the Vendor Performance Report so you can easily (and exactly) see what leads or sales are behind the numbers.
  • Added Ignore 0 Cost Leads Filter.

Policy Tags

  • Policies can now be tagged during disposition.
  • Tags can be added, removed, or dropped.
  • For the moment this can only occur with Policy Statuses.
  • Policy Tags are like permanent / semi-permanent statuses that can not only store the tag but when and whom they were added by. There is even a hidden log that stores when a tag was added, dropped, or removed.
  • Policy Tags can be searched from the Explore Section and brought in as individual or aggregate columns.
  • Tons of workflows can be created to your needs using tags!

Live Agents

  • Limited Auto Refresh to 3 Seconds
  • We now turn Auto Refresh off at around 1:00 AM Local Time for those of you who just love to keep it running all night and through the reboot…
    • Possible Future Change: Will Redirect you to Admin Dashboard.
  • The Live Agents page will no longer spam “Auto Refresh”! Instead it will animate the Auto Refresh to spin every time it runs refresh.

Phones API

  • Added new “Phones” Suppression List API so you can have Vendors Query against numbers you already have (in bulk) instead of one by one.
    • JSON Output, but also Supports CSV Output
    • Will give you a True / False next to each number you sent in.
    • Supports Dirty Numbers, and will clean them for you (ie: 555.555.5555 )
    • Can pass in phones as an array or comma separated values.
    • Can request list of existing, missing, or all.

Other Updates

  • Added “Re-Enroll” as a rewrite type.
  • You can now send Documents via SMS from Documents on a Lead that were not previously sent via SMS.
    • Previously it was possible but since the documents are natively not public it needed the public flag to be set, as well as a shortcode generated.
  • Added Turning 65 Logo on Info Window
    • This will show a Turning 65 Logo only when the days to 65 is set in Settings -> Options
  • Added FEMA Declared and FEMA Ends to FEMA logo on hover when visible.
  • Added “Total Duration” which calculates Premium x Duration if it exists which will be along side “Total Annual”
  • Fixed Hoverover Descriptions on Policy Calculation Fields
  • Added More Memory Limit and timeout time to Egress API
  • Fixed issue with Validation Rules on New Policy Statuses.
  • Added DISPO to TLDialer Statuses so it can now be searched in TLDialer Sections.
  • Minor visual fix to new Policy Tag Icon when empty.
  • Added Icons, colors and information to the Lead Statuses table for missing Lead Status Triggers. Policy Statuses will be next.
    • Was missing “Tags Add, Remove and Drop, SMS, Email, Dispo Hangup, Dispo Pause”
  • You can now “Ctrl + Click” the Load Icon in Filters to copy the link to give to someone else.
  • Filter ID’s have been added to the Dropdowns to make them easier to see.
  • Added First Contact Duration as a Filter in TLDialer Leads.
  • Fixed an issue with people using LGHTBL as a color, it is not a color…and VICI does not allow color names longer than 7 characters.
  • Removed Max Callbacks from Callbacks API so it doesn’t error.
  • Added XML Parser to show XML as JSON after formatting.
  • Standardized XML Notation between the Node Service and TLD Itself.
  • Added Rewrite as a Required Field in Products.
  • MMS Documents on a Lead can now be sent as a SMS without copying it, instead the document becomes public to send via SMS.
  • Fixed typo “Intructions” on Public Vendor Instructions Link button.

Patch 8.0.1

Our latest updates introduce some new features and functionality and some Qualify of Life updates. Most of these are edge cases.


  • A List of Banned Words and Phrases can be added to your account now under Settings -> Options -> Features.
  • Please enter a comma separated list of the words you want to return an error when your agents send an SMS
  • Some common banned phrases have already been provided internally such as “test”, etc.

Dispositions (Statuses)

  • Statuses can now be configured to Hangup on Dispo
  • Statuses can now be configured to Queue Pause on Dispo


  • We are now requiring all endpoints to be accessed via SSL. This may break some integrations where people are not using SSL to communicate with TLD
  • Unfortunately, this is a PCI and HIPAA Requirement, we can no longer support integrations that cannot communicate over SSL as an edge case requirement.
  • This edge case was added many years ago, hopefully everyone has switched over to being compatible with SSL by now.

Self Service: Account Seats and Dialer Seats

  • You can now add or reduce dialer seats on your own with the Add / Remove Seats button on the users page.
  • Only Superadmins, and those with the change_seats permission can do this. Requires a superadmin to assign this permission.
  • Prorations for new seats are automatically logged in our new invoicing system we are currently working on, and will show up on your next invoice.


  • Added Troubleshooting Steps Links for TLDialer and TLDSIP to Support Menu

New Report : Sales Breakdown

  • Shows 5 different Sections
    • Breakdown by Carrier
      • Filterable
    • Breakdown by Vendor
      • Filterable
    • Breakdown by Set 1 (User Groups)
      • Choose Set2 User groups in Filters
    • Breakdown by Set 2 (User Groups)
      • Choose Set2 User groups in Filters
    • Breakdown by Carrier and User Groups
      • Filters should be selected including both Carrier and User Groups.
    • Breakdown by Agent
      • Coming: Breakdown by Agent and Carrier
      • Coming: Breakdown by Agent and Carrier and Vendor
    • Allows you to run reports for any date range.

Chrome 92 Breaking Changes

  • Implemented a fix to remove preloaded media elements since Chrome 92 breaks the WebRTC WebPhone when more than 75 media elements are loaded, effecting people with more than 4 cluster servers.


  • Changed the way we detect the Recording Status so it should always be accurate.
  • Changed the way we show the end time, so unset end times will now calculate bases off the start time and duration if it doesn’t exist.
  • For In Progress Recordings, you can now see the current duration based on start time and current datetime.

FTP Recordings Backup Scripts Modification

  • EasyHealth FTP Backup Naming Conventions are now supported.
    • Requested Format: LeadID | PolicyID (if applicable) | ANI | DNIS | Call type (outgoing/incoming) | Timestamp
      • Outbound: Lead ID -> Outbound CallerID -> Clients Number -> outgoing -> timestamp
      • Inbound: Lead ID -> Clients CallerID Number -> Inbound DID Number Dialed -> incoming -> timestamp

Verification Validation Options

  • Dupe Check for Sold Policies on other leads with same SSN.
  • Validate Date Effective is in not in the past.


  • Now supports 10 Alternate Dupe Criterion instead of 5.
  • Added MRN to the Alternate Dupe Check Criterion Fields.

Ingress API

  • Add Tags to lead via API.
    • Requires lead_id, leads, or lead_ids in that order, only one will work.
    • Requires tags
      • Can be mixed Tag ID’s or Tag Names
    • Tags and Leads ID’s can be passed as array or comma separated or pipe separated
    • Currently only Supports Lead Tags, Policy tags will be available in a future release.
  • Added Callbacks to Lead in API
    • Disposition can now also be sent via this API when a callback is set.


  • Payload Type “Query” can now be set so that Form values will be added to a Query string for older systems that do not respect the form body.
    • Make sure to NOT append the “?” at the end of the URL.
  • Callbacks data can now be sent along with lead data
    • Callback 1 is always the latest callback. If you want only one callback to be sent on relay, change the callback number label from callbackx_ to callback_ and set the max callbacks to send to 1.

Automated CSR’s

  • Now support Plan, Carrier, and Product Filters
  • Now support negative days in the future.
    • If the negative days in the future would be earlier than TODAY, the CSR will be set for TODAY.
      • For Example: 90 Days BEFORE Effective Date, for Prescription Drug Plan Offerings of a Medicare Advantage Plan.
  • Now supports Other Date fields to base the CSR off of such as Effective Date instead of the current date.

Contact Form

  • We are now trimming whitespaces from left and right of application_number, policy_number and member_id

Admin Dashboard

  • Added support for PPA costs for PPA Vendors (Price Per Aquisition)
  • When PPA Exists, the Admin dashboard will set the PPA and PPA Total to the actual total and then split into two new boxes with the PPL and PPA separately.
    • CPA Calculations will be based off the combined PPL And PPA
  • Added Cost per Vendor to the New Lead By Vendor Section

General Updates

  • Added Post Dates filter to Explore Policies
  • Fixed issue with View Logs being sorted by Lead ID on Agent Dashboard instead of Log ID.
  • Fixed an issue with Documents when a file does not exist.
  • Optimized Tags Query on leads to be much faster.
  • Reset and Load Filters NO LONGER Grey out when a query gets stuck and the spinner is shown.
    • We may be adding a stop query button in the future.
  • Added Audio and TLDialer Troubleshooting links in Support Section
  • Added link to our Slack Workspace in Support Section
  • Removed Google+ Link from Support section as it no longer exists.
  • Balto Stop command can now be set on Disposition in Options -> Integrations under Balto tab. Choose the dispositions you want to fire the command in the multi-checkbox. This avoids flooding the relay system.
  • Added Ignore Zero Cost Leads to Vendor Logs so you can only report on leads that you should have paid for.

Patch 8.0.0

Get ready, this is over a years worth of patch notes, we finally got these sorted and are ready to release patch notes on a more regular schedule again. Here we go!


Admin Dashboard

  • Added average premium lead to admin dashboard.

Agent Dashboard

  • We have prettied up the Agent Dashboard a little and are looking for feedback!
  • Updates
    • Moved the link icons to the left side to declutter the screen.
    • Added “Center” and “Right” Columns for adding modules.
    • “Today Module”
      • All % up and down arrows are related to changes between day’s performance and yesterday’s performance from the beginning of yesterday to the CURRENT time of yesterday.
      • Stats
        • Apps Today
        • Policies Today
        • Prospects Today
        • Sales Today
      • Today’s Callbacks
  • What else do you think would help your agents at the beginning of the day or for “at a glance” data on the dashboard?

Lead/Policy/Dependent Explorer

  • Explore leads now has leads send, email leads, mass edit, merge leads, print leads, move leads functionality.
  • Modified explore leads to allow mutliple types of resets.
  • Fixed “Sort” and “Group By” in the options tab of the lead/policy/dependent explorer. Thanks for the report.
  • Tags are now searchable in explore.
  • Added lead and policy tags to explore.
  • Added “Active Policies” and “Inactive Policies” on leads table in explore.

My Business

  • My CSR’s now will work via user, unassigned and user groups assigned.
  • Added my missed calls section for AGENTDIRECT calls and agent misses.
  • Fixed CSR calendar query to work with user groups.


  • Added a large modal popup that lets the agent know they navigated away from TLDialer, reset their session, and lost their calls. For technical reasons we are unable to show a popup to stop the process because we would lose the ability to properly cleanup the data after the agent does so. We are currently looking into technical workarounds for this but it seems to be a browser limitation.
  • Added a “Sync Agent Licenses with State Route” tool in Mass Edit that will allow you to add users to state route groups by prefix based on the user’s licenses set in Users -> Licenses.
  • Fixed an issue where an agent dispositioning a lead without saving it could remove the vendor_lead_code from the ViciDial lead.
  • Fixed an issue where an agent dispositioning a lead without saving it could ignore the qualification timout.
  • Fixed an issue where an agent on a dead call waited longer than the qualification timeout to hangup the call and did not clear the cost properly.
  • Fixed an issue where a lead posted in via add_lead_url would not be considered new and start the qualification countdown timer when the inbound was actually taken.
  • Added Puerto Rico to TLDialer state lists.
  • Added Import Row as the inbound number received on nnbounds since it wasn’t being used for anything else.
  • Fixed an issue with the lead switcher where the vendor_lead_code was not being removed from the switched lead due to a ViciDial sync issue.
    • This was causing calls that came back in to still load the incorrect lead and reassociate it yet again.
  • Added the original ViciDial lead ID into the lead switcher logs so we know whence it came.
  • Fixed an issue when unlinking leads. Now the previous lead automatically becomes orphaned to make things easier.
  • Added Count #’s and checkboxes to ingroups table. Mass edit coming soon!
  • Search function now works for the inbound groups table.
  • Added a giant modal popup Medicare / CMS violation notification that shows to an agent when a client is on hold more than X minutes.
    • The time for the popup is is configurable.
    • Added an extra dismiss button in the middle of the Agent CMS notification.
    • CMS specifications state that a client should be consulted before or at the 2 minute mark if they are to be left on hold for any longer.
    • Agents should unpark the client and notify them of the reasoning for the wait time if necessary.
  • Added first contacts filters to TLDialer -> Leads.
  • We no longer allow logins to the dialer if you are not registered to every dialer server. This prevents ghost logins.
  • TLDialer should now work on Firefox.
  • Added more STUN server options.
  • TLDialer can now be used for reporting only on a ViciDial System without running the main process queries or allowing the agent to log in.
  • Added option to disable the agent interface only to lock out agents if we need to do testing or maintenance.
  • Optimized load balance checker query.
  • TLDialer will now update a live agent properly when changing ingroups and ingroup settings via TLD User Edit or Mass Edit. Agents no longer need to log out and back in.
  • Added lists meta as joinable and searchable in TLDialer -> Leads.
  • Added carrier table to calls table as a JOIN on the UniqueID of the call so you can see the carrier response.
  • Updated inbound autofill to work on update as well as lead creation on inbound.
  • We now prevent users from jumping onto TLDialer before IP authentication has completed.
  • Added feedback to TLDialer hangup.
  • Manually set called since last reset to inbound leads so they don’t immediately get auto dialed if they are in a list that also autodials. Apparently this is not done by ViciDial itself.
  • Fix for blank transfers if an agent forgets to type in a number.
  • Added a feature to ring and popup that calls are in queue and harass agents so despite being unable to directly access those calls (as they’re handled by the dialer), they know the phones are ringing.
  • On login, we now clear ring Caller ID just in case.
  • Added an auto-dial limiter so you can’t hurt yourself accidentally.
  • Users can no longer manually dial the number of the same lead that they already have loaded.
  • TLDialer queues can now be hidden by specific user groups.
  • Mass edit TLDialer lists should no longer clear reset times unless you check the clear reset times option.
  • Transfer Presets can now be used per campaign, along side the global transfer presets.
    • One of the transfer preset columns has been reserved for the color of the transfer.

TLD Recordings

  • Added the ability to mass download recordings in TLDialer -> Recordings in bulk as a .zip file of .mp3’s only. Works with clusters servers.
  • Added the ability to download ALL recordings on a contact as a .zip file of .mp3’s only. Works with cluster servers.
  • All downloaded recordings get logged in Logs -> Exports, and flagged as PHI and PCI data exports because we can’t be certain what was said on the recordings. Please be mindful.
  • Public recording links can now be generated and shared with clients. The link will last for 1 hour and then disable itself. It cannot be downloaded, only played using the browser. Only users with permissions can create these links.
  • Added lead entry date and other filters to public recordings.
  • Add ability for admin staff at TLD to omni lock recordings if we detect odd behavior.

Live Agents

  • Added ability to edit user and state routes from the Live Agents page.
  • Added user group role filters for Live Agents.
  • Live Agents now has a queue filter.

Agent CPA

  • Added average grade and average rank.
  • Added Conversions, Conversions/New Leads, Conversions/Calls, and Conversion CPA.
  • Added totals at the bottom of the table.
  • Added a “Copy to Clipboard” button for easy pasting into Excel/Google Sheets.
  • Changed penalty calculation to be accurate.
  • When dividing by 0, we now show the infinity symbol (∞). Infinity (∞) and negative infinity (-∞) are now sortable, and work logically.
  • Custom filters on this report will now show the proper name and icon when loading.
  • List ID now filters first contacts properly.
  • Added “Rewrite” filter for sales in Agent CPA report.
  • Made TLDialer tab default tab on open for Agent CPA user screen.
  • Fixed an issue with ViciDial users in the Agent CPA report.
  • Added CSR user group to notes.
  • Added ability to edit user and state routes from the Agent CPA report.
  • Fixed first contacts and Agent CPA report to work with our new standardized TLDSRVDAD extension for state routing.
  • Added new filters in Agent CPA report: First Contact List Filter, Call List Filter, Call Campaign Filter, and Call Status Filter.
  • Added wrap up time, wait sec, average wait sec, and active sec to Agent CPA.
  • Agent CPA now has user group and TLD user group filters.
  • Added Policy CPA to Agent CPA report.
  • Added carrier filter to Agent CPA.
  • Added to Agent CPA report: transfers, external_transfers, internal_transnfers, appointments, and converted_appointments.


  • Dispositioning leads now generates first contacts instead of relying on the Agent CPA report to do so.
  • You can now send an email via lead conversion
  • Added “Financial” as a section you can add custom fields to, this section always existed but was not in the custom fields dropdown.
  • Added label options and custom sizes for middle name and county lead fields.
  • Broke up address row so it doesn’t look ugly.
  • Added autosave feature that can be enabled that will autosave before unloading a contact for those who close the window before saving. Only happens if there is a lead saved, not a blank, unsaved contact.
  • Added married and wmoker validations. Fixed class issue on drivers license.
  • Added “Open in TLD Leads” on TLDialer leads.
  • Changed way dispo clear works.
  • Changes to custom fields for more reliable inserts and updates.
  • Added lead status to callbacks view.
  • If a zipcode is present, and the state is not, we can now auto populate the state, city, and even county on saving of a lead or posting into the system. This works well in conjuction with our address validator.
  • An option has been added to only pull the first 5 digits of a zipcode both for our own internal data pull as well as third party address validator.
  • Added “Make Lead from Dependent” ability which auto links the new contact to the original lead and vice versa.
  • Added “Dupe Check” when creating a new lead. A checkbox is required to create the dupe, but it is possible to force the agent to open the dupe depending on how the options are configured.
  • Added household annual and monthly income calculation fields.
  • Made address and state sizes resizable. Poor man’s option to making the whole contact page customizable.
  • CC validator now works with Visa, American Express, JCB, Mastercard, and Discover, as you type the number, even if hidden.
  • New lead users feature: Appointer, date appointed, and foster to leads.


  • Inbound price should now show on vendors table.
  • Added response codes to the “Print Vendor Post Instructions” form.
  • Added mass edit dupe settings to vendor sources.
  • Added clone vendor dropdown to vendor mapping edit screen.
  • Reset rules can now reset a lead, reset and change status, or just change status.
    • Changing status ALONE will effect all leads that match the criteria, regardless of reset or not.
    • Changing status WITH reset will effect only leads that must be reset.
    • Clone vendor now should clone post map fields. Unsure why it never did after all these years.
  • Fixed up clone vendors when cloning and adding a new list.
  • Added price per acquisition model for vendors. Updates lead cost when converted, or one policy in a specific status.
  • Added age min and max to reset logs and cascades.
  • Added feature to copy list resets from another vendor while editing a vendor.
  • Cloning vendors now clones reset rules.
    • Cloning vendors does not clone cascades.
  • You can now mass edit reset rules by copying from a vendor.
  • Added date of birth in uploader dupe check criteria.
  • Clone vendors now rehashes the POST key instead of just copying it.
  • Dupe attach notes feature added to vendor POST and upload.
  • New option added to accept leads without phone numbers on vendors.
  • Lead resets can now reset the called count. Be careful with this!
  • Added feature: Allow dupe but flag as dupe.
  • Mass edit PPA (Price Per Acquisition) and stage.
  • Mass edit ViciDial name sync for vendors.
  • Set converter to fronter on lead entry option added for vendors.

TLD Lead Posting

  • We can now accept leads in XML and JSON formats.
    • Setting your POST content-type to application/xml or application/json will automatically consider the entire POST body as XML or JSON respectively, and parse it if the POST type is set to HTTP.
    • Setting the POST type to XML or JSON will force an XML or JSON parse on the POST body if no object key is provided.
  • We can now accept leads on object keys inside a form-data or x-www-form-urlencoded POST data.
    • The object key should be in dot notation (ex: mydata.lead).
    • This only works with POST method, not GET.
    • Respects the post type selected on the vendor: HTTP, JSON, or XML.
    • Example:
      • Lead exists in array in POST mydata[lead]
        • The object key should be set to mydata.lead
        • If the POST type is HTTP, it will just load the data point.
        • If the POST type is XML, it will require mydata.lead to be an XML string.
        • If the POST type is JSON, it will require the mydata.lead to be a JSON string.
        • If the content type is x-www-form-urlencoded, we will encode the data for processing automatically.
  • Added lead limits to lead post system. This means you can now limit how many leads a vendor can send you per hour, day, week and month,
  • Vendors can now accept nested data fields via POST by using dot notation for complex arrays and objects of data sent via POST, JSON or XML.
  • Added vendor autofill capability. You can now automatically have vendors add data when a lead comes in, in case you have some critical information that needs to be placed on each lead coming in.
  • POST system now supports nested data and nested fields using Dot (.) Notation for mapping.
  • POST system can now lookup user information for lead user fields by email.
  • POST system can now set callbacks, by user or by user email.
  • Added “name” field that when present will auto split name into firstname lastname, or lastname, firstname if there is a comma present.
  • POST system now accepts phone_part1, phone_part2, phone_part3 for older systems that separate them, and will combine them into a phone number.
  • SFTP lead sync is now possible along with FTP and FTPS.
  • POST system and uploads can now reject based on ViciDial DNC And FPG (Filter Phone Group)’s based on vendor settings.


  • Added relay support for custom fields, user information, nicknames, and aliases.
  • Updated relay maps to now allow for mapping of agent information for all user fields on a lead.
  • Added ability to send policy data via relay and all major respective fields along with the lead.
  • Policies can now trigger relays.
  • Added many missing fields to relay maps related to user information.
  • Policy relays are now possible.
  • Added JSON relay support.
  • New Feature: Relay Groups


  • Added Licenses section so you can quickly see and filter what licenses your agents have.
  • Added NPN and FFM ID to users query tables.
  • Added middle name, nicknames, and aliases to users.
    • Nicknames will be seen on the users table when set.
    • Aliases will be used at a later time for chat and other applications.
    • Added these fields to user profile page.
  • Added level permission for blind dialing to be disabled for agents
  • Added user group leaders.
  • Added “Agency” to users. Agencies can have multiple settings that will be expanded on in the future including default email domains, etc.
  • Added agency to mass edit.
  • Added “Vendor ID” to users, so they can have leads in their own vendor if set.
  • Created an alternate new contact form that works with the vendor ID to automatically add a new lead to the users vendor for special reporting. Also checks for dupes!
  • New permissions: View unowned leads, and quick search unowned leads.
  • SSN reveal for admin and superadmin in user personal section only.
  • Added user fields: cms_username, and cms_password.
  • Licenses and contracts as well as CMS infomation shows on user profile.
  • Users can now be limited by their own user group to only see their respective allowed viewable groups in ViciDial user group.
    • If not limited, Live Agents can now be filtered by User Group
  • New permissions tldialer_view_timeline and view_contact_logs.
  • Added employee ID to users for external payroll systems.
  • Added “Delete Dependent” capability. This is one of our few actual “Delete” functions.


  • Fixed an issue with template link insertion in templates system. It was not showing the popup.
  • Fixed an issue with incorrectly labeled dynamic fields in templates section.

Data Tools

  • Added this new section. This will house some data manipulation tools to make your life easier as we get requests for them over time. This section can be found under Media -> Data Tools.
  • If you have a file that contains JSON formatted data for your leads in a column in an Excel spreadsheet, you can now use our Spreadsheet with JSON Column Data to CSV Converter tool.
    • It works with CSV, XLS, and XLSX Formats.
    • Will return a UTF-8 Encoded CSV.
  • New data tool: Spreadsheet to ViciciDial CSV converter tool.
    • This tool will take a column as the phone number and clean it of invalid numbers, remove duplicates, and only include phone numbers that are 10 digits.
    • This will give you a CSV with the country_code, and phone_number which is exactly the minimum ViciDial needs for an upload.
    • If your column DOES NOT have HEADERS, please type the number of the cell that the phone number is in, starting with 1.


  • Added view logs to CRM. This allows you to see who opened a lead, and when, as well as how they got there. May require some technical skill to understand it. View logs section can be found in Logs -> Views or by opening a contact and clicking Logs -> Views if you have access to it.
  • Added conversions to vendor log for the full vendor log report.
  • Quick reset for lists now logs properly to ViciDial admin log.
  • Added TrustedForm code filter to TrustedForm logs.
  • Added lead status on recording log.
  • TLDialer logs now also include vendor lead codes.
  • Added searching recording log by alt phone.
  • Fix to monitor logs so they are more consistent.
  • Added public city and public conversions only to vendor public log.
  • Vendor public logs can now be password protected.
  • New feature: TLDialer transfer logs and user call log custom modifications.
    • Added “Qualified Transfer” field.
    • Added “Transfers” to TLDialer logs on contact.


  • Added breakdown by state to vendor performance report.
    • Split vendor performance into different sections and allowed export of the different reports with different CSV names.
  • Added contest sort capability to the sales board.
  • Removed a limit on vendor performance report.
  • Added zipcode breakdown to vendor performance report.
  • Cleaned up the look and feel of vendor performance reports.
  • Cleared export buttons for vendor performance report so you know what you are exporting.
  • Fix to price per acquisition in vendor performance report as the date acquired needs to change based on the converted date, not the created date.
  • Added CID calls report – experimental and hidden.


  • Added [Carrier ID] Name multi-checkbox to filter to make it easier to search.
  • Added vendor ID filter to vendor performance report.
  • Updated vendor performance report to break down and filter by state.
  • Updated vendor performance report to break down and filter by status.
  • Updated vendor performance report to break down and filter by county.
  • Updated vendor performance report to break down and filter by specific field and field Values.
  • Added county on zipcode in vendor performance report.
  • Added lead % to vendor performance report.

Performance Enhancements and Optimizations

  • Optimizations to HTTP content delivery.
  • Added user and account level caching for faster reports.
  • Optimizations to lead quick search.
  • Optimizations to policy quick search.
  • Removed generate first contact, it’s no longer needed. Agent CPA report MUCH faster as a result.
  • Added indexes to date converted, date fronted, date appointed. Makes Agent CPA and other reports much faster.
  • Massive changes to ViciDial service with new query methods, caching, and more.
  • Added compression to partials and JSON output as well for faster serving and less bandwidth usage.
  • Added account level caching for some reports to reduced query load on commonly loaded reports.
  • Refactored way TLDialer interacts with the TLDialer emitter. This helped a lot with transfer issues and getting stuck in transfer.
  • TLDialer now does direct URL lookup instead of piecing it together itself. This made loading leads faster.
  • Optimizations to TQL core.
  • Optimizations to API authentication.
  • Optimizations to dispo API.
  • Optimizations to API logs.
  • Optimizations to user logins.
  • Offloaded lots of parts of the system to read-replicas or optional ViciDial read replicas.
  • Changes to uploader to remove blank leads and not even bother processing them.
  • Limited dialer ID lookups on lead open to 10 max; This was due to someone who has a vendor that cannot change their callerID so the same number had thousands of ID’s attached, crashing the agents browser.
  • Added more data to be able to be used for recordings backup.
  • Vendor Logs now has a “Sales Mode” which changes the conversions calculation to be a sales calculation only.
  • Added Help Articles for TLDialer Troubleshoot and TLDSIP Audio Troubleshoot.

Bug Fixes

  • Fixed an issue we introduced for iOS table loading, which only showed up for a day.
  • Minor fixes to modal error handling.
  • Fixed a report filter for lead scorecard.
  • Fixed an issue with length of some tables.
  • Fixed up some infinity signs (∞) on new lead limits.
  • Fixed a seat count issue preventing adding new users when an account had enough. Don’t forget to deactivate both the users’ TLDialer users and phones!
  • Fixed issue with new PHP money format.
  • Fix for uninitialized users.
  • Fix for first contacts errors.
  • Fixed a color and utility error.
  • Fixed large dialer bar causing problems with footer on small screens.
  • Fixed no limit on first contacts limit.
  • Updated some TQL functions to use proper timezones.
  • Fixed issue with timezones and reset call times feature.
  • Change to use account timezone, not user timezone in some PHP Functions.
  • Fixed minor visual issue with logout tooltip.
  • Fixed TLDialer report buttons to always be stuck to left when open since some tiny screens can’t see them all.
  • Fixed an issue due to the new TLDialer method for the lead qualification countdown. Should show properly now.
  • Major fix for multi-user write issues when admins are present. Some of the inputs were missing critical classes, causing all sorts of issues with agents suddenly being removed from leads as agents, etc.
  • Fix to yesterday and tomorrow calculations by timezone.
  • Fixed users removing their user groups on profile page accidentally. My bad.
  • Fix to TQL resolvers.
  • Fixed an issue with beneficiaries excluded.
  • SSN-9 (9 digit Social Security Number) validation no longer requires a SSN when one is not being provided, unless you choose to require SSN as a field.
  • Fixed an Admin123 validation error message not showing up when it should have.
  • Increased PHP Timelimit for Admin123 function causing timeouts during Admin123 processing delays.
  • Fixed an issue with public recordings causing it to try to pull the entire database of recordings when there was no leads. Whoops!
  • Fixed issue with TLDialer Download Recordings permission.
  • Fixed an issue with Tranzact FTP Backups pulling 0 lead recordings.
  • Fixed an issue with SMS Timestamps and East Coast Account. Time should be correct now.


  • Increased max size of Emails to 16 MB (Adding response codes to the Print Vendor Post Instructions resulted in hitting the previous limit, and broke some email instructions).
  • Added quote email button and quote email selector to products and account Options.
    • Quote email button will not show when there is no default option set.
  • Allowed agents to send Welcome Quote and CSR emails from their email address on their user instead of the default system set email.
  • Enabled domain emailing capability. You can now authorize your domain with our SES Server and have the system send emails from your domain instead of ours to prevent spam or rejections from our domain.
  • Added Email Notifications for TLDialer backups.
  • Vendor system now supports inbound email lead posts.
    • Format for email post is {vendor_id}.{post_key}@{subdomain}
    • Requires “Delimiter” field such as ” : ” to find the keys and values.
    • Will split the email by new lines, and check for delimiter within each line.


  • Minor quality of life changes for egress API.
  • Notes can now be added via ingress API.
  • Added XML API capability.
  • Strengthened API IP address lockdown.
  • Added commissions paid and commissions received into egress API.
  • User licenses egress API added.
  • Update for CORS validation for some internal API’s.
  • Added user contracts to API docs and egress API.

Commission Alignments

  • Tracks when a Policy has “Aligned” with your agency, via CSV Upload
  • Allows Mapping of CSV Fields to Alignment Fields
  • Updates via Policy ID or Policy Number.
  • Will update Policy Number or Application Number if missing or different.
  • Allows Mapping of Statuses
    • Statuses that are mapped will update policies if they are different.
  • After Alignment Upload, will check previous alignment date to find missing policies not included in the current upload.
    • Will mark the previous alignment as missing and when.
    • Will generate a file with missing alignments after upload so you can research what happened.
  • Added “Commission Alignments” section with filters and export.

General Updates

  • Agents available PING/POST no longer requires a key.
  • Filters should now preserve and load custom labels.
  • Added a move lead feature for TLD Admin use only on request between accounts. Please make these requests on Slack so we have them in writing.
  • Added relative weeks and months to date picker relative time sections
  • Added save buttons to different areas of the contact form for quick access.
  • Permissions update to verify and submit buttons.
  • Added CSR triggers to leads and policies. You can now auto generate and assign CSR’s on status press.
  • Disabled ability to add custom products to prevent duplicates. If you don’t see the product you need, please consult us on Slack.
  • Added ability for state route editor to support N-levels of complexity based on tldialer_meta setup on the system.
  • Added state route rank and grade to quick edit all state routes ingroup ranks for an agent. Also shows the average of each. Please note, depending on your configuration you use Ranks OR Grades, not both.
  • Added ability to auto fill last callbacks description if you are setting a new callback due to a non-answer and want to show completion.
  • Added state route editor to users section.
  • Added “Counties” table for reference in reports and the rest of the system.
  • Added ability to disable customer stats.
  • Removed Medicaid levels hidding from agent view on contact form.
  • Surveys can now trigger callback modals if a status update calls for it.
  • Contact email now shows in billing info on policies for quick reference. This field is non-editable.
  • TLDOBIWAN – “This isn’t the list you are looking for” added to State route script overrides for logs as outbounds.
  • Added commissions paid and received to policies schema imports.
  • Added logic for surveys.
  • Added “Transfers” to contact TLDialer log.
  • Added global state license requirements for sales based on contact state and user’s state license.
  • Increased Admin123 timeouts to 60 seconds to account for it soemtimes being really slow.
  • Doubled timeout for Admin123. They are getting slower every day.
  • Policies and dependents can now be disabled for those of you using the CRM in more creative ways. Also reduces query load.
  • Major changes to ViciDial epoch used in TLDialer CRM scripts.
  • Better data dumping on TLDialer reports function.
  • Modifications and updates to TrustedForm log and report.
  • Fields builder now filters by field name as well as label.
  • Cleaned up field builder to be less messy and take up less horizontal space. Organized between base table fields, other, aggregates and pseudo columns.
  • Slack channel functionality added for direct TLDialer reports into Slack channels.
  • Added agents to load balancer stats on live agents.
  • Added setting to disable whisper, barge, and monitor individually.
  • Made Medicare scorecards dynamic for printing.
  • Added policy holder name and zipcode to medicare scorecard.
  • Added “Move Policy” capability for when a policy is on the wrong lead.
  • Lists meta can now be seen and edited on TLDialer lists.
  • Added “At a Glance” customer summary option. Only works when it is set as default in options.
  • Removed Google STUN/TURN servers and moved to Telnyx after a catastrophic failure dubbed, “The Event.”
  • Put in a fix for live transfers not being seen as new.
  • Added experimental TQL documentation section.
  • Campaigns can now have their own manual dial prefix from ViciDial settings.
  • Made installing cross account users and phones a bit easier on our staff.
  • Added notify when dialer ID updates so form doesn’t overwrite it.
  • Added force touch mod status option. Forces a “touch” on status update.
  • Fixed an issue with payment copy.
  • Allow admin users group to see all recordings, regardless of limit.
  • Hardening of dates if some dates are missing and need to be fixed on policies when they next update.
  • PPA now changes first contact, cost, user, and call date for correct attribution. Leaves command PPA as well to be able to find it. First contacts no longer continues if TLD lead is not found since we don’t have cost if that is the case. First contacts now supports user and user group filter which excludes users from the log queries and also unsets the call_number_dialed_has setting to be able to attribute a transfer if needed.
  • Tags can now be set on policies.
  • Tags can now auto add, drop, or remove on status update.
  • Tags now show on the contact. Click the tag icon to see them.
  • Added option to show vendor ID in info window.
  • Added click to copy on public label.
  • You can now assign a specific agent for assignment buttons.
  • Turned legacy paid into a select box with new options.
  • Added state filter to custom model so a field will only show for a specific state.
  • Added TrustedForm result to explore, filters, etc.
  • Added total fronted and total converted to lead schema.
  • Added new basic password requirements.
  • Added optional strong / stronger password requirements settable by admins in the options section.
  • Added support for custom field modifier ID, name, and date modified searches.
  • Custom fields can now be validated against product validations.
  • Added Product Validation feature to check for Dupe SSN’s on Policies not related to the current lead.
  • Remove hopper delete limit.
  • Added grab calls to TLDialer timeline.
  • Mass edit now logs and emits changes better than before. Status updates now run the full status functions, validations, etc. Skips auto SMS and a few other automated functions to prevent accidental spam.
  • Added policies sold to leads schema.
  • CID history can now be exported.
  • Fixed issues with agent time stats on live agents.
  • Made it possible to show state full names for people who don’t remember the abbrevations.
  • Added “Lifespan” to lead policies schema.
  • FEMA eligibility based on zip code is now searchable.
  • Added no transfer state overrides per vendor.
  • Tightened security on TLDialer phone registration passwords.
  • Added autoretry to TLDialer backups.
  • Added PGP encryption support for TLDialer backups for Tranzact.
  • Refactor: Uploader
    • New uploader protections. New uploader emit method.
    • Still one pending optimization for memory usage.
    • Fixed issue with results for uploader as well as see leads button.
  • Refactor: Dispo lead and dispo policy
    • Skips
    • SMS
  • Special feature: TranZact FTP backup.
  • SMS Notifications will now show name of Client in the Popup.
  • Dispo API can now update by clients Email Address.

New Features

  • New third party feature: Balto controller.
  • New feature: TLDialer hopper beta.
  • New data tool: Deduper.
  • New feature: TLDialer audiostore.
  • New feature: SMS on disposition.
  • New feature: Select agent on conversion.
  • New report: Agent activity.
  • New report: Agent dispositions.
  • New feature: FEMA eligible.
  • New feature: Manager phone.
    • Manager phone is now a separate form base TLDialer phone.
    • You can be logged into TLDialer and the live agents manager phone at the same time.
    • Manager phones are auto created upon opening live agents.
    • You still can’t run multiple live agent phones at the same time, as they will fight for registration, so please be mindful of that.
    • When building the manager phone, you will be bounced out temporarily until it is done. This will last for about a minute.
  • New feature: Transfers in live agents.
  • New feature: Grab direct call.
  • New feature: Notifications system.
  • New feature: TLMessenger.
  • New feature: Guides.
  • New feature: TLDRECORD.
  • New feature: TLDSRXHLD.
  • New feature: Remote agent panel.
    • Added Remote Agent Panel for working with Hard phones. Uses the same Emitter as TLDialer. Auto Dispos.
  • New feature: TLDialer avatars.
  • New feature: TLDialer campaigns editor.
  • New feature: TLDialer DIDs editor.
  • New feature: Bundle policies.
  • New feature: User contracts.
  • New feature: Commission Alignments
  • New feature: Email Post Leads

The Event – Technical Analysis of Downtime Due to Lack of Audio Data via WebRTC RTP on August 31st, 2020.

General Timeline:

  • Sunday ~3AM -6AM PST – Level 3 / CenturyLink goes down. Cloudflare is affected taking down major services and websites globally. All traffic to Level 3 returns 500 error codes (Missing or Invalid Routes).
  • Sunday ~6AM PST – Cloudflare reroutes traffic around CenturyLink, some services are still affected particularly those on or near CenturyLink endpoints.
  • Sunday ~9 AM PST – Level 3 / CenturyLink comes back online.
  • Monday ~6:00 AM PST we started receiving reports of lack of audio data to the Dialer.
  • Monday ~10 AM PST we noticed that is was only effecting certain accounts, making it more difficult to troubleshoot and isolate. We begin a session with Amazon to investigate any network troubles that could be causing this.
  • Monday at 1:05 PM PST – We identified the issue and began patching Dialer servers. The issue was that Google’s STUN Servers were not identifying our domain names correctly causing bogus connections when connecting to dialers via WebRTC. This was identified to have been a badly cached DNS route by Google due to the Sunday disturbance at Level 3. We switched to our Telco Provider’ss STUN Servers to mitigate further issues and also to have access to logs and service our Telco can provide that Google will not.
  • Monday ~1:45PM PST – Last of the fixes concluded around 1:45PM and everyone resumed operations.

Read about CenturyLink / Level 3 Outage Post Mortem by Cloudflare

Steps to Monitor and Prevent from Occurring Again

  • Only use Telnyx STUN and TURN Servers for WebRTC Signaling instead of relying on Google’s Public STUN Service.
    • This provides a reliable source of STUN and TURN specifically for our purposes.
    • We have a great relationship and quick response from Telnyx, so if any issues or changes occur with their service we are notified and we can investigate logs and traffic data.
  • Removed Google and alternative STUN and TURN Servers from the Client Side Webphone.
  • Switch to IBM Quad9 DNS ( internally instead of Cloudflare ( due to the recent upsets at Cloudflare and their upstream providers.
    • If any similar issues arise investigate Dialer DNS’s settings first.
  • Change TTL for all Dialer Subdomains back to 300 to prevent Global Outage DNS Cache issues like this from effecting us for longer than 5 minutes.

The Beginning

We were tearing our hair out at the beginning of this fiasco because nothing had changed over the weekend. No development, no updates, and Friday all was normal. Once we started getting reports, we started scouring logs, checking connections, restarted servers, recommissioning servers to change the hardware zones, and nothing was working. All systems were nominal. HTTP Traffic was perfect, load was perfect, web sockets were connecting without a problem, the only issue was that audio data was lagging out, not connecting, not being received and generally not working.

Suddenly, Exceptions

With over 10 Dialers now inoperable, things were beginning to escalate but upon checking all accounts we realized that a few were still working fine. We then assumed that it was a networking issue at Amazon with the specific instances, albeit strange that they should all happen at the same time. We have never such a massive failure on multiple Dialer’s before, because we have many subsystems to separate concerns and keep the system going should one fail. But without audio, it is hard to run a call center. There was also no indication as to errors or problems occurring in any logs on any of the machines. We then contacted Amazon AWS and spent a few hours with their networking technicians and support to no avail. RTP Traffic WAS flowing, it WAS being accepted, it JUST wasn’t working on the Webphone.

In the case of a single server having this issue we would have taken action to install Softphones to circumvent the issue temporarily, but deploying Softphones across offices, during COVID with many working from home, would have taken just as much if not more time than to continue to investigate the issue so we made the decision to keep investigating. Also, Softphones don’t play well with some of our cluster setups that require multiple registrations for load balancing, so this was not an ideal solution.

An Epiphany: It’s Not DNS, There’s No Way it’s DNS, It was DNS, but with a Twist due to the Sunday Event…

We checked DNS as one of our first checklists as to issues that could be, we updated servers with different DNS settings, moving from Cloudflare DNS Servers to IBM, thinking maybe the servers were being effected by the issues at CloudFlare and were broadcasting the wrong IP address, had a bad cache or something strange. This was not the case and didn’t help much, but suddenly however, one of the servers started working while we were testing this theory. We had no idea why. 30 Minutes later another one started working, Audio just started flowing. I got to thinking about the Sunday Event and how this could be a ripple effect of the Event.

I was up at 3AM Sunday enjoying a leisurely video game when everything came crashing down, cannot login. Multiple Major Game Services and other services all around the country and world were suddenly inaccessible. Most of these services use CloudFlare, and one of CloudFlate’s Upstream providers had just thoroughly and globally crashed, causing requests to Cloudflare that are forwarded to websites to return as if they did not exist, or were problematic.

I thought…what if servers across the world did a DNS Lookup request during this event, and then got corrupted, it would then point to an invalid IP Address, or no Address, which would effect our subdomains individually. Subdomains have different refresh rates for DNS Cache, anywhere from 300 seconds to a full day. And we just so happened to have most of ours set to a full day due to DNS Lookup issues our overseas clients were sometimes having due to poor internet.

We then started looking at the internals of how the Webphone works, because we were able to get the softphone working without issue, so it must have to do with WebRTC, or a Protocol Client-side that is not negotiating properly between the client and server.

The fact that one of our servers came back meant that the DNS cache for that Dialer’s subdomain suddenly expired and refreshed on it’s own, so it now pointed at the valid IP.

But the question was WHERE?! What service had this invalid cache? Nothing was returning invalid or erroneous values in our server logs. Our Wireshark and SIP Tracing was literally just showing NO data being received by the client even though it was being sent! Everything else was connected and working! The website was accessible, pings worked, there seemed to be no DNS Cache issue as we were able to access via HTTP, SSH, and pure RTP without any issues!

The Answer was: Google’s Stun Servers

We found the answer inside the Webphone. The Webphone prefers our telephony companies STUN Server per our configuration, and then falls back to a global standard Google Operated STUN Server that ships as default with most telephony systems that work with WebRTC. Google itself had an invalid pointer to our servers, the bad cache was on their end where we couldn’t see it, likely due to the Sunday disturbance that returned error messages for so many websites across the internet when requested. We also found that the Dialer’s themselves, outside of the client, had Google set as the Default STUN Service, which ships as the standard default STUN service for most WebRTC applications. This was making Google the preferred STUN service and although our Carrier’s Telnyx, was sometimes checked, it was not always the case. This was the missing key.

The offending Server was:

What is STUN and TURN?

  • STUN Technical:
    • Session Traversal Utilities for NAT (STUN) is a standardized set of methods, including a network protocol, for traversal of network address translator (NAT) gateways in applications of real-time voice, video, messaging, and other interactive communications.
  • STUN English
    • STUN determines where to send audio data to your computer when you are on a network at home or at a coffee shop. Since you share an IP Address with everyone on your network, you need to be identified as to where you are to send the audio stream.
  • TURN Technical
    • Traversal Using Relays around NAT (TURN) is a protocol that assists in traversal of network address translators (NAT) or firewalls for multimedia applications. It may be used with the Transmission Control Protocol (TCP) and User Datagram Protocol (UDP). It is most useful for clients on networks masqueraded by symmetric NAT devices.
  • TURN English
    • Similar to STUN, except when we can’t figure out where exactly you are on your home network due to incorrect or strict settings, TURN is used as a fallback to Relay the Audio information between yourself and a server.

The Results

We REMOVED Google’s Stun Server on the Dialer Backend, replacing it with Telnyx’s ( which we preferred anyways because we have access, communications and a good relationship with Telnyx to debug things quickly when issues arise ) and SUDDENLY audio is working.

We quickly deployed this to two other servers with success, and after a few minutes of manually configuring each Dialer we were back in action.

Likely, this issue would have cleared itself up in a few more hours due to DNS Cache refresh as the 24 hour mark approached for those subdomains configured with the 24 hour TTL (Time to Live). But we would have never known the root cause. Now we know.

As of now we have changed our TTL to 5 minutes for all domains and subdomains to prevent DNS Cache from being an issue in the future.

We have also removed Google and other alternate STUN and TURN Servers from our list of options on both our Webphone Client and Asterisk backend and are sticking with Telnyx.

As an extra level of protection and due to the notorious and concerning routing issues Cloudflare has been encountering the past few months ( See July 17th Cloudflare Outage caused by a single line of incorrect configuration code ) we also have opted to change our server’s DNS Settings to IBM’s Quad9 ( as we had already changed from Google’s DNS Long ago due to issues, ping and speed ).

Thanks and Mentions

I want to thank the wonderful staff at Amazon Web Services, particularly Joshua K., for staying on the phone with us for hours testing, analyzing, and for looking into the server specs and instances we have with them to find any outliers. Their customer service and cloud service was performing stellar as always.

I also want to thank the Good Folks and our Telephony Carrier at Telnyx of which we have been with nearly since their inception for being there for us and assisting with theories and ideas as to what this problem could have been. It is nice to know that they have our backs and we can reach out as friends and colleagues. Thank you Shreya, Rogelio and Zach for the assistance and conversation and for maintaining a stellar telephony product with amazing prices and awesome customer service.

Conclusion and Appreciation for our Clients

Lastly, thank you, our clients, for bearing with us during unforeseen event. It’s not every day that a backbone of the internet crashes so hard leaving ripples like this; I am glad that the Sunday Event didn’t happen Monday as it would have been even worse to track down, little less possible to correct.

We strive to make a better and stronger product in our niche and are always here for you guys.

Today, your revenue was lost, your agents are disappointed in us for not being able to make sales, and it was your payroll that was running on the clock as you waited.

Please know we worked our hardest to solve this issue and make the right decisions to get it fixed properly and as timely as we could. We considered stopgap solutions, but it would have taken longer to implement a stopgap than to get to the root cause and correct it.

2020 has been a rough year, and fortunately we have been able to keep up with the demand with people using our system nationally and internationally and we appreciate everyone of you, your feedback, and daily conversations in Slack.

We have optimized our services to be able to be used from anywhere, and added tons of features and functionality per your suggestions that have benefited all on the platform.

We will keep building and fighting for you and your business.

I was surprised and warmed with the calls of concern, and how understanding you all have been today; not a single angry email, Slack message or phone call. This makes me proud to be working with you all and in this industry.

I know it is not much, but we will be offering credits for this one day of downtime that will be directly applied to your current monthly invoices, I know it pales in comparison to the lost revenue of nearly a full day of productivity, but we want to do something to make things right and show our appreciation for you all being our clients.

– Alexander Conroy aka “Geilt the Architect”

Patch 7.5.5

Asterisk AMD Patch VICIDial Core Updates and TLDialer Replication Support

Asterisk 13.21.0 Patched and rebuilt with SIP Logging Capability and a fix to Asterisk 13’s AMD Hanging on No Audio Issue.
  • SIP Logging helps debug issues with calls that involves more than just Asterisk CLI, AGI, or AMI commands as it allows us to store and view this data in the database. It should only be on when needed.
  • The No Audio Patch addresses a bug in the AMD Application that caused it to hang in rare circumstances where it did not detect audio, and never close the channel until reboot. More noticeable with a higher volume of calls.

All Account VICIDial Instances have been updated from Version 2.14-714a Build: 190628-1511 to Version 2.14-735a Build: 200127-1620 as of tonight.

TLDialer Updates

  • RDS MariaDB 10.2.1 Read Replica Servers now implemented and possible upon request.
    • When Replication is Enabled, all Reports and TLDialer Sections revert to the replication server, so you can do crazy queries to your hearts content without fear of locking your operations up with ridiculous reports.
    • Replica updates are nearly real time, with just microseconds of delay.
    • Base Operations of TLDialer still function on the primary server.
    • Reporting in VICIDial itself can also use the Read Replica.
  • Fixed a bug with Custom DID Options for TLDSURVEY ( Automated Voice to Text and Text to Voice IVR + Survey System) and TLDBATMAN ( No Agent No Answer ) and TLDSRVDCL ( State Route Inbound ).
  • Fixed an issue with TLDSURVEY where the 9 Pause button was randomly being pressed.
  • Fixed Issue with Audio Checker where it would Require your computer to have audio devices even if you were using a softphone or hardphone instead of the TLDSIP Webphone.
  • Added Option to remove the “Qualification Time Countdown” from the TLDialer Interface. Currently this is a system setting only.

Vendors and Relays

  • Added Relay Delay
    • It is now possible to DELAY a Relay and instead QUEUE it for Relay at a specified interval. You can find the settings under Vendor Relay settings.
    • When a Relay is queued, all of it’s data is stored in the Relay Queue table, similar to how Relay campaigns work, except the date it can be released is set in the future. Every minute the relay queue is checked for relays that need to go out, so you can only delay by minutes for the queue system to pick it up.
  • Added “Inbound Price Override” setting to Vendors -> Inbound Tab.
    • This lets you override the leads cost if it is 0 or not the same as the current set price, if the lead exists. It also logs this in the leads action log, so it can only happen once, so feel free to clear the cost if there was an error. Also, if the QT Time (Qualification Timer) has cleared the cost, the next inbound will NOT update the price, as it was already modified by the system. This also can only happen with Inbound Calls (which is determined by the presence of a Number Dialed in Lead Pop / TLDialer Pop. This works with both External Systems that support Lead Pop and TLDialer.
  • Added Dupe Update IP Whitelist / Blacklist.
    • This allows you to receive leads from a vendor which will correctly reject dupes, but if you repost in the same leads from another system or dialer and want the dupes updated, but not rejected, then it will. This prevents you from getting erroneous successful posts from the Vendor when in fact…it was you all along causing your issues.

Commissions Paid Module

  • Commissions Paid is the reverse end of Commissions Received, and allows you to enter line items for who you paid and on what policy, along with breakdowns, even cash bonuses!
  • The Payroll Module, once complete, will enter data in Commissions Paid for calculations, so you are safe to enter data now as you see fit.
  • Date Paid Through is Optional, but can be helpful for the future and will be used with the Payroll Module.
  • You can select a User or a Vendor to tie to the payment. This way you can keep track of “Referrals” as “Vendors” if needed, so you don’t have to create false inactive visible Users to do the same job.
    • If you don’t have the User or Vendor to Set, you can just type in a name…but please try to keep some standards with the names if you expect to report on it.
    • The system will automatically calculate the “Recipient Name” based off your Choiced in the following Order.
      1. If User is Set, it will be First Name Last Name of the User.
      2. If Vendor is Set it will be the Description of the Vendor.
      3. If Payment Recipient is set it will fallback to whatever is typed in there.
  • Payout Types
    • Initial Payout
    • Residual Payout
    • Chargeback
    • Bonus Payout
    • Cash Bonus (Spiff)
    • Advance Payout
    • Other Payout
  • Payee People
    • Agent
    • Fronter
    • Vendor
    • Referral
    • Other
  • Amount Breakdown Categories – Must Equal “Amount“!
    • Base
    • Bonus
    • Cash (Spiff)
    • Chargeback
  • As with Commissions Received, we also have a Reference and Description for each record for your own internal used.
  • Coming Soon: Commissions Paid Data on the Contact Form.
  • Coming Soon: Auto Import of Current Commissions on Policies as Entries into Commissions Paid.
  • Coming Soon: Auto Calculation and Update of Policy Paid Data and Dates when using Commisions Paid, similar to how Commissions Received works.

Agency News Module

  • You can now create a template type under Media -> Templates called “News“.
  • You can show this “News”  article, along with who wrote it, and when it was last updated, on the Agent Dashboard.
  • A User Must be Part of a User Group that has a News Article set in the Users -> Groups Section.
  • An Agent can see Multiple News Articles if they are part of multiple groups with news.

TQL API Schema Updates, Core Updates and Fixes

  • Added Replication Server Compatibility. Allows us to Autoswitch between Live and Replication instances when enabled.
  • TQL Import now works with Comma Separated Import Names.
  • Fixed TQL Args Parser Order…somehow it still worked though?
  • Fixed TQL Aggregates to Coalesce to 0 for Sums.
  • Added User Group Members to Egress API.
  • Added Personal Phone to API User Meta.
  • Added a new type of Egress Endpoint for Crazy Cross Database Queries  as needed. They will be aptly named /custom1, /custom2, etc.
  • Added Date Owned Pseudo field, worked similar to Owner ID.

New Abilities

  • Added Unconvert Lead Ability.
  • Added View Verifications Ability.
  • Added View Submissions Ability.
  • Added View Clients Ability.
  • Added View Post Dates Ability.

Miscellaneous Updates and Fixes

  • Added Lead Status to Callbacks Table.
  • Added “Is Sale” and “Is Active Sale” to Policy Campaigns ( Triggers )
  • Removed Default’s of 0 for some Booleans on leads that should have actually been null (unanswered or blank), such as “Married, Insured, Smoker, Conditions – Diabeters, Conditions – Cancer, Conditions – Heart Disease and more.
  • Better Network Error Messages.
  • Fixed an issue with Dependents Counting Double in some queries.
  • Added Premium to Vendor Performance Report and Export.
  • Added AOR to Explore Policies Defaults.
  • Added Next Year to Dropdowns when in December.
  • Fixed Agent Group Not IN Policies Filter.
  • Fixed Issue with Server IP Whitelist before the Multi-server patch.
  • Commission Received Icon was Updated to something less Cliché

New VICIDial Features Enabled (Source) – Some may or may not work with TLDialer Yet – Ask us!

  • User Inbound Filtered Features.
  • VM (Voice Mail) Message Group Features.
  • CID Group Auto-Rotate features, allowing for CIDs to be rotated at set time intervals.
  • Added a new “CallerID Log Report” to the Admin Utilities page.
  • Added CID Group Type of NONE,
  • Added ability to limit the number of voicemail messages played to a single lead per day, as a campaign setting.
  • Added options for survey outbound campaigns to play lead field value audio prompts as well as multiple audio prompts.
  • Added new System Settings option for alternate agent screen recording buttons and configurations.
  • Added Non-Agent API functions “add_dnc_phone” and “add_fpg_phone”, allowing for insertions of phone numbers into DNC lists and Filter Phone Group lists
  • Added a new User option “Additional Status Group” to allow additional call statuses to be used by agents on a per-user basis.
  • Added new HotKey options to send a call to an answering machine message while also automatically dispositioning the call to the agent can move on to their next call right away.
  • Added Campaign option for Dial Timeout Lead overrides, allowing you to set up a Settings Container with values for manual-dial and/or auto-dial lead fields and associated values that will tie to different Dial Timeouts.
  • Added a new Non-Agent API function: “list_info”
  • Added “$webphone_call_seconds” as an agc/options.php option for vicidial.php to allow for webphones to be automatically connected to the agent session X seconds after logging in, instead of requiring the agent to click to call their webphone.
  • Added 4 new options to the Add/Delete DNC Number page for multi-campaign selections in the web admin: – ALL_CAMPAIGNS – ALL_DNC_CAMPAIGNS – ALL_ACTIVE_CAMPAIGNS – ALL_ACTIVE_DNC_CAMPAIGNS
  • Added a System Settings option for second agent screen script tab.
  • Added a Campaign option to not send an agent immediately to the disposition screen after transferring a customer call to a VoiceMail Message.
  • Added campaign feature for VM Message Groups, allowing agents to be able to select a message to transfer a customer answering machine to from a list of pre-recorded messages that can be defined by time-of-day.
  • Added User Inbound Max Calls filtering options. Allowing selective counting of inbound calls excluding calls involving set in-groups, statuses and with a minimum time threshold. Also, new in-group routing options based on last non-filtered call times
  • Added new “EXTENDED RANGE” option to the Agent Screen Time Display campaign setting. It will show per-campaign time stats, non-paused time and totals in the last row.
  • Call Quota Lead Ranking, a completely new and different way to do lead recycling for outbound calling campaigns.
  • Added new Non-Agent API ‘custom_fields_copy’ option to the ‘add_list’ function.
  • Added new Non-Agent API function “update_cid_group_entry”, allowing you to ADD/UPDATE/DELETE or get INFO for the CID Groups or AC-CIDs.
  • Added new options to the campaign Agent Screen Time display setting to allow for agents to see a range of dates for their time stats.
  • USA zipcodes and International phone-codes data files have been updated!
  • Added SIP event logging report, to go with the new SIP event logging experimental features.
  • Added an options.php setting to allow for control of whether MONITOR, BARGE, WHISPER are allowed on the Real-Time Report.
  • Added an options.php setting to add a LOGOUT link on the real-time report. Also the real-time report will now only show the MODIFY and SUMMARY links on if the user has permissions for them.
  • Added “Admin User Redirect URL” settings, allows you to define a web address that a user is sent to when they log in to the admin web screen. Usually used for level 7 report-only users to send them to one specific report when they log in without seeing the admin web screen at all.
  • Added more options to the Campaign “Hide Call Log Info” feature to be able to show only the last X number of calls in the Lead Info screen. Also added a User Override setting for this feature.
  • Added new “Mute Recording Button” feature as a campaign/user option(must be enabled in System Settings first), to allow agents to be able to mute or pause a call recording.
  • Added options to define the static prompts to use for the Inbound Group “Play Place in Line” feature.
  • Added new Agent API function: ‘force_fronter_audio_stop’ will send command to fronter agent session to stop audio_playback playing on it. Will look for other user session currently on a call with the same lead_id that the named agent_user is on the phone with. Works with CCC.
  • Added “Manual Dial Validation” campaign and system settings, forces agent to manually enter in the phone number before a call is placed. Does not affect 3-way calls or transfers.

Patch 7.5.0

Lots of things have changed since the last patch, and we have been slacking on updating our version number! The reason for the jump in the version change is two-fold. TLDialer VICIDIAL Cluster Support, and the rewrite of the TLDSIP Softphone. Most other changes had to do with reports and minor bug fixes as well as quite a few changes and additions to the Lead Post system. Thank you for your patience with us during open enrollment as we have been slammed beyond measure and have been working hard to keep the system running smooth, fast and secure.

TLDialer Cluster Compatibility – Automated Multi-Server / Multi-Phone Management for VICIDial

For our agents running more than 50 concurrent agents on the Dialer, as well as multiple Carriers, Inbound Calls, Dialer Outbounds and tons of transfers, we have added VICIDial Clustering support to the TLDialer system. This required a full analysis and modificaton of changes needed to the TLDialer system as well as a rewrite of the softphone to support registering to multiple phones and managing those connections.

What is a VICIDial Cluster?

A VICIDial Cluster is a VICIDial system that has multiple Asterisk PBX ( Phone System ) Servers connected to one Main Central Database and Application Server, which can also be a Cluster Server itself, and is usually the main cluster. Most all of our TLDialer Accounts are using single Cluster Mode as throwing more “Power” to the AWS Instances we used seem to suffice for 50 Agents or less. Once we hit 50 Agents however, things started to get screwy. We kept getting random Audio Issues, Crashing or One Way Audio on IAX Channel Transfers ( Conferences ), Crashing on the Music Server for On Hold Music, Broken, Seized or Crashing IP Relays (ip_relay) as well as a ton of other Stability issues. The systems didn’t go down, but during peak hours transferring to Verification departments and such was hit or miss, causing issues with call floors.

As you may know, TLDialer uses VICIDial as the Dialing system, but we have an integrated interface that controls and synchronizes data between TLD and VICIDial seamlessly. This is our own invention, and we were hoping to keep to the single server model as long as possible, we however hit our limits early.

Clustering is not simple. It requires quite a bit of configuration, and normally through VICIDial itself it requires you do a ton of maintenance to the Phones and Users to make sure they get logged into the system on the proper Cluster that has the least load. This can be manually done by the Agent who can choose to login to one of X servers, or VICIDial itself can do the load balancing via Phone Aliases, with the Caveat of having to Create and Manage a Phone Per Server per User, and keeping those settings in sync manually. Otherwise you have to change which server the Phone is on at the beginning of the day to load balance based off which of your Staff is actually logging in for that day. It’s a nightmare of management. Enter TLDialer’s Auto Balancing Management system.

TLDSIP & TLDialer Automated Cluster Balancer

Our cluster balancer requires no work on your end. Your agent logs into TLDialer as Usual, click connect and BOOM, they are logged into the lowest load server.

We do this by Automatically Creating a Phone Alias ( EX: 1111ALIAS ) for the Agents Primary Phone (1111), we then Create or Update Multiple Phones that are not the Primary by appending their Server ID’s, which we have Standardized as A1, A2, A3, etc. ( A = Asterisk ). so when you Update 1111 it looks at all the servers available, then creates 1111A2, 1111A3, 1111A4, etc (Primary Server is considered 1111 so there is never an A1 ). It then Creates or Updates the Phone Alias with the list of possible logins for Load Balancing for that Alias. So 1111ALIAS has a Login List of 1111,1111A2,1111A3,1111A4.

We rewrote the TLDSIP Softphone from the ground up, using newer best practices. By doing so we were able to have it manage and handle multiple registrations. Normally on a Cluster Setup, using the Phone Alias Load Balancing method, you would need to go configure all your softphones with the accounts and credentials of EACH Servers Phones that are part of the Alias. You can imagine that this is a bit of a headache, especially when agents play round robin. The More Servers, the more setup. Enter the new TLDSIP.

TLDSIP auto registers to every servers on Login and waits for an Incoming connection. For Blind Dialing it automatically uses connection 1. When an incoming call comes in, it auto accepts and then UNREGISTERS the other Devices. When the Call Hangsup, it Reregisters all the phones to be ready to login to the Dialer Again. As a side effect of this Channel Management, the system can now Re-register and even Reconnect a call if it was lost due to a blip or a timeout, which should increase call stability.

The Ethernet Icons on the bottom left of your screen will show you if your phones are registered or not. They will all be Teal when they are ready, and then Change to Green when in a Call. Unregistered Phones will show White. Phones that should be Registered will try to Reregister automatically if they lose connection.

So as long as you ONLY use TLD to Manage your Dialer Users and Phones, and not the VICIDial Admin interface, these phones will always stay in sync and up to date. You can open the User on TLD, set the Caller ID for Example, and those changes will reflect on all the associated phones in the Cluster. Tada!

Automatic IP Authentication Across Clusters

Yes! This works now too! If you have an IP Unlocked user, or if you add an IP to your authorization table, all clusters should now authorize that IP, not just the main TLDialer server. This makes management even easier!

Update and Changes


  • Now Supports Multiple Registrations
  • New Icon at bottom left which shows you which lines you have avialable and their status. White is Unregistered, Blue is Registered. Green is In Call, Yellow is Unregistered while in a Call.

  • TLDSIP will Auto Register on Load, and Auto Unregister other Phones that are not part of the Current Call when on a Call.
  • Hovering over the Icons will tell you the Server ID and Status.
  • As a side effect of the new TLDSIP, when a blip happens or a timeout occurs on registration, the phone will now auto re-register. This should solve some long standing issues with people on shoddy connections timing out but still on the phone and losing the call.
  • Fixed TLDSIP Not working on iPadOS. Thanks Apple.


  • Monitoring actions now log properly in TLDialer. We have enabled “Monitor Logs” so you can run queries to your hearts content on the Monitor logs.
  • Changed Monitor Icon to look like a CCTV instead of an Eye.
  • Changed Whisper button to look more like an ear.
  • Added Monitor Logs to TLDialer Logs on Contact Form.
  • Fixed bug where address was not being synced to Vici Lead if it existed on creation. We had address instead of address1 selected
  • Fixed Ingroup Ranks not Editing due to limiting to over 100 ingroups. Some of you have way too many ingroups.
  • Added a 5 Second Timer between clicking Monitor in the Live Agents Page to prevent people from double monitoring.
  • Added a 5 Second Timer before Manual Dials to prevent agents from smashing the button and calling the same person multiple times.
  • Fixed an issue with external transfers where it would incorrectly “Remember” the external number set. This did not affect presets.
  • Fixed Set Monitor to search for the agents current conference instead of using possibly stale data from the interface not refreshing. Apparenly Dialer conferences change for the agent when you leave a conference.
  • Added “Show Load” Option for the Real Time Report to monitor all your servers at once when using Multiple Clusters, but this also works with a single server.
  • Fixed an Issue with timezone settings for West Coast clients in the TLDialer System causing initial login to be a few hours behind.
  • On Multi-Cluster setups, TLDialer will autocreate an Phone for every server as well as a Phone Alias for the User. Updates to Phones on a TLDialer User will be copied to every phone they have, but you will be editing the primary phone / extension. We have removed the ability to choose the server the phone is on as we use the Primary server for the Primary phone and the rest is handled by the system automatically.
  • Added Support for IP Whitelisting for multiple servers.


  • Added new “Survey Type”: User Performance Survey
    • This forces the user doing the survey to choose a User they are reviewing which is attached to all subsequent questions.
    • We have added User Reviewed into all logs and added groupings for Users Reviewed in the Survey Report.
  • Surveys can now be limited by role, abilities, user group and user level
  • Fixed Survey Answers for Answer Scale Type.
  • Added First Name and Last name of the Lead to some survey logs.
  • Converted Survey Reports to Data table.

Welcome Emails

  • Emails and Marketplace Emails can now have their individual “From” and “Email” in the Reply To set. This will default to account settings if not set.

Relays, Vendors, Upload & Lead Post System

  • You can now add a Relay Filter so that Relays do not get sent if certain data in a specific field is set with specific values. This only prevents the relay from firing if it comes in via FTP, Post or Upload, this does NOT prevent the use of Relays in Campaigns or via Direct Send. . This is helpful when using a single relay with referrers or campaigns where some should be dialed and some should not.
  • Added “Prevent Converted Phones” from being relayed so you don’t bother your clients when vendors give you bogus data.
  • External Lead Updates can now run Update Lead Status automatically when present to stamp things. This also updates Dialer leads associated.
  • Fix preventing leads coming in with 0000-00-00 or 00/00/0000 for date fields
  • Allow Post System to Skip “Front” status which was causing errors on external update.
  • Reorganized Vendors Data pane to have its own Tabs as it was getting unwieldy.
  • Added Import ID to Post System Error Exports
  • Fixed Validations for Decimals in the Vendor Post system when people were sending things with commas.
  • If a State field comes in and are greater than two characters in length we now grab that data from our meta table and insert the right state. It still needs to be spelled correctly.
  • Added Inbound Price and Inbound Status to override the Default Status and Default Price. This allows you to mix inbound and outbound vendors into a single Vendor Source.
  • Updated Vendor Performance Report with new Metrics, including Fronts to Vendor Performance Report. Should be a lot cleaner now.
  • Vendor Logs got some Love. They now have the option to show what products ( comma separated ) and carriers ( comma separated ) and total sales made on a lead in the Full Report log so your vendors can keep an eye on you if you want. This is useful for Vendors that you are doing revenue share with.
  • Added Passthrough Logs Option to pass the logs for a Vendor into the Passed through Vendor instead of the Passthrough Vendor.
  • Added Custom Status code to Statuses and made these statuses able to send with Relays for external systems that transfer calls that we update status on Disposition.

User Interface Changes

  • Add Click to Copy to the following things:
    • Policy ID on the Policy on the Contact.
    • Name on the Contact.
    • Lead ID on the Contact.
    • Dialer ID’s on the Contact.
  • Now Trimming Name on Leads with extra spaces.
  • Now Ordering Products by Description instead of Name so they should be alphabetized if the default order is set to Description not name.
  • Made Countries order by Description instead of Name,


  • You can now Reschedule CSR’s. The amount of times a CSR is Rescheduled is kept as a counter, as well as by who and when.
  • Renewals vs Rewrite
    • This used to be a Yes or No value but now is No, Rewrite or Renewal.
    • The Contact form has been Updated to state what type it is if selected.
    • You can also search by these types now.
    • Added “Is Renewal” to Campaigns
  • Touches should now work properly. They were always set to 1. Touches means how many times an agent has “Viewed” the page. We went back and resynced all touch values to the total amount of Views in the log for each lead. This took a while but it is worth it. Now whenever you open a lead it will automatically increment the touched by 1. Leads now properly come in as 0 too, they were coming in as 1.
  • Added View Others Notes Ability
  • New Feature: Autocomplete Only Mine or Global Callbacks, to prevent completing callbacks set by someone else automatically.
  • Household Income no longer filters out excluded dependents.
  • Fix to reset commissions paid when recalculating commissions.
  • Added Campaign Checker Agents Available Path in the Egress API. This allows you to use External Systems to Query whether they should send a call or not.
  • Created newer more effective way to serve you JS Without getting you stuck with the cache. Finally! All of our JS files are rewritten based on the version and revision number when we update the codebase, so you are guaranteed to get the latest changes on Refreshing the page.
  • Fixed Explore issue with 7th non-existent column.
  • Statuses on Fields table now shows TLDialer Status and Custom Status Mapped.
  • Made Massive Improvements to Quick Search by adding some new key indexes and querying data slightly different. On large accounts with 2 million+ leads the searches went from 8 seconds to less than a second.

Patch 7.0.6

TLDialer Changes and Updates

TLDialer 2.0

We did a bit of an OVERHAUL on our TLDialer Apps system, which allow us to connect directly into the internals of the dialer and modify behavior and allows us to do things like State Routing. We now have a fully dynamic system, that follows our own patterns and enables us to add new apps dynamically! We were even able to inject code into the main dialer form to allow us to do previously impossible things that have been causing some issues. Along with this have come some significant improvements to the transfer system, barging, monitoring, and more. There is much more to come with this new System! And now for the Updates.

As always when TLDialer Changes, make sure you have your agents all log out and log back in.

  • TLDialer Apps use Routing Extensions to route to each app. The Prefix for apps is TLD{appname}
    • Prefix: TLD
    • App Name: Proceeding 6 Characters
    • Extra / Custom Extensions – Proceeding Numbers after App Name
  • All apps can be duplicated/ isolated and configured by changing the extension to TLD{APPNAM}{EXTRACHARACTERS}
  • TLDialer App Configs can be overridden by creating a fake DID (Ask us to do this) to set DID Custom Parameters on.
    • Each App has different Parameters that go in each custom DID field. Each app has it’s own defaults so most of the time this fake DID is not needed.
    • If you configure one of the custom fields with a parameter, it will override the default. Provide nothing in the custom field and it will fallback to the default for that parameter. Not setting custom fields will just have all parameters fallback to defaults which renders the fake DID fruitless.
    • You can override the default behavior of an app by making the DID Pattern the App name, or you can create your own extension by suffixing anything after the App Name. Just remember to point your Extension to the App with the modified extension you created and it will isolate to just that one.
  • Apps Available
    • TLDSURVEY – Survey System Extension
    • TLDSRVDCL – State Routing Inbound Extension
    • TLDSRVDAD – State Routing Outbound Extension
    • TLDSRXFER – State Routing Transfer Extension
    • TLDBATMAN – No Agent No Answer Transfer Extension ( NANA )

TLDialer General Changes

  • Loading Leads on Calls should now load faster, we are skipping the AJAX Check for the Vici record and taking it straight from the TLDialer Process. Should be near instant now.
  • We now Prevent you from logging into the Dialer if you have another Instance open somewhere else. We now also change the Status to “Duplicate Instance”.
  • You can no longer click the “Disconnect” button, or any buttons but the login buttons while disconnected and have the system attempt to dispo a lead for your disconnected user or some other wizardry.
  • The Starting Status Message is now “Authenticating”. If you somehow click before Authentication or Instance Denial runs, it will tell you to chill out for a second until it says “Ready to Connect”.
  • Once the server Authenticates you do not have another instance running it will now turn blue and say “Ready to Connect”
  • If the server stops sending data to you temporarily we will now block buttons from being pressed.
  • The Emergency Logout button now also Resets the TLDialer Instance of the User being kicked to make sure errything works allright. When being booted, or disconnecting yourself, we now remove the Vici session completely so we can avoid the annoying popup that asks if you want to leave the page or not.
  • Emergency Logout now runs Slay Session, which sends a message up the socket for the agent to navigate away, clearing the session completely.
  • We Removed AGENTDIRECT From the Transfer Menu, it shouldn’t really be there.
  • Added “Client Registered” filter and schema item so you can see if a lead’s phone number is in the client list or not. Added this to TLDialer Leads.
  • Added GMT Offset Filter to TLDialer Leads.
  • Fixed issue with TLDialer Leads Menu not saving correctly on refresh.
  • Added Fronts and Converted Fronts to Agent CPA Report.
  • Added Outbound Autodial field to live agents schema.
  • Updated AMD Rate to be more appropriate to what it actually is. Hover to see the formula! Remember AMD Rates include any status an agent presses that has an Answering Machine flag.

TLDSIP WebRTC Client (Webphone)

  • When using TLDSIP, you now have a Microphone Check Meter show up before you connect, to make sure you are getting some audio! It will go away on login and come back on disconnect.
  • When using TLDSIP We now Prevent you from logging into the Dialer if your Audio isn’t working. The Disconnected Status will be replaced with Audio Error.
  • We now only connect the TLDSIP Phone AFTER Authentication, to prevent overwriting a previous register.

TLDialer Transfers

  • Update: 9/23/2019
    • We are no longer using the button presses to prevent transfers. We are now checking all the lines to see if the agent is in a transfer properly and letting them know if they are. Along with this we added some new features to the Transfer Menu.
    • If the Agent is n Queue or in a Transfer it will show what we mentioned above, however, with the new method it is possible to do 4 or 5 way calls if needed, but we currently have this disabled.
    • NEW External Transfers once NOT Detectable, NOW detectable. Yay! This means that you can do a 3 way call with a carrier or a loved one and it should show that you are in a conference instead of showing nothing.
    • NEW The Transfer menu will now let you know if a Manager has Joined the call (Barge)
    • NEW The Transfer menu will now let you know if a Manager is talking only to you (Whisper)
    • Don’t worry, Agent’s still can’t tell if they are being monitored.
  • Things that this patch should fix.
    • Double+ Transfers (Wrong Conference!)
    • No Client on the Line. (Wrong Conference!)
    • Agent gets Dead / Blank Call. (Wrong Conference!)
    • Manager Monitors, but can be heard. (Wrong Conference!)
    • Multiple Agents Talking to Each Other (Multiple Wrong Conferences!)
    • Can No Longer Hear Clients on Line Suddenly (Wrong Conference! Didn’t Disconnect from bad conference!)

TLDialer State Routing

  • We now have a new Script for creating an Ingroup for Fronters to Transfer to that works with State Routing. It still uses the same State Route Inbound Group, but works properly with Fronters Transferring to the group, as well as flagging the call as to what type of Call the originating transfer came from so we can adjust the Agent CPA report to compensate if we need to.

TLDialer Client

We now have the ability to Inject our own code into VICIDial creating two way communication between the systems in real time. It is SUPER fast. We can now press buttons and close unneeded windows in the client.

Things that this Fixes:

  • Agent Logs In, Presses Pause to Start, and goes into Closer instead of Ready.  This was because there is a screen that needs a submit button in the client hit that automatically times out, but not fast enough for our quicker, less patient agents.
  • Changed “Dispo Pause” method to actually select the checkbox in the Dialer instead of pressing Pause for the agent when they press pause during Dispo. This should now work 100% and no longer possibly grab another call if in queue. Woohoo!
  • More fixes as we catch them in action now that we have been able to identify what has been happening and also have a systemic solution to add fixes as needed.


  • Uploader now shows CSV Encoding Type: UTF-8 or ASCII.
  • Uploads should now correctly count the line items in a CSV Upload.
  • Added Vendor ID to Post System when duplicate checking so you can see if the Dupe was in Same Vendor or not.
  • You can now attach policies, notes, dependents ONLY if the Dupe is in the same Vendor, if desired.

Bugfixes & Minor Changes

  • Added Vendor Public Name to Old Leads Schema so you can use it in the Column Builder.
  • Updated New and Old Policies Schema to support Premuium Actual, Actual Monthly, Actual Initial and Actual Yearly where it 0’s out if the Subsidized Premium is more than the Premium.
  • Fixed an issue with Date Paid and Paid checkbox not setting properly when recalculating commissions received.
  • Commissions Received now using the more improved export window so you can select the columns that get exported.
  • Fixed an issue with Dependent Annual Income Validation when set to 0 not updating so it couldn’t be validated.
  • Fixed an Issue with Fronter ID not being set when Posted in via Post System.
  • We can now push a Popup window with Links or Messages to assist an agent. Useful for live screen debugging since most people don’t know how to type when instructed on the phone.
  • TQL can now Force Index joins.
  • Added accounting role to commissions section.
  • You can now see your TLDialer Seat limit and cannot add new TLDialer Seats when adding users if there aren’t enough.
  • Fixed issue with phones checking TLDialer Seat limit incorrectly.
  • Added change_lead_fronter_id permission.
  • “Owner ID” now checks the assigned_id and if the date_assigned is NOT NULL and is greater than the current date, it will show, this allows you to assign leads to an agent for a later date. Neat!
  • Changed some Layout stuff in the Products table for easier viewing of things.
  • Made it Easier to Calculate CDR Minutes from our Carrier. We will soon release a section where you can see the detailed call log data.
  • Added Plan type to Policy Sidebar. Updated the Icons so they are more even too.
  • Product Export now respects current Query.
  • Added some Missing Filters in Old Policies section: Dialer ID’s, Import Source, Row and ID. Lead ID’s.
  • TQL can no longer attempt to aggregate on aggregated fields.
  • Explore now respects “Export” permission.

Patch 7.0.5

TLD & TLDialer Automated & Self-Serve Whitelist

This is a big one, we have been looking to creating a solution to this problem for a while, and it is finally done! Enjoy the fruits of my sleepless nights!

The “Access” panel has been re-written. We changed the External IP Whitelist Users into a Multi-checkbox so it is easier to select agents as well. It has been Renamed to “IP Unrestricted Users“. It’s counterpart: External Admin Level Limit has been renamed to “IP Unrestricted User Level“. And now onto the Nitty Gritty.

  • IP Whitelist: The IP Whitelist is now a full on table. TLDialer itself, also has a Whitelist. These two Whitelists work in conjunction with one another, and can also be used Separately. Most of what we have done is pretty much automated.
    • The Whitelists are split into Allowed and Revoked, all living on the same panel.
      • The tables can be paginated through as well as searched. Each tab has it’s own search and pagination but all 4 tabs run queries at once when you hit go!
        • You can search by IP Address. Allower Name, Revoker Name, and Description. It will try to match best possible using %LIKE%
    • When adding an IP, you MUST Put something in the Description. You CANNOT Update the description after the IP has been added. We are doing this for tracking and auditing purposes and to keep people honest.
    • Agent IP Restrictions Applies to Agents under the IP Restricted User Level and will allow them to log in.
    • Admin IP Restrictions Apply to Everyone on an Account, EXCEPT for the IP Unrestricted Users. Having at minimum 1 Admin IP Restriction will IP Restrict your whole account for Admins. Admins will be subject to the Agent IP Whitelists but also have the additional benefit of qualifying for the Admin IP as well.
    • IP Unrestricted Users bypass all IP Checks regardless of any IP Restrictions.
    • Adding an IP to the Allowed IP’s Table will also automatically add the IP to the TLDialer Whitelist table by default. IF you do not want that IP Authenticated on TLDialer, you can switch to that tab and Revoke it by pressing the red X.
    • We have Automatically imported all current IP Addresses that were listed in the old IP Whitelist textbox.
    • When you revoke an IP it will end up in the Revoke List which can be searched and keeps a history of what has happened with IP Authentication. This is why we do not allow modifying the descriptions as it would interrupt the history flow for auditing.
  • TLDialer Whitelist: The TLDialer whitelist was a little trickier as each individual Dialer Server is locked out from the world except for the IP’s authenticated.
    • Whitelist Interval – 1 Minute: Adding and Revoking in this list takes about a Minute. When adding, the Revoke button will be a black button with an hour glass until the server authenticates it, it will also do the same when revoking until it finally clears it out as revoked.
    • There are Two Types of IP Whitelists for TLDialer
      • Permanent: Will last until manually revoked
      • Temporary: Will last for a Full day and are cleared at 2 AM Account time. This lets you give someone temporary access.
    • Automatic Whitelisting: If a User is Unrestricted in TLDCRM, we will AUTOMATICALLY add the Users IP Address to the TLDialer Whitelist with a 1 day pass.
      • 1 Day IP Whitelists get cleared every day at 2 AM account time.
      • The server will Re-add the IP if logged into the unrecognized IP the next day on login or access to the CRM if still available.
      • The moment an IP gets Auto-Whitelisted a Popup will notify the User that their IP has been added and should wait at least a Minute before using TLDialer to make sure it has been completed.
    • When you revoke an IP it will end up in the Revoke List which can be searched and keeps a history of what has happened with IP Authentication. This is why we do not allow modifying the descriptions as it would interrupt the history flow for auditing.
    • You can add an IP into the Whitelist that is NOT in the TLDCRM Whitelist manually if you have people connecting to use JUST the Dialer without TLDialer, for fronter operations or specific kinds of management. This should be rarely if ever used.


  • Added a Workaround for not being able to Pause from Dispo Mode. We queue up a Pause if you tried to pause before hand and initiate it right after. There may be an off chance you might get a call within the less than a second that it tries to do this.
  • We now have a reset button that will boot you out of TLDialer, even if you left yourself logged in at home. You know who you are…This also runs on Logout.
  • Pushed a fix to allow Bluetooth Audio Devices and iOS in general to work with the Webphone again. They changed things up!
  • Dead Calls should now show up properly in Live Agents Reports.
  • Added “Gradient Mode” which can be turned on per request for Live Agents Report. Most accounts have this on by default now.
  • Minute Resets will no longer run on Inactive Lists or Inactive Vendors
  • Fixed an issue where a person without a valid phone could try to monitor or barge causing all sorts of craziness.
  • We now check the Client Filter Phone Group when manually adding leads to the hopper to avoid calling clients accidentally when mass inserting.
    • There is a checkbox to override this behavior if you want to add current clients.
  • Users can now see their Outbound CID in the Profile Dropdown. Clicking will copy to Clipboard.
  • Users can now see any Inbound DID’s that point to their User in the Profile Dropdown. Clicking will copy to Clipboard.

Contact Form

  • Not Taken Policy Status can now be hidden.
  • Lead ID now copies to clipboard if clicked.
  • Dialer ID’s now copy to clipboard. There is a button for these.
  • Clicking the Clients name in the Dialer Info Box will now copy to clipboard.
  • Alternate Notes Layou in Options -> Settings -> Contact Form
    • Per Request: It is now possible to show a Top to Bottom layout for Notes instead of the standard Staggered pattern notes.
  • Fixed some issues with fields that should have been disabled but weren’t being disabled after Verificaiton.
  • Fixed an issue with the Dropdown Converter that was “undisabling” Policy records that should have stayed disabled after verification.
  • Fields and Sections can now be force hidden by Products.
    • Force HIDE Overrides Force Show. Always.

Quick Notes

  • Quick Notes has been Revamped, someone found it so we added some more features.
  • Quick Notes can be Added for the Entire Account, if so everyone can see them.
    • A user Can Enable / Disable the Quick Note in their profile or you can enable it for specific users.
  • Show Last Note on Quick Note now works properly. A Little tab on the left of the quick note will let you open and close the last note if there is one. There is also a copy last note to clipboard button.
  • An Icon will appear in the Footer Bar where you can hide and show the quick notes quickly.
  • The Position of the Quick Note, Having the Last Note Open / Close or the Quick Note Itself Open / Close will follow throughout your session so you can keep it where you want.
  • Added a Button to Snap Quick note back to Bottom Right corner.
  • Removed the “Close Quicknote” Button and replaced it with a Minimize Button.
  • Changed Colors of the Quick notes to match your brand colors.


  • You can now copy pictures and such from the clipboard into a Document directly on the contact for for lead and policy documents by highlighting the grey box in front of browser and pressing ctrl+v.
  • Documents now populate a mime_type field for each document so we know exactly what it is.  This may or may not be useful for you but it is useful for us.
  • Documents now have a “Type” that can be set while uploading. This should make identifying a document easier. You can create your own custom types.
    • Document Types can now be required on the lead or on the Policy based off system and custom types.
    • You can now edit a documents type and description from the contact or from the documents section.
    • Public Documents. You can now set documents to be publicly accessible (without login) and for these we will NOT be storing a log. This is going to be useful for hosting content that you need to link elsewhere where there may be high traffic, or for emailers and such.

Lead Statuses

  • Added an Option for both the System as a Whole, or per Status, to require at least one policy on the lead before converting the lead. It will stop disposition from happening accidentally.
  • Lead Status Relays can now have a Vendor Group limitation added as opposed to just Vendors.


  • TLDialer Ingroup Ranks and Grades
    • Ingroup Ranks and Grades can now be editing on the User edit screen in the TLDialer Tab.
    • Ingroup Ranks and Grades can now be Mass Edited in the TLDialer Tab under Ingroups subtab.
    • We added lots of features to filter the ingroups so you can set the ranks and grades quickly.
      • Mass Set Rank and Grade to a specific number
      • Copy Ranks and Copy Grades from another User
      • Set and Copy Functions will only change the ingroups that are currently filtered so you can find the ingroups you want then just set those. So fast!


  • We now automatically append some data if it’s not provided in case you do a “Whoopsie” and need us to modify a certain subset of uploaded leads.
    • We now automatically add import_id to the lead if it does not exist. It will set it to the current Upload ID for easy searching.
    • We now automatically add import_source to the lead if it does not exist. We use the actual file name that was uploaded (not the processed file name) for easy searching.
  • You can now use Excel UTF-8 CSV’s. We remove the BOM Byte for you when we detect UTF-8. Yay! That was really annoying wasn’t it?
  • Added a Link to Leads via Upload ID if the file is a Process file, otherwise it will not be clickable.
  • Removed “Upload ID”, “Reference ID” and “Download” tabs to save space on the table.
    • Replaced with “Action”, “ID” and XID”. Hover over the Columns to see their true name.
  • Added some Color to Upload History Table so you can more easily identify error files or files currently in process.
  • Field Mapping Changes
    • You can now copy the values you are mapping to internal relational fields to the clipboard. There is a button next to each unique value.
    • There is also a copy all button that will give you a list of these values to paste elsewhere. If you hold Ctrl + Click this copy all button it will only copy the unmapped values.
    • Made it so that when mapping products it shows ALL products in your account including the hidden ones, since many uploads of policies are historical products from other system

Campaigns (Relays & Mailer)

  • “Age” campaign types can now be sent out by hour not just day, this gives you a little more fine tuned control to allow you to send an email 2 or 3 hours after a lead is received for instance.


  • Date / Time Filters now support relative Days. When you open the Relative Time Menu, there is an input and a button that says “Days Ago”. This will allow you to check “X” Days Ago. Type in the number of days and press the Days Ago button and it should work.
  • Date / Time Filters now allow you to enter the following format 2019-04-20 and it will auto format to your preferred format set in system settings.


  • Fields now has a Settings Column that has icons.
    • Custom Fields and Custom Statuses have a ton of icons showing you information on the Custom Fields at a glance.
    • Custom Statuses will show a tiny sample of how the button will look, including a quick glance as to what the button will do.
    • Custom Fields will show you the type of button it is including icon chosen or default icon.
    • Other Fields show the settings as a JSON dump. You can click to copy the data if needed!


  • Explore section column builders now include the ability to rename fields when displaying tables. This works now only in the Explore sections and Agent CPA Report for now.
  • Fixed an issue with saving multi-checkbox selections on refresh.
  • Added Right Click Context Menu to Delete Filter Tab.
  • Filter Tabs can be Added. They do not save yet.


  • When creating a new lead either via Manual, by Overriding the Dupe Checker, or via Inbound or TLDialer Inbound, the lead will now be stamped with the following possible import sources
    • manual
      • Manually Input Leads
    • inbound
      • Inbound Leads via Legacy URL Pop.
    • manual_dupe
      • Manually Input Leads that already exist in the system and you unchecked the Create Dupe option if it is available.
      • We made the Button “Create Dupe?” Turn Red now to make sure you read the dang button.
    • tldialer_inbound
      • Inbounds created through the TLDialer System.


  • Moved Ancillary and Fields settings into new “Settings” tab. This section cannot be mass updated yet.
  • You can now Force Hide Fields and Sections per Product.
  • You can now add Custom Field Validation Rules in Products for Leads, Policies and Dependents.
  • Custom Field Validations Respect the Custom Field’s settings.
    • If you Hide a Field from the System or Agents (Forms ) then the field will not be validated.
    • If you set filters for the Custom Fields, they will not be validated if they do not apply to that lead or policy.
    • All Custom Fields will show regardless of status in the Products Validation settings so you can mix and match filters and requirements.


  • Optimized the query that grabs TLDialer List data. Split into 3 different queries to use indexes.
  • Vendors with Public Facing Search capability, now require an Export setting in the Vendor to be set if you want the vendor to be able to export, it is no longer allowed by default on the advanced vendor report.
  • Fixed an issue with Vendor Log Exports. Should work fine now.
  • Changed the “Hover” effect on Response to Click instead, and included the copy paste functions added in other parts of the system. Fixed an issue with Public Logs not Displaying JSON if not logged in.


  • Added “Total Fronts” to salesboard as well as Fronter Commissions
  • Fronter Commissions will total into the Commissions Paid box if visible.
  • You can now also Toggle a Fronter Icon on the User if the user has that role so you can identify Fronters more easily.


Callbacks got some more love in this patch!

  • Callback section had buttons standardized.
  • My Callbacks section had buttons standardized.
  • Option to set Callback as a Global Callback. Users by default can see their own and global callbacks. You can find this in Settings -> Options -> Contact Form
    • When setting a callback, if the system option is set a checkbox for “Set as Global” will appear as an option.
  • Dialer Callbacks Windows (Modal) now has an Icon next to the leads name that shows whether the callback is yours or global.
  • Icon Added to Callbacks and My Callbacks to show whether the callback is assigned or global.
  • Fixed and issue with Untrash and Uncomplete Callbacks when checking for user max settings. Should work properly now.
  • Removed check for max callbacks when callback is global.
  • Autocomplete Callbacks on next dispo is now an option that can be turned off, but is by default on.
  • Fixed an issue with a timer preventing callbacks from being cleared if they were done within 15 minutes. Now it will only not clear the current callback that has been set if it is for today until you navigate away and come back and re-dispo the lead.

Bugfixes and Improvements

  • All user information now copies to clipboard under your username in the top right.
  • Added “Change Agent of Record” permission.
  • Logs with JSON Data Tags (Such as Request / Response) are now Click to open instead of Hover. If you click the data itself in the Flap when it is open, it should copy the data to clipboard for easier access, no more click and drag for copy pasta!
  • Explore section tables have been revamped slightly.
  • Fixed a couple of minor query issues.
  • Fixed default Daily Reset Limit for Lists in Vendors when adding them.
  • Added Total Quotes to Agent Production Report.

Patch 7.0.4

Explore Beta

  • We have added Links to Explore section on the top menu next to Customers. This will allow you to play with the Explore Section.
  • Changes WILL Happen in this section we have a lot planned for it, the goal is for these sections to replace “Leads” and “Policies”.

TLDialer – Multi-Tab / Window Fixes

PLEASE MAKE SURE TO REFRESH YOUR BROWSER TOMORROW! You might not be able to dial until you log out and in as we changed some core parts of how we connect to the Dialer sessions.

One of the issues we see most often is Agents who have access to Live Agents report get stuck because the softphone tries to re-register while they are on the dialer. Unfortunately we have no logs to reject registration or even know the phone is registered.  This patch should resolve a ton of those issues using our own custom internal system. This issue was one of the reasons we suspect sometimes caused crossed calls.

  • TLDialer now uses an Instance ID passed to the socket server to identify the primary tab. The Instance ID is removed from the URL so you can’t refresh or duplicate tabs onto it and cause problems with registrations. You should only ever have ONE TLDialer tab at a time, however TLDialer commands from other windows should still pass through such as dispositions and such.
  • Duplicating a TLDialer tab should take you to the New Contact Page outside TLDialer.
  • Refreshing the TLDialer tab should take you to the New Contact Page, click TLDialer to start over again. This is actually a cleaner restart!
  • Refreshing the TLDialer tab will disconnect your phone AND log you out via timeout or the next time you click the TLDialer Tab.
  • The Live Agents Page will no longer load the Webphone while you are already in TLDialer.

Everything looks mostly the same but we have solved this really irritating technical hurdle due to browser limitations.

TLDialer – Vendor Sources

  • You can now see the following:
    • Reset List Button.
    • List Active / Inactive.
      • Pressing the Button will Toggle the List On and Off.
    • Total Leads in the List.
    • Total Leads Callable Leads in the List. This does NOT mean Dialable based on your campaign settings. Just that the Called Since Last Reset is set to No.
    • Total Leads in Hopper.
  • TLD Reset Lists now respect the new Vici Feature: Daily Reset Limit and will also show you how many times it has been reset.

Custom Fields

  • Custom Dependent Fields have been added, they work like the rest of them do.

Contact Form

  • Added Calculate Annual Income on the Annual Income field. Press it and it will do the hard maths for the arithmetic impaired. This is useful for putting the Monthly Income and Calculating it into Yearly.
  • Added Custom Dependent Fields into Dependents.
  • Added Options in Settings -> Options to remove Trash for Agents ( under level 30, includes Fronters ).


  • You can now see if a lead has Callback set on the Contact form. There is a little ICON next to the Lead ID / Current Status Button.
  • Agents cannot see other peoples callbacks, but you can give them that ability with “View Lead Callbacks” ability.
  • When you disposition a lead, if you have a callback set for that current day, it will auto complete the callback and any expired callbacks so you don’t need to remember to hit the checkbox.
    • Please do not hoard Callbacks as “Expired” This is no longer possible due to this change, you should be rescheduling and organizing your future calls.

TLDialer Leads

  • Added Area Code Filter.
  • Resets now Respect List Reset Max in Vici.

TLDialer Recordings

  • Added Area Code Filter.
  • Added Length in Seconds Filter.

TLDialer Calls

  • Added Recording ID Filter.

TLDialer Dispositions

  • Added Explanations to Special Statuses: DISPO and WAITTO
  • Changed Y / N Columns to Checkboxes and X’s with color.


  • New Validation Option: SSN Must be 9 Digits.


  • Fixed a Bug on Lead Documents where it was always showing the current date as the date uploaded.
  • Changed Group By in Call Logs to CloseCall ID instead of Unique ID.
  • Added City of Birth to Vendor Post Fields
  • Updated Admin Reports to reflect Stages for Sales instead of Statuses.
  • Fixed an issue with Scripts that loaded on Lead Open not replacing text. Works now!


  • Added Dependent Fields Menu
  • Added Explore Menu
    • Added Leads Menu
    • Added Policies Menu

In the Works!

  • ESignature Generator and Signing system.
    • Digital Signature
    • Use Finger for Signing
    • Auto Generate PDF
    • Track Location, IP Address, etc. for legal purposes.
  • SMS with our Carrier to Text Leads in Real Time.
  • More Commissions Modifications.
  • Multiple IVR Survey Options / Chooser.
  • SalesForce TLDialer Connector.


Patch 7.0.3


  • When an agent loads a TLDialer Lead via a Live Call, whether Manual, Inbound or AutoDial we now remove any leads from the hopper with that Dialer / Lead ID.
    • We also do this again just in case when the agent Dispositions the lead.
  • We can now have a Filter Phone Group set for Clients. When a lead status is pressed that has a Vici Status with Sale Flag associated, it will add the phone numbers for the lead into the Phone Group. This phone group can be used as a filter on campaigns to make sure your outbounds do not dial leads with phone numbers in this phone group.

TLDialer – Agent CPA Report

  • Agent CPA Report has been Launched. We are still modifying and making better / more features.
  • You can find this Report under TLDialer -> Agent CPA.
  • The Agent CPA Report shows you mixed statistics between TLDialer Calls and Sales for the Agent.
    • In terms of Cost or Spend per Agent, we use a new table called tldialer_first_contacts which attaches all the information regarding the TLD Lead and Dialer Call and it’s Origin (Inbound / Outbound) to determine Cost based on the First Attempt at a Lead.
  • Some new Definitions:
    • We have added some new fields into the Calls section (Inbound and Outbound Logs) to determine 2 main types of calls per log. These are also reflected in the tldialer_first_contacts log and will now be standard terminology throughout the system for the call logs.
      •  Inbounds
        • Queue Calls
          • The call came in via a normal inbound DID Route
        • Direct Calls
          • The call was directly to the agent via DID or a Direct Agent Transfer ( Agent Direct )
      • Outbounds
        • Auto Calls
          • The agent received the lead from the Auto Dialer Campaigns.
        • Manual Calls
          • The agent found or created a lead and dialed it.
  • Overrides
    • Overrides allow you to customize the report in many ways. You can override the following data points:
      • Most of the following overrides are presented so you can create a more flat rate Agent CPA calculation that is not reliant on actual lead cost or actual call counts.
      • Inbound and Outbound Breakdown Costs per Lead against CPA.
        • This overrides the Cost value that is pulled from the first contacts table (which comes from TLD) and does a flat calculation at that rate for that type.
        • You can set the Rate to 0, so you can simply remove certain call types from the calculations for CPA (such as Direct Calls / Callbacks and Manual Dials ) You can also set rates higher for more important calls such as inbounds.
        • Leaving Settings blank will use Costs gathered in the tldialer_first_contacts table.
      • Inbound and Outbound Weights against Conversion Rate.
        • You can use any number (including decimals) to count a call type more than once. The default weight for a call type is 1.
        • This effects the Closing % Calculations so you can give more favor to outbounds over inbounds for example.
      • Penalty Threshold.
        • The Penalty Threshold is the Target CPA, which then is used to compare to the Agent’s Actual CPA to see how high or low they are from hitting the target.
  • Note: The Agent CPA Report CORRECTLY will convert a State Routed Outbound to Inbound Conversion as an Outbound Call. The First Agent to touch it is on the Inbound because of the route.
  • Coming Soon: We are working on making this report dynamic so you can show, hide and rename field labels as you like.

TLDialer – New Custom Table – tldialer_first_contacts

  • This table keeps track who contacted a lead first and by what method. It has the added Caveat of also including the TLD Lead ID, the TLD Lead Cost and the TLD Vendor ID for later reference!
  • This table can give us sums of call counts broken down by user to figure out who “took” a lead, or at least contacted it first for calculating into the Agent CPA Report. This is a little more efficient than using the TLD Action Logs which was our original method. We had to make this table to get this data as there where multiple pain points trying to query the data live without this custom table, as the data required does not exist in the Dialer in an Easy to Access Manner. With this table we are able to bring you up-to-date information quicker so it can be pulled in near-real time (about 1 minute behind) compared to waiting over a minute just for a report to load and thrashing the logs.
    • Pain Point 1: Two Logs, Which one was the first contact, how much was the lead worth in TLD?
    • Pain Point 2: State Routing: Inbounds are Converted to Outbounds and in this special case it needs to be noted quickly and efficiently.

Service Objects Validation

  • For SuperAdmins, a second icon shows up next to Validate Address, which will allow you to override the address and accept it as valid.

Contact Form

  • New Option to Mask Phone numbers from people with Fronter Role Only. If Mask Phones for Fronters and Agents is set, it will not override this setting. Any user with Fronter role will have it masked.
  • Now possible to Change PCP Office to PCP Address
  • Married is now Marital Status, instead of a Boolean options (Yes or No) you can now choose single, separated, widowed or divorced. The Married field still exists and checks for married = 1 or 0 or null, if married is not 1 (married) then it considered the person not married.

Lead Statuses

  • Custom Lead Statuses can now be set to Unassign an Agent from a Lead.


  • You can now move policies to another lead. This option will be available for superadmins only. It is a button called “Move” on the top of a policy. A popup will ask you to find the lead you want to move to or you can just type in the Lead ID. This will move the Policy, Any action logs associated with it, as well as any Lead Meta (Custom fields, etc), Documents and Survey Answers. It will also log on the previous lead that a policy was moved out, and on the receiving lead that it was moved in.


  • Leads can now have 4 decimal places for price tracking, for those of you somehow able to buy leads for less than a penny. Good for you!


  • You can now mass send emails to Policies as well as Leads.

Commissions Received

  • Now forcing Chargebacks in the Breakdown to be Negative as well as calculating the total amounts based off the negative.


  • Fixed a bug with Updating Lead Costs as an Admin. It was not accepting the pennies.
  • Fixed an issue with CSS in Vendor Forms.
  • Fixed Minor Issue when searching for fields by field and id.
  • Fixed issue for Empty object in Live Agents Table.
  • Fixed an issue with DateTime, Time and Date Custom Fields when using the alternative Date formats.
  • Finally found the cause of the issue sometimes causing Dialers to Disconnect, it was due to AWS’s internal DNS Failing. Gotta love DNS. We now have failover DNS’s that should maintain reliability.
  • Fixed up some Queries for more faster on the TLDialer Live Agents Page.


  • Updated to latest jQuery