Calls
Scheduled calls.
5 actions. Each is callable by the agent as a tool, over HTTP via /api/invoke, and (usually) from a UI page.
calls.list
GET
List calls (live or recorded) — Meet, Zoom, Teams, Discord voice, phone, internal.
- AI tool:
calls_list - API:
GET /api/invoke/calls.list
Input
| Field | Type | Required | Description |
|---|---|---|---|
conversationId |
string | — | |
status |
string | — | |
limit |
integer | — | |
offset |
integer | — | |
orderBy |
string | — | |
orderDir |
"asc" | "desc" | — | |
q |
string | — |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"conversationId": {
"type": "string",
"minLength": 1
},
"status": {
"type": "string"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 500
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"orderBy": {
"type": "string"
},
"orderDir": {
"type": "string",
"enum": [
"asc",
"desc"
]
},
"q": {
"type": "string"
}
}
}calls.schedule
POST · mutating
Schedule a call (meet/zoom/teams) inside a conversation.
- AI tool:
calls_schedule - API:
POST /api/invoke/calls.schedule
Input
| Field | Type | Required | Description |
|---|---|---|---|
conversationId |
string | yes | |
provider |
string | — | |
title |
string | — | |
scheduledFor |
any | — | |
joinUrl |
string | — | |
participants |
object[] | — |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"conversationId": {
"type": "string",
"minLength": 1
},
"provider": {
"default": "internal",
"type": "string"
},
"title": {
"type": "string"
},
"scheduledFor": {},
"joinUrl": {
"type": "string"
},
"participants": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
}
},
"required": [
"conversationId"
]
}calls.update
PATCH · mutating
Update a call (status, recording url, transcript, ended-at).
- AI tool:
calls_update - API:
PATCH /api/invoke/calls.update
Input
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | yes | |
patch |
object | yes |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"patch": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"conversationId": {
"type": "string",
"minLength": 1
},
"provider": {
"default": "internal",
"type": "string",
"enum": [
"internal",
"meet",
"zoom",
"teams",
"discord-voice",
"phone"
]
},
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"externalRef": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"joinUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"participants": {
"default": [],
"type": "array",
"items": {
"type": "object",
"properties": {
"actorId": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string"
},
"externalHandle": {
"type": "string"
},
"role": {
"type": "string",
"enum": [
"host",
"attendee",
"agent"
]
}
}
}
},
"status": {
"default": "scheduled",
"type": "string",
"enum": [
"scheduled",
"live",
"ended",
"cancelled",
"missed"
]
},
"scheduledFor": {
"anyOf": [
{},
{
"type": "null"
}
]
},
"startedAt": {
"anyOf": [
{},
{
"type": "null"
}
]
},
"endedAt": {
"anyOf": [
{},
{
"type": "null"
}
]
},
"durationMs": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"recordingUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"transcript": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"profileId": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"computeSessionId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"createdAt": {},
"updatedAt": {}
}
}
},
"required": [
"id",
"patch"
]
}calls.dial
POST · mutating
Place an outbound call. from is one of the workspace's phone numbers; to is an E.164 number or a platform actor id. Returns the call row + provider reference.
When the agent calls it: Use this when the human asks the agent to call someone — pass the actor id when calling a known user, or an E.164 number otherwise.
- AI tool:
calls_dial - API:
POST /api/invoke/calls.dial
Input
| Field | Type | Required | Description |
|---|---|---|---|
fromPhoneNumberId |
string | yes | |
toNumber |
string | — | |
toActorId |
string | — | |
title |
string | — | |
conversationId |
string | — | |
twiml |
string | — |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"fromPhoneNumberId": {
"type": "string",
"minLength": 1
},
"toNumber": {
"type": "string"
},
"toActorId": {
"type": "string",
"minLength": 1
},
"title": {
"type": "string"
},
"conversationId": {
"type": "string",
"minLength": 1
},
"twiml": {
"type": "string"
}
},
"required": [
"fromPhoneNumberId"
]
}calls.hangup
POST · mutating
End a live call.
- AI tool:
calls_hangup - API:
POST /api/invoke/calls.hangup
Input
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | yes |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": [
"id"
]
}