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.

Request Example

curl -X POST "https://[your-subdomain].trackdrive.com/api/v1/schedules/make_call"   -H "Authorization: Basic BASE64_ENCODED_PUBLIC_KEY_AND_PRIVATE_KEY"   -H "Content-Type: application/json"   -d '{
    "schedule_id": "123",
    "to": "+17195551234",
    "data": {
      "first_name": "John",
      "last_name": "Doe",
      "custom_field": "example"
    }
  }'

Params

Param name
Description
Validations
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 to, lead_token and schedule_id are not required and are ignored. This is the preferred way to promote a lead you already created, because it never creates a duplicate.

Validations:

  • Must be a String

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) together with to when you are not passing a lead_id.

Validations:

lead_token
Optional

The token for the Schedule where you want lead to originate. Get it from: trackdrive.com/schedules

Validations:

  • Must be a String

to
Optional

Destination phone number to dial. Must be a valid number and not suppressed. Required unless a lead_id is provided (in which case the lead’s number is used).

Validations:

  • Must be a String

data
Optional

Optional hash of additional lead attributes (eg traffic_source_id). Used to route the lead through a lead-distribution schedule and stored on any lead that is created.

Validations:

  • Must be a Hash