Документация

Справочник методов

Все методы под одним базовым адресом, с JSON в обе стороны и единым форматом ошибок. Каждый метод указывает право ключа, без которого вернёт 403.

Служебные

3

Проверка ключа и справочники

get
/api/v1/pingлюбой действующий ключ

Проверить ключ

Ответ 200Ключ действителен

ПолеТипОписание
okboolean—
organizationobject—
organization.idstring—
organization.namestring—
scopesstring[]—

Ошибки

  • 401 Ключ не передан или недействителен
  • 429 Превышен лимит запросов

Формат тела ошибки — в разделе «Ошибки» обзора.

get
/api/v1/channelsлюбой действующий ключ

Каталог каналов

Список каналов каскада и их готовность. Читайте его вместо того, чтобы зашивать список каналов в код: новые каналы появляются здесь автоматически.

Ответ 200Каналы

ПолеТипОписание
channelsobject[]—
channels[].key"EMAIL" | "SMS" | "MAX" | "TELEGRAM"—
channels[].slugstring—
channels[].labelstring—
channels[].contactFieldstring—
channels[].configuredboolean—
channels[].sendEndpointstring—

Ошибки

  • 401 Ключ не передан или недействителен
  • 429 Превышен лимит запросов

Формат тела ошибки — в разделе «Ошибки» обзора.

get
/api/v1/locationsправо locations:read

Список локаций

Ответ 200Локации организации

ПолеТипОписание
locationsobject[]—
locations[].idstring—
locations[].namestring—
locations[].addressstring—
locations[].citystring—

Ошибки

  • 401 Ключ не передан или недействителен
  • 403 Ключу не выдано нужное право
  • 429 Превышен лимит запросов

Формат тела ошибки — в разделе «Ошибки» обзора.

Контакты

1

Передача клиентов бизнеса из вашей системы

post
/api/v1/contactsправо contacts:write

Передать контакт клиента

Создаёт или обновляет контакт по вашему externalId. С флагом startCascade сразу ставит его в каскад — это самый короткий путь для интеграции с CRM: одно событие «заказ закрыт» → один вызов.

Заголовки

  • Idempotency-Key (необязательный) — Повтор запроса с тем же ключом вернёт сохранённый ответ и НЕ отправит сообщения повторно. Обязателен, если запрос инициирует вебхук вашей CRM с ретраями.

Тело запроса

JSON, заголовок Content-Type: application/json.

ПолеТипОписание
externalIdstringID клиента в вашей системе — ключ дедупликации
namestring—
emailstring (email)—
phonestring—
locationIdstring—
consentAtstring (date-time)Когда клиент дал согласие на коммуникацию
attributesobjectПроизвольные поля вашей системы
startCascadebooleanСразу поставить контакт в каскад запроса отзыва (по умолчанию false)
flowIdstringСценарий каскада; по умолчанию — сценарий организации

Ответ 200Контакт сохранён

ПолеТипОписание
contactobject—
cascadeobject(может быть null)
cascade.idstring—
cascade.queuedinteger—

Ошибки

  • 400 Некорректный запрос
  • 401 Ключ не передан или недействителен
  • 402 Тариф не позволяет операцию
  • 403 Ключу не выдано нужное право
  • 404 Объект не найден
  • 409 Конфликт: повтор Idempotency-Key с другим телом или канал не настроен
  • 429 Превышен лимит запросов

Формат тела ошибки — в разделе «Ошибки» обзора.

Каскады

4

Запуск и статус каскадных рассылок

get
/api/v1/flowsправо cascades:read

Сценарии каскада

Последовательности шагов «канал + задержка». Идентификатор сценария передаётся в POST /api/v1/cascades.

Ответ 200Сценарии

ПолеТипОписание
flowsobject[]—
flows[].idstring—
flows[].namestring—
flows[].isDefaultboolean—
flows[].stepsobject[]—
flows[].steps[].orderinteger—
flows[].steps[].channel"EMAIL" | "SMS" | "MAX" | "TELEGRAM"—
flows[].steps[].delayMinutesinteger—

Ошибки

  • 401 Ключ не передан или недействителен
  • 403 Ключу не выдано нужное право
  • 429 Превышен лимит запросов

Формат тела ошибки — в разделе «Ошибки» обзора.

post
/api/v1/cascadesправо cascades:write

Запустить каскад

Ставит получателей в сценарий каскада. Шаги исполняются фоново: первый уходит сразу, следующие — по задержкам сценария, если клиент так и не поставил оценку.

Заголовки

  • Idempotency-Key (необязательный) — Повтор запроса с тем же ключом вернёт сохранённый ответ и НЕ отправит сообщения повторно. Обязателен, если запрос инициирует вебхук вашей CRM с ретраями.

