Jobs explained
Work assigned to a worker. Contacts go in, executions and outcomes come out.
A job is the unit of work. "Call every new lead within 5 minutes." "Answer the support line." It has one assigned worker, a trigger, a trust level and a list of contacts.
You create and configure jobs in the dashboard. The API is for feeding them and kicking them.
| Do this | Endpoint |
|---|---|
| Push contacts into a running job | POST /v2/jobs/{id}/contacts |
| Run the job once, right now | POST /v2/jobs/{id}/execute |
| Same as above, older flavour, contact inline | POST /v1/jobs/{id}/trigger |
Get the job id from the URL of the job page in the dashboard.
Vocabulary
Contact. A person the job should reach. Phone or email, plus whatever metadata you want the worker to know. Status goes pending → in_progress → completed | failed | paused.
Execution. One run of the job for one contact (or no contact, for inbound jobs). Status goes pending → running → completed | failed | escalated | cancelled.
Outcome. What happened. qualified, unqualified, voicemail, booked, resolved, lost, escalated. Delivered to you via webhooks.
Job status. draft, running, paused, archived, limit_reached. Only running jobs process contacts.
Trust level. supervised (asks before acting), semi_autonomous, autonomous. Set in the dashboard, read from /v2/agents.
Dispatch
Contacts don't get called the millisecond you post them. A dispatcher runs every minute and hands out a bounded number of contacts per tick (30 by default) to respect the job's schedule and concurrency. Expect a short delay, that's normal.
