SaaS та продуктові команди
Ваш продукт знає те, чого не бачить жоден маркетинговий інструмент
Хто завершив онбординг, а хто застряг на третьому кроці. Хто запросив колегу. Хто двічі за тиждень вичерпав ліміт. Хто не відкривав річ два тижні. Кожен із цих тригерів кращий за будь-що, виведене з відкриття листа, — і кожен відділяють від цього дві рядки коду.
Події — це вся інтеграція
POST /v1/events із вашим власним токеном: назва, яку ви обрали, контакт, дані, ключ ідемпотентності. Це вся інтеграція. Немає SDK, який треба оновлювати, немає екрана мапування, і немає нашого словника, на який вам довелося б перекладати свій продукт.
Кожна подія потрапляє в журнал контакту, що лише додає записи, і звідти вона одразу три речі. Тригер — воронка запускається, коли вона надходить. Умова — сегмент може сказати «робив це за останні чотирнадцять днів» або, корисніше, «не робив». І ціль — послідовність завершується в ту мить, коли людина робить те, до чого її підштовхували.
Саме третє робить повідомлення про життєвий цикл терпимими для отримання. Нагадування завершити налаштування облікового запису має зникнути в ту секунду, коли обліковий запис налаштовано, — але в більшості інструментів цього не відбувається, бо послідовність і продукт не спілкуються між собою.
- ⚡Тригер
api_event—signup.completed, планfree. - 2Надіслати листЄдине, що варто зробити спочатку. Не огляд одинадцяти функцій.
- 3Зачекати 2 дні
wake_atу процесі. Нічого не ставиться в чергу, нічого не доведеться розплутувати, якщо завтра ви це перепишете. - ?УмоваЧи надійшла подія
project.created? Ні → гілка допомоги. Так → ціль нижче. - 4Гілка допомогиОдне повідомлення з конкретною пропозицією того, чого вони не зробили. Потім повторне очікування.
- 5ЦільНадходить
project.created. Сценарій завершується. Жодного подальшого онбордінг-листа цій людині — ніколи.
Ваші назви подійВаше визначення активації
П'ять воронок
Життєвий цикл у тому порядку, в якому він відбувається насправді
1 · Активація
Тригер: реєстрація. Два-три повідомлення, кожне про одну дію, кожне з ціллю, яка завершує послідовність, коли ця дія відбувається. Це найцінніша воронка, яку ви побудуєте, і та, яку найбільше варто переписати тричі.
2 · Затишшя
Тригер: segment_enter — зареєструвалися, але сім днів без значущих подій. Одне повідомлення, яке питає, а не розповідає, і одне, яке пропонує щось конкретне. Потім — стоп. Четверте повідомлення тому, хто проігнорував три, — це повідомлення в нікуди.
3 · Момент розширення
Тригер: подія, яка означає, що ви отримуєте користь — досягли ліміту, запросили третього колегу, експортували вдруге. Це єдиний момент, коли повідомлення про апгрейд доречне, і момент, який ваш продукт може назвати точно.
4 · Продовження та стягнення оплати
Тригер: date_field перед продовженням або подія оплати. Повідомлення, нагадування та — якщо платіж не пройшов — коротка послідовність, яка зупиняється миттєво після успіху. Цільові вузли в стягненні оплати не опційні: вони є різницею між нагадуванням і нав'язливістю.
5 · Повернення клієнтів
Тригер: segment_enter — скасували або бездіяльні шістдесят днів. Два повідомлення, чесні, потім тег і тиша. Розповідь про те, що змінилося з часів їх відходу, — краще повідомлення, ніж знижка.
І внутрішня
notify_team повідомляє людині, коли обліковий запис, вартий людської уваги, перетинає межу. Воронка не обов'язково має завершуватися листом клієнту; іноді правильна дія — сказати комусь із вашого боку взяти трубку.

Ніхто не відмовляється від послуги навмисно. Вони просто перестають її відкривати.
Чому розробник може це справді оцінити
Те, що має значення, коли інтегруєте саме ви
Жодних приватних ендпоінтів
Кожен екран можна побудувати через публічний API, бо іншого просто немає. Якщо хочете вбудувати звіт кампанії у власну адмінку, ніщо вам не заважає і нічого не доведеться реверс-інжинірити.
Ключі ідемпотентності всюди
На кожному маршруті, що змінює дані. Ваша логіка повторів, ваша черга at-least-once і ваша нестабільна мережа стають чиємусь іншим проблемами — а саме, проблемою унікального індексу.
Симулюйте перед випуском
POST /v1/simulate проганяє контакт крізь воронку в тестовому режимі й повертає шлях та кожне повідомлення, яке було б надіслано. Додайте до CI, якщо хочете: воронка — це граф, а граф можна тестувати.
MCP-сервер
Направте агента на /mcp і дозвольте йому створювати та перевіряти воронки. Інструменти з можливістю надсилання потребують явного підтвердження й обмежені квотою, тому неправильно прочитаний промпт не перетвориться на п'ятдесят тисяч листів.
Вебхуки на виході
Підписано, з повторами та backoff, щонайменше один раз. Той самий словник подій, що й у звітах, тож ваш сховище даних і ваша панель не розходитимуться в тому, що означає «доставлено».
Видалення, яке справді доходить
Запит на видалення прибирає контакт та історію його повідомлень тут і поширюється на кожен суміжний сервіс, що зберігав копію. Один запит, один результат — і те, на що можна вказати, коли запитають.
Де проходить межа
ClickSomo зберігає список розсилки та те, що цей список робив. Це не ваша база користувачів, і вона такою не прагне бути: контакт ніколи не має облікових даних, ніколи не входить у систему і ніколи не стає обліковим записом. Ваші користувачі живуть у вашому продукті; контакти живуть тут, і їх поєднує адреса електронної пошти та події, які ви обираєте надсилати.
Це розділення навмисне, і саме тому модель згоди працює. Ви є контролером даних для своїх користувачів; ми обробляємо дані від вашого імені. Дизайн, у якому маркетинговий інструмент непомітно стає сховищем ідентичностей, неможливо розплутати згодом — і це саме та помилка, яку цей дизайн покликаний уникнути.
Практична версія: надсилайте події, надсилайте атрибути, за якими хочете сегментувати, а все інше залишайте там, де воно є. Якщо ви ловите себе на тому, що затягуєте сюди всю свою схему, — сегмент, який ви намагаєтеся побудувати, імовірно, є запитом у вашій власній базі даних, який краще надсилати як один булевий атрибут.