Schedules
The lead distribution and dialing configuration that controls how leads flow through your account and get called.
GET /schedules
Authorization Requiredhttps://[your-subdomain].trackdrive.com/api/v1/schedules
List Schedules.
Lists the schedules in your account. Supports full-text search, filtering by a creation date range, sorting, and pagination, and results can be returned as JSON or CSV. Each schedule includes its actions, end-of-schedule actions, and triggers.
Supported Formats
json, csvParams
| Param name | Description | ||||||
|---|---|---|---|---|---|---|---|
|
serializer Optional Blank value allowed |
This endpoint supports multiple response formats. Pass
|
||||||
|
page Optional |
Return the next page of results.
|
||||||
|
created_at_to Optional |
Date formatted like 2016-01-01 12:25:15 -0500
|
||||||
|
created_at_from Optional |
Date formatted like 2016-01-01 12:25:15 -0500
|
||||||
|
order Optional |
Sort results by this field.
|
||||||
|
order_dir Optional |
Sort results in ascending or descending order.
|
||||||
|
fulltext Optional |
Search for any record that matches this text
|
||||||
|
columns Optional |
Specify the columns you would like returned by the API for a given resource.
Limiting the columns can significantly increase API response time since only the requested data will be processed.
columns=uuid,number,created_at
Must be any combination of:
|
GET /schedules/new
Authorization Requiredhttps://[your-subdomain].trackdrive.com/api/v1/schedules/new
Build Schedule with defaults.
Builds an unsaved schedule populated with Trackdrive's default attribute values so you can preview the settings before calling create. Nothing is saved to your account.
Params
| Param name | Description | ||||||
|---|---|---|---|---|---|---|---|
|
serializer Optional Blank value allowed |
This endpoint supports multiple response formats. Pass
|
POST /schedules
Authorization Requiredhttps://[your-subdomain].trackdrive.com/api/v1/schedules
Create Schedule.
Creates a new schedule in your account, used to configure lead distribution and dialing, from submitted attributes such as name, linked offer, description, and paused state.
Params
| Param name | Description | ||||||
|---|---|---|---|---|---|---|---|
|
serializer Optional Blank value allowed |
This endpoint supports multiple response formats. Pass
|
||||||
|
schedule_type Optional Blank value allowed |
The type of schedule to create, eg
|
||||||
|
name Optional Blank value allowed |
Name
|
||||||
|
offer_id Optional Blank value allowed |
Offer
|
||||||
|
description Optional Blank value allowed |
A human readable description of the record.
|
||||||
|
paused Optional Blank value allowed |
Paused
|
||||||
|
external_record_id Optional Blank value allowed |
Your own identifier for this schedule, used to correlate it with a record in an external system.
|
||||||
|
off_hook_enabled Optional Blank value allowed |
Turns on Instant Agent Mode, which sends calls to logged-in agents through
|
||||||
|
dial_agents_number_id Optional Blank value allowed |
The number agents call in to when
|
||||||
|
action_dial_with_type Optional Blank value allowed |
Whether outbound dialing from this schedule uses a single Number or a Ring Pool.
|
||||||
|
dial_consumers_number_id Optional Blank value allowed |
The number used to dial leads when
|
||||||
|
dial_caller_name Optional Blank value allowed |
The caller ID name shown to leads when this schedule places a call. Limited to 15 characters.
|
||||||
|
action_dial_skip_mobile Optional Blank value allowed |
Skip dialing lead phone numbers identified as mobile.
|
||||||
|
enforce_tcpa_actions_today Optional Blank value allowed |
Only run TCPA-restricted actions when the current day still allows contacting the lead.
|
||||||
|
skip_placing_calls_until_agent_count_exceeds Optional Blank value allowed |
Delay placing outbound calls until at least this many agents are logged into the offer.
|
||||||
|
buyer_is_available_with_qa_agents Optional Blank value allowed |
Treat buyers as available for IVR dialing while agents are in QA.
|
||||||
|
instant_agent_dial_weight Optional Blank value allowed |
The relative weight given to this schedule when Instant Agent Mode distributes leads across multiple schedules.
|
||||||
|
distribute_calls_across_schedules Optional Blank value allowed |
Allow Instant Agent Mode to distribute calls for this schedule across other schedules on the same offer.
|
||||||
|
leads_sort_order_type Optional Blank value allowed |
The order leads are dialed in during Instant Agent Mode, eg
|
||||||
|
real_time_priority Optional Blank value allowed |
The dial priority used when
|
||||||
|
allow_rtp_after_hours Optional Blank value allowed |
Allow real-time-priority leads to be dialed outside of business hours.
|
||||||
|
intersperse_leads Optional Blank value allowed |
Mix in leads sorted by
|
||||||
|
intersperse_sort_order_type Optional Blank value allowed |
The sort order used for the interspersed leads when
|
||||||
|
intersperse_percent Optional Blank value allowed |
The percentage of dialed leads, between 5 and 95, drawn from the interspersed sort order.
|
||||||
|
available_cc_percentage Optional Blank value allowed |
The percentage of the offer’s concurrency cap this schedule may use for outbound calls. Leave blank for unlimited.
|
||||||
|
calls_on_hold_limit Optional Blank value allowed |
The maximum number of calls this schedule will hold at once.
|
||||||
|
callback_expiry_seconds Optional Blank value allowed |
How long, in seconds, a scheduled callback remains valid before it expires.
|
||||||
|
before_schedule_action_dial_next_action_seconds Optional Blank value allowed |
How long, in seconds, to wait before moving a lead to the next dial action.
|
||||||
|
use_for_scheduled_callbacks Optional Blank value allowed |
Allow leads on this schedule to be placed into scheduled callbacks.
|
||||||
|
enabled_automatically_place_scheduled_callbacks Optional Blank value allowed |
Automatically place scheduled callbacks instead of requiring an agent to dial them manually.
|
||||||
|
use_machine_detection Optional Blank value allowed |
Use answering machine detection on outbound calls from this schedule.
|
||||||
|
action_sms_use_ring_pool Optional Blank value allowed |
Send SMS actions from a Ring Pool instead of a single number.
|
||||||
|
action_sms_ring_pool_id Optional Blank value allowed |
The Ring Pool used to send SMS actions when
|
||||||
|
action_sms_number_id Optional Blank value allowed |
The number used to send SMS actions when
|
||||||
|
contact_caller_permission_required Optional Blank value allowed |
Require the lead’s permission before running certain schedule actions.
|
||||||
|
contact_caller_permission_action_types Optional Blank value allowed |
The action types that require contact caller permission when
|
||||||
|
require_traffic_source_id Optional Blank value allowed |
Reject leads submitted to this schedule without a
|
||||||
|
lead_traffic_source_reject_duplicates Optional Blank value allowed |
Reject a lead when another lead with the same traffic source already exists on this schedule.
|
||||||
|
enforce_contact_field_validations Optional Blank value allowed |
Validate submitted leads against this schedule’s contact field configuration.
|
||||||
|
minimum_caller_number_length Optional Blank value allowed |
Reject leads whose phone number has fewer digits than this.
|
||||||
|
maximum_caller_number_length Optional Blank value allowed |
Reject leads whose phone number has more digits than this.
|
||||||
|
lead_duplicate_timeframe_scope Optional Blank value allowed |
Whether
|
||||||
|
max_leads_per_remote_ip Optional Blank value allowed |
The maximum number of leads accepted from the same remote IP within
|
||||||
|
max_leads_per_remote_ip_interval Optional Blank value allowed |
The interval, in seconds, over which
|
||||||
|
use_do_not_call Optional Blank value allowed |
Reject leads whose number is on the Do Not Call list.
|
||||||
|
use_dnc_litigators Optional Blank value allowed |
Reject leads whose number belongs to a known DNC litigator.
|
||||||
|
reject_number_not_in_service Optional Blank value allowed |
Reject leads whose number is not in service.
|
||||||
|
buyer_suppression_id Optional Blank value allowed |
The Buyer Suppression list used to suppress leads and callers on this schedule.
|
||||||
|
tcpa_shield_enabled Optional Blank value allowed |
Check leads against TCPA Shield before dialing them.
|
||||||
|
tcpa_shield_integration_id Optional Blank value allowed |
The TCPA Shield integration used when
|
||||||
|
blacklist_alliance_enabled Optional Blank value allowed |
Check leads against Blacklist Alliance before dialing them.
|
||||||
|
blacklist_alliance_integration_id Optional Blank value allowed |
The Blacklist Alliance integration used when
|
||||||
|
daylight_hours_open Optional Blank value allowed |
The time of day, in
|
||||||
|
daylight_hours_close Optional Blank value allowed |
The time of day, in
|
||||||
|
scheduled_callback_hours_open Optional Blank value allowed |
The time of day, in
|
||||||
|
scheduled_callback_hours_close Optional Blank value allowed |
The time of day, in
|
||||||
|
enable_public_show Optional Blank value allowed |
Publish this schedule’s posting instructions page. Turning this on requires the company to have completed identity verification.
|
||||||
|
enable_public_index Optional Blank value allowed |
List this schedule’s posting instructions page on the company’s public index.
|
||||||
|
public_name Optional Blank value allowed |
The title shown on this schedule’s public posting instructions page.
|
||||||
|
public_description Optional Blank value allowed |
The rich-text description shown on this schedule’s public posting instructions page.
|
POST /schedules/make_call
Authorization Requiredhttps://[your-subdomain].trackdrive.com/api/v1/schedules/make_call
Call a lead immediately
Places an outbound call immediately. This is the endpoint to use for a “promote” / “call now” action.
Identifying who to call (choose one):
• lead_id — dials that exact existing Lead. Its number is used as to and its schedule is used to dial. Nothing new is created, so a promote never produces a duplicate lead. This is the recommended option.
• lead_token (a Schedule’s “Leads API Key”) or schedule_id — identifies the Schedule to dial from. You must also pass to (the number to dial).
Schedule / lead distribution routing:
The resolved schedule takes the same code path as POST /api/v1/leads. If it is a lead-distribution (“router”) schedule, the matching distribution is resolved from the submitted data (eg traffic_source_id) and the call is routed to that distribution’s downstream target schedule. If no distribution matches, the request is rejected.
Which lead gets dialed (when using lead_token/schedule_id + to):
• If a live lead is already enrolled in the resolved schedule for that number, it is reused and dialed — no duplicate is created (the “promote” case).
• Otherwise a one-off, offer-owned lead is created and dialed. This places a single call without enrolling the contact into the schedule’s dialing cadence.
Guards enforced before dialing:
• The schedule must be active.
• Account CPS (calls per second) limit.
• DNC / contact suppression rules.
• The same number cannot be dialed more than once every 30 seconds.
• The destination number must be valid.
Returns a serialized Call record on success. Raises errors for an unknown lead_id, an unresolvable or inactive schedule, no matching lead distribution, invalid numbers, suppressed contacts, exceeded CPS, recently-dialed numbers, or duplicate concurrent leads.
Params
| Param name | Description |
|---|---|
|
lead_id Optional |
The TrackDrive ID (UUID) of an existing Lead to dial. When provided, the call uses this exact lead — its number is dialed and its schedule is used — so
|
|
schedule_id Optional |
The ID of the Schedule to dial from. Must belong to the current company and be active. Use this (or
|
|
lead_token Optional |
The token for the Schedule where you want lead to originate. Get it from: trackdrive.com/schedules
|
|
to Optional |
Destination phone number to dial. Must be a valid number and not suppressed. Required unless a
|
|
data Optional |
Optional hash of additional lead attributes (eg
|
GET /schedules/:id
Authorization Requiredhttps://[your-subdomain].trackdrive.com/api/v1/schedules/:id
Get Schedule by id.
Retrieves a single schedule by its Trackdrive internal ID.
Params
| Param name | Description | ||||||
|---|---|---|---|---|---|---|---|
|
serializer Optional Blank value allowed |
This endpoint supports multiple response formats. Pass
|
PUT /schedules/:id
Authorization Requiredhttps://[your-subdomain].trackdrive.com/api/v1/schedules/:id
Update Schedule by id.
Updates an existing schedule's settings, such as its name, linked offer, description, paused state, or lead duplicate timeframe. Only the attributes you include are changed.
Params
| Param name | Description | ||||||
|---|---|---|---|---|---|---|---|
|
serializer Optional Blank value allowed |
This endpoint supports multiple response formats. Pass
|
||||||
|
name Optional Blank value allowed |
Name
|
||||||
|
offer_id Optional Blank value allowed |
Offer
|
||||||
|
description Optional Blank value allowed |
A human readable description of the record.
|
||||||
|
paused Optional Blank value allowed |
Paused
|
||||||
|
external_record_id Optional Blank value allowed |
Your own identifier for this schedule, used to correlate it with a record in an external system.
|
||||||
|
off_hook_enabled Optional Blank value allowed |
Turns on Instant Agent Mode, which sends calls to logged-in agents through
|
||||||
|
dial_agents_number_id Optional Blank value allowed |
The number agents call in to when
|
||||||
|
action_dial_with_type Optional Blank value allowed |
Whether outbound dialing from this schedule uses a single Number or a Ring Pool.
|
||||||
|
dial_consumers_number_id Optional Blank value allowed |
The number used to dial leads when
|
||||||
|
dial_caller_name Optional Blank value allowed |
The caller ID name shown to leads when this schedule places a call. Limited to 15 characters.
|
||||||
|
action_dial_skip_mobile Optional Blank value allowed |
Skip dialing lead phone numbers identified as mobile.
|
||||||
|
enforce_tcpa_actions_today Optional Blank value allowed |
Only run TCPA-restricted actions when the current day still allows contacting the lead.
|
||||||
|
skip_placing_calls_until_agent_count_exceeds Optional Blank value allowed |
Delay placing outbound calls until at least this many agents are logged into the offer.
|
||||||
|
buyer_is_available_with_qa_agents Optional Blank value allowed |
Treat buyers as available for IVR dialing while agents are in QA.
|
||||||
|
instant_agent_dial_weight Optional Blank value allowed |
The relative weight given to this schedule when Instant Agent Mode distributes leads across multiple schedules.
|
||||||
|
distribute_calls_across_schedules Optional Blank value allowed |
Allow Instant Agent Mode to distribute calls for this schedule across other schedules on the same offer.
|
||||||
|
leads_sort_order_type Optional Blank value allowed |
The order leads are dialed in during Instant Agent Mode, eg
|
||||||
|
real_time_priority Optional Blank value allowed |
The dial priority used when
|
||||||
|
allow_rtp_after_hours Optional Blank value allowed |
Allow real-time-priority leads to be dialed outside of business hours.
|
||||||
|
intersperse_leads Optional Blank value allowed |
Mix in leads sorted by
|
||||||
|
intersperse_sort_order_type Optional Blank value allowed |
The sort order used for the interspersed leads when
|
||||||
|
intersperse_percent Optional Blank value allowed |
The percentage of dialed leads, between 5 and 95, drawn from the interspersed sort order.
|
||||||
|
available_cc_percentage Optional Blank value allowed |
The percentage of the offer’s concurrency cap this schedule may use for outbound calls. Leave blank for unlimited.
|
||||||
|
calls_on_hold_limit Optional Blank value allowed |
The maximum number of calls this schedule will hold at once.
|
||||||
|
callback_expiry_seconds Optional Blank value allowed |
How long, in seconds, a scheduled callback remains valid before it expires.
|
||||||
|
before_schedule_action_dial_next_action_seconds Optional Blank value allowed |
How long, in seconds, to wait before moving a lead to the next dial action.
|
||||||
|
use_for_scheduled_callbacks Optional Blank value allowed |
Allow leads on this schedule to be placed into scheduled callbacks.
|
||||||
|
enabled_automatically_place_scheduled_callbacks Optional Blank value allowed |
Automatically place scheduled callbacks instead of requiring an agent to dial them manually.
|
||||||
|
use_machine_detection Optional Blank value allowed |
Use answering machine detection on outbound calls from this schedule.
|
||||||
|
action_sms_use_ring_pool Optional Blank value allowed |
Send SMS actions from a Ring Pool instead of a single number.
|
||||||
|
action_sms_ring_pool_id Optional Blank value allowed |
The Ring Pool used to send SMS actions when
|
||||||
|
action_sms_number_id Optional Blank value allowed |
The number used to send SMS actions when
|
||||||
|
contact_caller_permission_required Optional Blank value allowed |
Require the lead’s permission before running certain schedule actions.
|
||||||
|
contact_caller_permission_action_types Optional Blank value allowed |
The action types that require contact caller permission when
|
||||||
|
require_traffic_source_id Optional Blank value allowed |
Reject leads submitted to this schedule without a
|
||||||
|
lead_traffic_source_reject_duplicates Optional Blank value allowed |
Reject a lead when another lead with the same traffic source already exists on this schedule.
|
||||||
|
enforce_contact_field_validations Optional Blank value allowed |
Validate submitted leads against this schedule’s contact field configuration.
|
||||||
|
minimum_caller_number_length Optional Blank value allowed |
Reject leads whose phone number has fewer digits than this.
|
||||||
|
maximum_caller_number_length Optional Blank value allowed |
Reject leads whose phone number has more digits than this.
|
||||||
|
lead_duplicate_timeframe_scope Optional Blank value allowed |
Whether
|
||||||
|
max_leads_per_remote_ip Optional Blank value allowed |
The maximum number of leads accepted from the same remote IP within
|
||||||
|
max_leads_per_remote_ip_interval Optional Blank value allowed |
The interval, in seconds, over which
|
||||||
|
use_do_not_call Optional Blank value allowed |
Reject leads whose number is on the Do Not Call list.
|
||||||
|
use_dnc_litigators Optional Blank value allowed |
Reject leads whose number belongs to a known DNC litigator.
|
||||||
|
reject_number_not_in_service Optional Blank value allowed |
Reject leads whose number is not in service.
|
||||||
|
buyer_suppression_id Optional Blank value allowed |
The Buyer Suppression list used to suppress leads and callers on this schedule.
|
||||||
|
tcpa_shield_enabled Optional Blank value allowed |
Check leads against TCPA Shield before dialing them.
|
||||||
|
tcpa_shield_integration_id Optional Blank value allowed |
The TCPA Shield integration used when
|
||||||
|
blacklist_alliance_enabled Optional Blank value allowed |
Check leads against Blacklist Alliance before dialing them.
|
||||||
|
blacklist_alliance_integration_id Optional Blank value allowed |
The Blacklist Alliance integration used when
|
||||||
|
daylight_hours_open Optional Blank value allowed |
The time of day, in
|
||||||
|
daylight_hours_close Optional Blank value allowed |
The time of day, in
|
||||||
|
scheduled_callback_hours_open Optional Blank value allowed |
The time of day, in
|
||||||
|
scheduled_callback_hours_close Optional Blank value allowed |
The time of day, in
|
||||||
|
enable_public_show Optional Blank value allowed |
Publish this schedule’s posting instructions page. Turning this on requires the company to have completed identity verification.
|
||||||
|
enable_public_index Optional Blank value allowed |
List this schedule’s posting instructions page on the company’s public index.
|
||||||
|
public_name Optional Blank value allowed |
The title shown on this schedule’s public posting instructions page.
|
||||||
|
public_description Optional Blank value allowed |
The rich-text description shown on this schedule’s public posting instructions page.
|
||||||
|
sortable_order Optional Blank value allowed |
The order in which records will be sorted. Values are sorted in ascending order; smaller values are listed first.
|
||||||
|
lead_duplicate_timeframe Optional Blank value allowed |
The period of time, in seconds, that must elapse before the same caller can create another lead on this schedule.
|
DELETE /schedules/:id
Authorization Requiredhttps://[your-subdomain].trackdrive.com/api/v1/schedules/:id
Destroy Schedule by id.
Soft-deletes a schedule by its Trackdrive internal ID. The schedule stops distributing and dialing leads, but the record is retained rather than permanently erased and can be recovered later.
Params
| Param name | Description | ||||||
|---|---|---|---|---|---|---|---|
|
serializer Optional Blank value allowed |
This endpoint supports multiple response formats. Pass
|