Private preview of the new site. Not live.

phone.callCustomer

Ask for one AI call to the job's customer: appointment_reminder (needs a future visit_id), on_my_way (a visit today with an assigned worker) or job_status (an open job). No sales or payment calls. The call is refused with the reason unless the customer gave AI call consent themselves in the last 12 months, is not on the stop list, and is not in Washington; it waits for 9 AM to 8 PM where the customer is; at most 1 attempt per job per day (plus one more on_my_way call that day when the first was not answered) and 2 per customer per week. Owner or office.

WhoAgents can call this
RESTPOST /v1/phone/ai-calls
MCP toolphone_callCustomer
Writesyes, send an Idempotency-Key
AreaShop

When to use it

Ask for one AI call to the job's customer: appointment_reminder (needs a future visit_id), on_my_way (a visit today with an assigned worker) or job_status (an open job). No sales or payment calls.

What to tell the owner

Say what you did in plain words and what happens next.

Input

FieldTypeRequired
shop_idstring (uuid)yes
job_idstring (uuid)yes
visit_idstring (uuid)no
purposestring (one of appointment_reminder, on_my_way, job_status)yes

Example

POST https://doingwork.work/v1/phone/ai-calls
content-type: application/json
Idempotency-Key: 3f1c...

{
  "shop_id": "00000000-0000-4000-8000-000000000000",
  "job_id": "00000000-0000-4000-8000-000000000000",
  "purpose": "appointment_reminder"
}

Output

JSON. The response shape isn't published yet; read the fields you need and ignore the rest. Errors are {code, message, status}.

Errors

CodeStatusWhat to do
invalid_input, invalid_token, rate_limitedCan happen on any call. See errors.