custom.typing (входной)
Входной топик аккаунта канала: запись пишет система организации, читает Shtab Connect. Ключ записи — customer.external_id.
Схема inbound.typing.v1 собрана из src/backend/contracts/integrations/custom_channel/inbound.typing.v1.json при сборке портала.
Поля
InboundTyping
Клиент набирает текст. Сигналы чаще одного в 3 секунды на нить отбрасываются.
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
customer | Customer | да | |
draft | string или null | нет | до 20000 симв.. По умолчанию null. |
occurred_at | string (date-time) | да | |
schema_version | integer | нет | По умолчанию 1. |
thread_id | string | нет | до 100 симв.. По умолчанию "". |
type | "custom.typing" | да | Вид варианта: всегда custom.typing. |
Customer
Клиент в системе организации: по external_id Helpdesk находит его карточку.
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
external_id | string | да | от 1 симв., до 100 симв.. |
name | string | нет | до 255 симв.. По умолчанию "". |
Пример
{
"type": "custom.typing",
"schema_version": 1,
"customer": {
"external_id": "client-42",
"name": "Анна Петрова"
},
"thread_id": "order-77",
"draft": "Подскажите, пожал",
"occurred_at": "2026-11-10T09:30:00Z"
}
JSON Schema
{
"$defs": {
"Customer": {
"description": "Клиент в системе организации: по ``external_id`` Helpdesk находит его карточку.",
"properties": {
"external_id": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"name": {
"default": "",
"maxLength": 255,
"type": "string"
}
},
"required": [
"external_id"
],
"title": "Customer",
"type": "object"
},
"InboundTyping": {
"description": "Клиент набирает текст. Сигналы чаще одного в 3 секунды на нить отбрасываются.",
"properties": {
"customer": {
"$ref": "#/$defs/Customer"
},
"draft": {
"anyOf": [
{
"maxLength": 20000,
"type": "string"
},
{
"type": "null"
}
],
"default": null
},
"occurred_at": {
"format": "date-time",
"type": "string"
},
"schema_version": {
"default": 1,
"type": "integer"
},
"thread_id": {
"default": "",
"maxLength": 100,
"type": "string"
},
"type": {
"description": "Вид варианта: всегда `custom.typing`.",
"enum": [
"custom.typing"
]
}
},
"required": [
"type",
"customer",
"occurred_at"
],
"title": "InboundTyping",
"type": "object"
}
},
"$ref": "#/$defs/InboundTyping"
}