К содержанию
sapportlydocs
Панель

Диалоги и ответы

Лента канала-источника, история, ответ, назначение. Channel в URL — тот же ключ, что при приёме входящих.

Список

GET/v1/conversations

Нужно право conversations:read. Новые сверху. Поддерживается фильтр q для поиска и keyset-страницы через before_at + before_channel. Саммари содержит последний текст и время, идентификатор сообщения, уровень шифрования, непрочитанные, назначение и данные посетителя. Не выводите состояние жизненного цикла из текста превью: закрытие, повторное открытие и архивирование — отдельные операции панели.

TypeScript
for await (const c of client.conversations.iterate({ q: "возврат" })) {
  console.log(c.channel, c.last_message, c.last_at);
}

История

GET/v1/conversations/{channel}/messages

Страница внутри хронологическая, пагинация назад: курсор с первого элемента (before_message_at, before_message_id, при наличии before_channel_sequence — нулевой sequence в query не шлите). SDK: iterateMessages. После reconnect сокета это способ догнать пропуски — интеграторский WS историю не реплеит. В REST нет role (оно только в WS); не доставляйте человеку историю повторно.

TypeScript
for await (const m of client.conversations.iterateMessages("custom:shop", {
  limit: 100,
  maxPages: 5,
})) {
  console.log(m.id, m.body, m.created_at);
}

Ответ

POST/v1/conversations/{channel}/messages

Нужно право conversations:write. Ключ идемпотентности можно не передавать. Кадр WS: message.delivered с role: "agent" (иногда assistant). Свой inbox.reply придёт с echo: true. На custom: человеку кадр сам не уйдёт. Гайд: Входящие и живой канал.

TypeScript
await client.conversations.reply(threadChannel, { body: "Готово" });

Назначение

PUT/v1/conversations/{channel}/assignment
POST/v1/conversations/{channel}/transfer

Нужно право conversations:assign. Transfer пишет аудит и не ретраится SDK.

Вложения и секретность

В ответе можно передать attachment_ids, полученные через upload intent. Обычный REST может вернуть открытый текст только для разрешённого канала; в E2EE-треде тело остаётся зашифрованным и требует ключа участника.

Страница полезна?

/docs/api/conversations
Диалоги API — лента, история, ответ, назначение · Sapportly Docs