Мессенджеры. CRM. Люди.
Интеграции
Обсудить подключение
РУКОВОДСТВО DUBL.LTD

Отправка сообщений через API: состояния и идемпотентность

Отделяйте принятие запроса API от фактической доставки получателю.

Проверьте команду

Укажите аккаунт, канал, адресата и тип содержимого. До отправки проверьте ограничения канала и наличие обязательных данных. Сообщение с файлом или шаблоном может требовать другой структуры, чем обычный текст.

Сохраните намерение отправки

Назначьте операции устойчивый идентификатор и сохраните результат. Если запрос завершился таймаутом, сначала выясните состояние предыдущей попытки. Повтор без проверки может отправить клиенту два одинаковых сообщения.

Обновляйте статус

Храните внутренний статус отдельно от статуса платформы. Событие «принято» не следует показывать как «прочитано». При редактировании или удалении проверьте, поддерживается ли операция каналом и как она отражается в CRM.

НА ПРАКТИКЕ

Пример проверки

Менеджер видит «ожидает подтверждения» после сетевого таймаута. Кнопка повторной отправки не запускает дубликат, пока не проверена первая операция.

Перед следующим шагом

  • Запрос идентифицируется однозначно
  • Таймаут не считается доставкой
  • Статусы имеют точное значение

Продолжить работу