Skip to main content

CallHistorySaveRequestDTO

A conversation held in an external system — a call, an offline meeting or an online meeting — submitted with POST /v1/open-api/call-history.

Only the fields below are accepted. Everything derivable is computed by the platform: the end timestamp, the hangup cause, the internal direction bookkeeping, and the provider (always OPEN_API).

uuidstringrequired

Your own identifier for the conversation — the idempotency key. Re-sending the same value does not create a second record. The platform stores it prefixed with oapi-, and that prefixed form is what the filter endpoint returns.

Possible values: non-empty and <= 128 characters

Example: crm-meet-99001
kindConversationKindrequired

Kind of conversation.

Possible values: [CALL, OFFLINE_MEET, ONLINE_MEET]

Example: CALL
leadIdint64required

The lead the conversation belongs to. Required — this flow never looks a lead up by phone number and never creates one. An unknown id fails the async write.

Example: 99436
employeeIdint32required

The UYSOT employee who held the conversation — an id from POST /v1/open-api/employee/filter.

Example: 252
startedAtint64required

When the conversation started, epoch seconds.

Example: 1719734400
durationSecint32required

Total length of the conversation in seconds.

Possible values: >= 1

Example: 180
talkTimeSecint32nullable

Net talk time in seconds. Defaults to durationSec when omitted.

Possible values: >= 0

Example: 155
directionCallDirectionnullable

Only meaningful for kind: CALL. Defaults to INBOUND when omitted.

Possible values: [INBOUND, OUTBOUND]

Example: INBOUND
answeredbooleannullable

Only meaningful for kind: CALL — whether the call was picked up. Defaults to true when omitted.

Example: true
clientPhonestringnullable

The client's number, unformatted. When omitted the platform takes it from the lead's contact.

Possible values: <= 32 characters

Example: +998901234567
recordUrlstringnullable

Link to the audio recording. The platform downloads it and stores the file itself, so a temporary link is fine as long as it is reachable while the write is processed.

Possible values: <= 2048 characters

Example: https://files.acme.example/records/99001.mp3
CallHistorySaveRequestDTO
{
"uuid": "crm-meet-99001",
"kind": "CALL",
"leadId": 99436,
"employeeId": 252,
"startedAt": 1719734400,
"durationSec": 180,
"talkTimeSec": 155,
"direction": "INBOUND",
"answered": true,
"clientPhone": "+998901234567",
"recordUrl": "https://files.acme.example/records/99001.mp3"
}