Что делает Charon, а что ваша сторона
Граница проходит по CRM: до неё работает Charon, внутри неё —
ваш разработчик.
Charon берёт на себя
- Подключение и авторизацию аккаунтов WhatsApp, Telegram, WeChat, Matrix и Max.
- Переподключение и статусы каналов — их видно и в панели, и в API.
- Приём входящих, отправку исходящих и хранение истории переписки.
- Медиафайлы: приём, хранение и выдачу по ссылке через API.
- Доставку событий на ваш адрес с подписью и повторами при сбое.
- Ключи, права и журнал доставок вебхуков.
Пишет ваш разработчик
- Обработчик по адресу HTTPS, который принимает вебхуки и отвечает
2xx.
- Проверку подписи HMAC-SHA256 по сырому телу запроса.
- Правила поиска клиента в вашей базе и дедупликацию контактов.
- Создание сущностей: сделка, контакт, задача, обращение — по вашим воронкам.
- Показ переписки менеджеру и отправку ответов вызовом API.
- Разбор ошибок
401, 403, 409, 429 и 5xx.
С Битрикс24 этой работы нет: там сообщения попадают в
Открытые линии без
программирования. Внешний API нужен там, где готовой интеграции нет —
своя CRM, 1С, сайт, система отчётности. Для amoCRM тот же путь описан
на отдельной странице.
Что доступно в API
Методы, из которых обычно собирается интеграция. Полное описание
отдаёт сама установка — про это ниже.
| Задача |
Метод |
| Проверить, что ключ работает |
GET /api/v1 |
| Получить подключения и их статусы |
GET /api/v1/connections |
| Отправить сообщение в мессенджер |
POST /api/v1/messages |
| Прочитать историю переписки |
GET /api/v1/messages, GET /api/v1/connections/{id}/messages |
| Получать входящие без опроса |
POST /api/v1/webhooks |
| Посмотреть, дошло ли событие |
GET /api/v1/webhooks/{id}/deliveries |
| Забрать отчёты в свою систему |
GET /api/v1/analytics/… |
| Выдать отдельный ключ интеграции |
POST /api/v1/api-keys |
Отправка сообщения выглядит так — один запрос с ключом в заголовке:
curl -X POST https://charon.example.com/api/v1/messages \
-H "X-API-Key: ваш_ключ" \
-H "Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000" \
-H "Content-Type: application/json" \
-d '{"connectionId": "…", "conversationId": "79001234567@c.us", "text": "Здравствуйте! Пишу по вашей заявке."}'
Idempotency-Key защищает от двойной отправки: если
запрос повторится из-за обрыва связи, Charon вернёт результат
первого вызова, а клиент не получит сообщение дважды. Ставьте его на
все запросы, которые нельзя выполнить второй раз.