Документация
Быстрый старт
Типовая интеграция с CRM укладывается в три запроса: убедиться, что ключ работает, передать клиента после закрытого заказа и посмотреть, что ему ушло. Дальше вебхуки сами сообщат, когда клиент поставит оценку.
Перед началом
- В кабинете откройте Разработчикам → Ключи API и выпустите ключ. Прав по умолчанию хватает для всего, что ниже.
- Там же скопируйте идентификатор точки, для которой будете просить отзывы, — или получите список запросом
GET /locations. - Убедитесь, что тариф оплачен: на пробном периоде отправка сообщений вернёт
402 plan_required.
1. Проверить ключ
GET /ping доступен любому действующему ключу и возвращает организацию и выданные права — удобно, чтобы убедиться в правильности настройки до первого боевого вызова.
curl https://evidra.ru/api/v1/ping \
-H "Authorization: Bearer evd_live_…"{
"ok": true,
"organization": { "id": "clx…", "name": "Кофейня «Утро»" },
"scopes": ["locations:read", "contacts:write", "cascades:write", "cascades:read"]
}2. Событие из CRM: клиент обслужен → просим отзыв
POST /contacts создаёт или обновляет контакт по вашему externalId и с флагом startCascade сразу ставит его в сценарий каскада организации. Это один вызов на одно событие «заказ закрыт».
curl -X POST https://evidra.ru/api/v1/contacts \
-H "Authorization: Bearer evd_live_…" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-10423" \
-d '{
"externalId": "crm-client-8821",
"name": "Анна",
"email": "anna@example.com",
"phone": "+7 912 345-67-89",
"locationId": "<id точки>",
"consentAt": "2026-08-30T10:00:00+03:00",
"startCascade": true
}'{
"contact": { "id": "clx…", "externalId": "crm-client-8821", … },
"cascade": { "id": "clx…", "queued": 1 }
}Idempotency-Key здесь не формальность. Вебхуки CRM повторяются при таймауте, и без ключа каждый повтор — ещё одно письмо тому же человеку. Подставляйте номер заказа или ID сделки.Передавайте и email, и телефон, если они есть: многошаговый сценарий может начать с письма и через сутки догнать SMS. Шаг по недостающему контакту движок просто пропустит.
3. Проверить, что ушло
GET /cascades/{id} — идентификатор из ответа предыдущего шага. Показывает получателей, статус каждого шага и оценку, если клиент уже ответил.
curl https://evidra.ru/api/v1/cascades/<id> \
-H "Authorization: Bearer evd_live_…"Опрашивать этот метод по расписанию не нужно: подключите вебхук — событие cascade.recipient.finished придёт само с оценкой клиента и причиной завершения.
Каналы и их методы
Кроме сценария организации можно отправить запрос в один конкретный канал — у каждого свой метод и своё поле контакта. Список каналов и их готовность отдаёт GET /channels: читайте его в коде вместо жёсткого списка, новые каналы появляются в API автоматически вместе со своим методом.
| Канал | Метод | Поле контакта |
|---|---|---|
POST /channels/email/send | email | |
| SMS | POST /channels/sms/send | phone |
Что дальше
- Полное описание полей и ответов — справочник методов.
- Приём событий и проверка подписи — вебхуки.
- Генерация клиента под ваш язык — OpenAPI 3.1.
