Назад до блогу

CRM/ERP‑workflow: стани, переходи, інваріанти та “правила бізнесу” в коді

Як будувати workflow‑модулі в CRM/ERP: модель станів, валідні переходи, інваріанти, side effects, аудит і як уникнути “if‑ів на 200 рядків” у бізнес‑логіці.

25 бер. 2026 р.

Workflow — це серце CRM/ERP

Замовлення, заявки, рахунки, задачі — все живе у статусах. Якщо статуси і переходи описані неявно, система стає непередбачуваною: баги складно відтворити, а зміни лякають.

1) Станова модель (state machine)

  • Опиши список станів і дозволені переходи.
  • Заборони “стрибки” напряму, якщо вони невалідні.
  • Виділи окремі події (approve, cancel, ship), а не “setStatus”.

2) Інваріанти

Інваріанти — правила, які не можна порушити:

  • не можна відвантажити без оплати (або без підтвердження);
  • не можна змінювати суму після інвойсу;
  • не можна видалити документ, якщо є проводки.

3) Side effects і інтеграції

  • Побічні ефекти (листи, webhooks, задачі) — асинхронно через чергу.
  • Ідемпотентність подій, щоб ретраї не дублювали дії.

4) Аудит

Фіксуй: хто змінив стан, з якої причини, які поля змінилися. Це економить години підтримки.

Підсумок

Коли workflow описаний як state machine з інваріантами і аудитом, CRM/ERP модулі стають керованими і масштабуються без хаосу.

Релевантні статті