phone.voiceJobTypes
Job types the shop's voice agent may book into live availability (booking_mode live): name, minutes, buffer, deposit, a daily cap and which workers may take them. Owner or office.
| |
|---|
| Who | Agents can call this |
| REST | GET /v1/phone/voice-job-types |
| MCP tool | phone_voiceJobTypes |
| Writes | no |
| Area | Shop |
When to use it
The shop's voice agent can book callers straight onto a worker's calendar, but only when the owner sets booking_mode live with phone.setVoiceAi. It is off by default.
What to tell the owner
Tell them what you found in plain words. Don't read back raw fields.
| Field | Type | Required |
|---|
shop_id | string (uuid) | yes |
include_archived | boolean | no |
Example
GET https://doingwork.work/v1/phone/voice-job-types?shop_id=00000000-0000-4000-8000-000000000000
Output
| Field | Type | Always there |
|---|
data | array | yes |
data[].job_type_id | string | yes |
data[].name | string | yes |
data[].minutes | integer | yes |
data[].buffer_minutes | ['integer', 'null'] | yes |
data[].deposit_minor | ['integer', 'null'] | yes |
data[].fixed_fee_minor | ['integer', 'null'] | yes |
data[].fixed_fee_label | ['string', 'null'] | yes |
data[].max_per_day | ['integer', 'null'] | yes |
data[].person_ids | array | yes |
data[].archived | boolean | yes |
{
"data": [
{
"job_type_id": "00000000-0000-4000-8000-000000000000",
"name": "Ruiz Plumbing",
"minutes": 1,
"buffer_minutes": "...",
"deposit_minor": "...",
"fixed_fee_minor": "...",
"fixed_fee_label": "...",
"max_per_day": "...",
"person_ids": [
"..."
],
"archived": true
}
]
}
Errors
| Code | Status | What to do |
|---|
invalid_input, invalid_token, rate_limited | | Can happen on any call. See errors. |