Інтеграція сайту з CRM, оплатою та доставкою: як спроєктувати систему

Коли сайт має одну форму, інтеграція здається простою. Але магазин або сервісний продукт часто одночасно працює з CRM, платежами, доставкою, email, месенджерами та аналітикою.

Без описаного data flow система швидко стає набором окремих модулів.

Спочатку описуємо джерело даних

Для кожного сценарію потрібно відповісти:

  • звідки приходять дані;
  • які поля передаються;
  • куди вони йдуть;
  • хто є source of truth;
  • що відбувається при помилці.

Приклад замовлення

  1. Користувач формує cart.
  2. Створюється order.
  3. Відкривається payment.
  4. Платіжний сервіс повертає status.
  5. CRM отримує order/customer.
  6. Delivery service отримує дані для відправки.
  7. Користувач отримує confirmation.

Не покладайтеся тільки на redirect після оплати

Статус платежу бажано підтверджувати через callback/webhook від платіжної системи, а не лише за фактом повернення користувача на thank-you page.

Користувач може:

  • закрити вкладку;
  • втратити інтернет;
  • не повернутися на сайт.

Логи

Для критичних інтеграцій потрібно мати можливість зрозуміти:

  • що відправили;
  • коли;
  • яку відповідь отримали;
  • чи була помилка;
  • чи потрібно повторити запит.

При цьому чутливі дані не повинні безконтрольно записуватися у відкриті logs.

Retry та fallback

Для деяких процесів потрібна повторна спроба:

  • CRM тимчасово недоступна;
  • API повернуло timeout;
  • delivery service має outage.

Заявка не повинна зникати лише тому, що одна зовнішня система була недоступна кілька секунд.

Хто за що відповідає

Важливо розділити:

  • сайт;
  • зовнішній API;
  • CRM automation;
  • payment account;
  • delivery settings.

Розробник може коректно відправити дані в CRM, але це не означає, що він відповідає за всі внутрішні automation rules самої CRM.

Поширені запитання

Що робити, якщо API тимчасово не працює?

Для критичних даних варто передбачити логування, retry або резервний механізм.

Чи потрібен webhook для платежів?

У більшості нормальних payment-flow це більш надійний спосіб отримати фінальний статус, ніж покладатися лише на redirect користувача.

Інтеграції та автоматизація дізнатись більше