RetailCRM
Message Gateway: регистрация модуля, токен транспорта, возможности канала и события.
На этой странице
Порядок подключения #
Ключ клиента нужен только для регистрации модуля: дальше весь обмен идёт токеном транспорта, который выдаёт сама CRM.
| Шаг | Где | Что |
|---|---|---|
| 1 | CRM | включить интеграцию Message Gateway |
| 2 | CRM | создать ключ API с правом на интеграционные модули |
| 3 | Кабинет | указать адрес CRM и ключ, сохранить |
| 4 | — | мы регистрируем модуль, получаем токен транспорта и заводим канал |
| 5 | CRM | проверить, что в разделе «Чаты» появился канал WidgetChat |
Возможности канала #
Канал объявляет CRM, что он умеет, и интерфейс подстраивается. Мы объявляем текст, файлы и изображения по одному вложению, цитирование, удаление, статусы delivered и read. Заказы и товары не объявлены: их мы не умеем, а заявленная возможность показала бы оператору кнопку, после которой ничего не происходит.
Обмен #
Событие приходит на адрес вида /retailcrm/hook/{clientId}. Подписи у транспортных событий нет, поэтому подлинность держится на случайном номере подключения в адресе; он же сверяется с заголовком ClientId.
MG присылает событие и на наше собственное сообщение — такие события отбрасываются по полю originator, иначе ответ посетителю ушёл бы вторым экземпляром.
| Направление | Метод или событие |
|---|---|
| наружу | POST /api/transport/v1/messages, originator: customer |
| наружу | PUT и DELETE /api/transport/v1/messages по нашему external_id |
| наружу | POST /api/transport/v1/files/upload_by_url для вложений |
| внутрь | message_sent: ответ менеджера |
| внутрь | message_updated, message_deleted: правки |
Пределы #
Предел транспорта — 30 запросов в секунду на токен, сверх приходит 429. Такие задачи откладываются и повторяются, правки и удаления повторяются свободно: они идут по нашему external_id и второй раз ничего не задваивают.
Проверено на подставном Message Gateway: живой CRM у нас пока нет.