Тело запроса

JSON, заголовок Content-Type: application/json.

ПолеТипОписание
locationIdобяз.string—
namestring—
flowIdstringСценарий; по умолчанию — сценарий организации
channel"EMAIL" | "SMS" | "MAX" | "TELEGRAM"Одношаговый каскад в один канал. Взаимоисключимо с flowId.
externalIdstring—
recipientsобяз.object[](от 1 до 2000)
recipients[].namestring—
recipients[].emailstring (email)—
recipients[].phonestring—

Ответ 202Каскад принят в работу

ПолеТипОписание
idstring—
statusstring—
queuedinteger—
skippedinteger—
flowobject—

Ошибки

  • 400 Некорректный запрос
  • 401 Ключ не передан или недействителен
  • 402 Тариф не позволяет операцию
  • 403 Ключу не выдано нужное право
  • 404 Объект не найден
  • 409 Конфликт: повтор Idempotency-Key с другим телом или канал не настроен
  • 429 Превышен лимит запросов

Формат тела ошибки — в разделе «Ошибки» обзора.

get
/api/v1/cascades/{id}право cascades:read

Статус каскада

Параметры пути

  • id

Ответ 200Состояние каскада и получателей

ПолеТипОписание
idstring—
statusstring—
externalIdstring(может быть null)
countsobject<integer>—
recipientsobject[]—

Ошибки

  • 401 Ключ не передан или недействителен
  • 403 Ключу не выдано нужное право
  • 404 Объект не найден
  • 429 Превышен лимит запросов

Формат тела ошибки — в разделе «Ошибки» обзора.

post
/api/v1/review-requestsправо review-requests:write

Создать ссылку на отзыв

Возвращает персональную ссылку /r/<token>, которую вы отправите своими каналами. Отзыв и перехват негатива работают так же, как в каскаде.

Заголовки

  • Idempotency-Key (необязательный) — Повтор запроса с тем же ключом вернёт сохранённый ответ и НЕ отправит сообщения повторно. Обязателен, если запрос инициирует вебхук вашей CRM с ретраями.

Тело запроса

JSON, заголовок Content-Type: application/json.

ПолеТипОписание
locationIdобяз.string—
customerNamestring—
contactstringEmail или телефон — только для вашей отчётности

Ответ 201Ссылка создана

ПолеТипОписание
idstring—
tokenstring—
urlstring—
statusstring—

Ошибки

  • 400 Некорректный запрос
  • 401 Ключ не передан или недействителен
  • 403 Ключу не выдано нужное право
  • 404 Объект не найден
  • 429 Превышен лимит запросов

Формат тела ошибки — в разделе «Ошибки» обзора.

Каналы

4

Методы отправки по конкретному каналу

post
/api/v1/channels/email/sendправо cascades:write

Отправить запрос отзыва: Email

Письмо со ссылкой на форму отзыва. Тема и текст берутся из шаблона организации, вёрстка и ссылка отписки — наши. Метод сгенерирован из реестра каналов — появляется автоматически при подключении нового канала.

Заголовки

  • Idempotency-Key (необязательный) — Повтор запроса с тем же ключом вернёт сохранённый ответ и НЕ отправит сообщения повторно. Обязателен, если запрос инициирует вебхук вашей CRM с ретраями.

Тело запроса

JSON, заголовок Content-Type: application/json.

ПолеТипОписание
locationIdобяз.stringИдентификатор локации; список — в GET /api/v1/locations
namestringНазвание рассылки для истории в кабинете
externalIdstringВаш идентификатор (номер заказа, ID сделки) — вернётся в ответах
recipientsобяз.object[](от 1 до 2000)
recipients[].namestringИмя клиента для подстановки {{name}}
recipients[].emailобяз.stringEmail получателя

Ответ 202Рассылка принята в работу

ПолеТипОписание
idstring—
statusstring—
channel"EMAIL"—
queuedinteger—
skippedinteger—

Ошибки

  • 400 Некорректный запрос
  • 401 Ключ не передан или недействителен
  • 402 Тариф не позволяет операцию
  • 403 Ключу не выдано нужное право
  • 404 Объект не найден
  • 409 Конфликт: повтор Idempotency-Key с другим телом или канал не настроен
  • 429 Превышен лимит запросов

Формат тела ошибки — в разделе «Ошибки» обзора.

post
/api/v1/channels/sms/sendправо cascades:write

Отправить запрос отзыва: SMS

Короткое сообщение со ссылкой на форму отзыва. Текст — первая строка шаблона организации, обрезанная до одной SMS-части. Метод сгенерирован из реестра каналов — появляется автоматически при подключении нового канала.

