RetailCRM

Message Gateway: регистрация модуля, токен транспорта, возможности канала и события.

Порядок подключения #

Ключ клиента нужен только для регистрации модуля: дальше весь обмен идёт токеном транспорта, который выдаёт сама CRM.

ШагГдеЧто
1CRMвключить интеграцию Message Gateway
2CRMсоздать ключ API с правом на интеграционные модули
3Кабинетуказать адрес CRM и ключ, сохранить
4WidgetChatсам регистрирует модуль, получает токен транспорта и заводит канал
5CRMпроверить, что в разделе Чаты появился канал WidgetChat

Возможности канала #

Канал объявляет CRM, что он умеет, и интерфейс подстраивается. Работают текст, файлы и изображения по одному вложению на сообщение, правка и удаление сообщения посетителя. Цитаты и статусы delivered и read в объявлении канала стоят, но коннектор их в CRM не передаёт. Заказы и товары не объявлены: их мы не умеем, а заявленная возможность показала бы оператору кнопку, после которой ничего не происходит.

Обмен #

Событие приходит на адрес вида /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: принимаются и пропускаются, правка ответа в CRM до посетителя не доходит

Пределы #

Предел транспорта 30 запросов в секунду на токен, сверх него приходит 429. Такие задачи откладываются и повторяются, правки и удаления повторяются свободно: они идут по нашему external_id и второй раз ничего не задваивают.

Проверено на настоящей RetailCRM, а не только на подставном Message Gateway.