AI VOICE: Integrating AI Voice Bots With TrackDrive
Discover how AI voice bots can benefit customer communications and streamline sales workflow with TrackDrive.

Interfacing TrackDrive with External AI Bot Agent
TrackDrive allows calls to be intercepted by External Agents to do a quality check or verify/add information before transferring the call to a closing agent or external buyer. Human external agents can see a script for the active call and adjust values on this script or simply on a list of contact fields related to the offer, they press keys on the phone keypad to return the call to TrackDrive to continue routing the call.
However, AI Bots don't have fingers, so the same simple technology we have for human external agents is used for the external AI bot agents with API endpoints to those same keypresses. In fact, you can configure an offer with Human External Agents and AI Bot External Agents on the same offer. It doesn't matter if real keys are pressed or the corresponding API Key Press Endpoints are used, the end result is the same.
This document discusses how to configure the Keypress Flows for controlling the call from the External Agent and how to configure the AI External Agents.
To get more information about how to work with the data in the SIP Header to pull/update call data, visit our API Documentation about 3rd Party Calls.
In TrackDrive - Configure Buyers as External Agents
To setup an External Agent, access the Call Forwarding section of the Buyer Setup, and check the box that this Buyer Record “Forwards To External Agent”. Assuming that you don't already have the desired Keypress Flow configured, click the “+ New” button to add a new Keypress Flow as shown below (you can use the same Keypress Flow on multiple buyer records and may select one that is already configured).

Name and Describe the New Keypress Flow Group. Once the Group is created, you can then add the Keypress Flow Rules for each of the phone keys 0-9, *, and #. A common setup of Keypress Flow Rules is as follows:
Keypress |
Flow |
* |
The call is qualified, route it to an agent/buyer. NOTE: Subsequent presses of the Find a Buyer Flow will find another buyer in the case of a buyer answering with a Hold Queue, Voicemail, or Buyer Agent hangs up |
# |
The caller has been asked to be removed from the calling list. You can configure this as either DNC to block the caller or a Not Interested or any other Call Disposition you choose, but you want to ensure that the disposition will at least move the lead to the end of the schedule. |
6 |
A Callback was scheduled. |
7 |
Voicemail was Detected, but no message was left on this call cadence. |
8 |
Voicemail was Detected, and a voicemail message was left on the caller's machine. |
9 |
Human help is needed as the caller requested a Live Agent on the call. |
The pictures below show the configuration of each of the Keypress Rules in the above table:






External AI Bot Configuration
When a call starts, TrackDrive will send data to the External AI Bot so that the information needed to communicate back to TrackDrive is available to the bot. It is most reliable if the AI Bot can accept calls via SIP and can obtain the data fields in the SIP Header. But if a DID and an HTTP Post are required, that works as well, just not as quick and reliable as SIP communications. Please ask for where you can find IP Addresses that may be sending calls if you need to White List IPs for your AI Bot Platform.
TrackDrive will send some system fields that are required, but any Contact Field can be sent to the bot. It is best practice to always send at least First and Last Name so the caller may be addressed by Name if that data is available. The fields TrackDrive will send that are required for the bot campaign flow and for API communications back to TrackDrive are the following:
td_uuid this is the Unique Call ID from TrackDrive, and this variable will be used for API calls to update the call.
schedule_id this is needed when the caller is telling us to call back at a later time.
caller_id this is the value of the current caller’s phone number.
category this will have a value of inbound, outbound, or scheduled_callback and will be used in an if….then…else to play 3 different messages as the greeting depending on the category of the call.
subdomain this will be in the URL of our API endpoints for talking to the right client’s calls/leads.
vm_url this will be a URL to a recording to play if you detect voicemail, if this is blank, you will not leave a message on that call.
Custom fields should be able to be posted to you and used as token replacement. We will map things like first_name and other common contacts fields to your standards, but we do need to be able to just have a custom variable name come at you and be used in TTS token replacement.
Configure API Endpoints in the Bot to control the call as follows:
Update Call Processing:
URL:
https://{subdomain}.trackdrive.com/api/v1/calls/send_key_press
Headers:
Content-type:application/json
Authorization: Basic (Public/Private KEYs TO BE SUPPLIED by TrackDrive Client}
OR
Authorization: Token (Token found in your own Profile Settings)
Body (example of continue routing with data append):
{
"id": "TRACKDRIVE_CALL_UUID_HERE",
"digits": "*",
"data": {
"medicare_parts_a_b": "true"
}
}
Obviously, the “digits” value will vary depending on what happens with the Caller and Bot on the call.
Schedule a Callback:
NOTE: if a call needs a callback scheduled, you will API the time to do the callback with this API Endpoint, but the Bot would still end the call with a call update that a callback was scheduled.
URL:
https://{subdomain}.trackdrive.com/api/v1/scheduled_callbacks
Headers:
Content-type:application/json
Authorization: Basic (KEY TO BE SUPPLIED}
Body (example of continue routing with data append):
{
"place_call_at": "YYYY-MM-DD HH:MM",
"place_call_time_zone": "Eastern Time (US & Canada)",
"schedule_id": "{schedule_id}",
"to": "{caller_id}"
}