Заголовки

  • Idempotency-Key (необязательный) — Повтор запроса с тем же ключом вернёт сохранённый ответ и НЕ отправит сообщения повторно. Обязателен, если запрос инициирует вебхук вашей CRM с ретраями.

Тело запроса

JSON, заголовок Content-Type: application/json.

ПолеТипОписание
locationIdобяз.stringИдентификатор локации; список — в GET /api/v1/locations
namestringНазвание рассылки для истории в кабинете
externalIdstringВаш идентификатор (номер заказа, ID сделки) — вернётся в ответах
recipientsобяз.object[](от 1 до 2000)
recipients[].namestringИмя клиента для подстановки {{name}}
recipients[].phoneобяз.stringТелефон получателя в любом формате — нормализуем сами

Ответ 202Рассылка принята в работу

ПолеТипОписание
idstring—
statusstring—
channel"SMS"—
queuedinteger—
skippedinteger—

Ошибки

  • 400 Некорректный запрос
  • 401 Ключ не передан или недействителен
  • 402 Тариф не позволяет операцию
  • 403 Ключу не выдано нужное право
  • 404 Объект не найден
  • 409 Конфликт: повтор Idempotency-Key с другим телом или канал не настроен
  • 429 Превышен лимит запросов

Формат тела ошибки — в разделе «Ошибки» обзора.

post
/api/v1/channels/max/sendправо cascades:write

Отправить запрос отзыва: MAX

Сообщение в MAX с рабочего аккаунта Evidra. Уходит первым по номеру телефона. Текст берётся из шаблона SMS, первой строкой стоит название локации. Метод сгенерирован из реестра каналов — появляется автоматически при подключении нового канала.

Заголовки

  • Idempotency-Key (необязательный) — Повтор запроса с тем же ключом вернёт сохранённый ответ и НЕ отправит сообщения повторно. Обязателен, если запрос инициирует вебхук вашей CRM с ретраями.

Тело запроса

JSON, заголовок Content-Type: application/json.

ПолеТипОписание
locationIdобяз.stringИдентификатор локации; список — в GET /api/v1/locations
namestringНазвание рассылки для истории в кабинете
externalIdstringВаш идентификатор (номер заказа, ID сделки) — вернётся в ответах
recipientsобяз.object[](от 1 до 2000)
recipients[].namestringИмя клиента для подстановки {{name}}
recipients[].phoneобяз.stringТелефон получателя в любом формате — нормализуем сами

Ответ 202Рассылка принята в работу

ПолеТипОписание
idstring—
statusstring—
channel"MAX"—
queuedinteger—
skippedinteger—

Ошибки

  • 400 Некорректный запрос
  • 401 Ключ не передан или недействителен
  • 402 Тариф не позволяет операцию
  • 403 Ключу не выдано нужное право
  • 404 Объект не найден
  • 409 Конфликт: повтор Idempotency-Key с другим телом или канал не настроен
  • 429 Превышен лимит запросов

Формат тела ошибки — в разделе «Ошибки» обзора.

post
/api/v1/channels/telegram/sendправо cascades:write

Отправить запрос отзыва: Telegram

Сообщение в Telegram с рабочего аккаунта Evidra. Уходит по номеру телефона. Текст берётся из шаблона SMS, первой строкой стоит название локации. Метод сгенерирован из реестра каналов — появляется автоматически при подключении нового канала.

Заголовки

  • Idempotency-Key (необязательный) — Повтор запроса с тем же ключом вернёт сохранённый ответ и НЕ отправит сообщения повторно. Обязателен, если запрос инициирует вебхук вашей CRM с ретраями.

Тело запроса

JSON, заголовок Content-Type: application/json.

ПолеТипОписание
locationIdобяз.stringИдентификатор локации; список — в GET /api/v1/locations
namestringНазвание рассылки для истории в кабинете
externalIdstringВаш идентификатор (номер заказа, ID сделки) — вернётся в ответах
recipientsобяз.object[](от 1 до 2000)
recipients[].namestringИмя клиента для подстановки {{name}}
recipients[].phoneобяз.stringТелефон получателя в любом формате — нормализуем сами

Ответ 202Рассылка принята в работу

ПолеТипОписание
idstring—
statusstring—
channel"TELEGRAM"—
queuedinteger—
skippedinteger—

Ошибки

  • 400 Некорректный запрос
  • 401 Ключ не передан или недействителен
  • 402 Тариф не позволяет операцию
  • 403 Ключу не выдано нужное право
  • 404 Объект не найден
  • 409 Конфликт: повтор Idempotency-Key с другим телом или канал не настроен
  • 429 Превышен лимит запросов

Формат тела ошибки — в разделе «Ошибки» обзора.