RetailCRM

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

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

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

ШагГдеЧто
1CRMвключить интеграцию Message Gateway
2CRMсоздать ключ API с правом на интеграционные модули
3Кабинетуказать адрес CRM и ключ, сохранить
4мы регистрируем модуль, получаем токен транспорта и заводим канал
5CRMпроверить, что в разделе «Чаты» появился канал 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 у нас пока нет.