SaaS- og produktteams
Dit produkt ved ting, intet marketingværktøj kan observere
Hvem gennemførte onboarding, og hvem gik i stå ved trin tre. Hvem inviterede en kollega. Hvem ramte grænsen to gange denne uge. Hvem ikke har åbnet tingene i fjorten dage. Hver af dem er en bedre trigger end noget, der er afledt af en e-mail-åbning, og alle er to linjers kode fra at være det.
Events er hele integrationen
POST /v1/events med din egen token: et navn, du vælger, en kontakt, et payload, en idempotensnøgle. Det er hele forbindelsen. Der er ingen SDK at holde opdateret, intet mapping-skærmbillede og intet ordforråd fra os, du skal oversætte dit produkt til.
Hvert event lander på kontaktens append-only-log, og derfra er det tre ting på én gang. En trigger, så en funnel starter, når det ankommer. Et prædikat, så et segment kan sige "har gjort dette inden for de sidste fjorten dage" eller, mere nyttigt, "har ikke". Og et mål, så en sekvens slutter i det øjeblik, nogen gør det, den var ved at skubbe dem i retning af.
Det tredje er det, der gør livscyklus-beskeder udholdelige at modtage. Puffen til at færdiggøre opsætningen af din konto bør holde op med at eksistere det sekund, kontoen er sat op, og i de fleste værktøjer gør den ikke, fordi sekvensen og produktet ikke taler sammen.
- ⚡Udløser
api_event—signup.completed, abonnementfree. - 2Send e-mailDen ene ting, du skal gøre først. Ikke en rundtur i elleve funktioner.
- 3Vent 2 dage
wake_atpå kørslen. Intet i kø, intet at pilke fra hinanden, hvis du omskriver det i morgen. - ?BetingelseEr
project.createdankommet? Nej → hjælpegrenen. Ja → målet nedenfor. - 4HjælpegrenÉn besked, der tilbyder den specifikke ting, de ikke gjorde. Og så en ny ventetid.
- 5Mål
project.createdankommer. Kørslen afsluttes. Ingen yderligere onboarding-mail, nogensinde, til denne person.
Dine eventnavneDin definition af aktiveret
Fem tragter
Livscyklussen, i den rækkefølge den faktisk sker
1 · Aktivering
Udløser: tilmelding. To eller tre beskeder, hver om én handling, hver med et mål, der afslutter sekvensen, når handlingen sker. Den mest værdifulde tragt, du bygger, og den, der er mest værd at omskrive tre gange.
2 · Stilstanden
Udløser: segment_enter — tilmeldt, ingen meningsfuld event på syv dage. Én besked, der spørger frem for at fortælle, og én, der tilbyder noget konkret. Så stop. En fjerde besked til en, der har ignoreret tre, er en besked til ingen.
3 · Udvidelsesøjeblikket
Udløser: en event, der betyder, at de får værdi — rammer grænsen, inviterer en tredje kollega, eksporterer for anden gang. Dette er det eneste øjeblik, hvor en opgraderingsbesked er velkommen, og det er et øjeblik, dit produkt kan navngive præcist.
4 · Fornyelse og inkasso
Udløser: date_field før fornyelse, eller en betalings-event. Bemærkning, påmindelse og — hvis en betaling fejler — en kort sekvens, der stopper i det øjeblik, den lykkes. Mål-noder er ikke valgfrie i inkasso; de er forskellen mellem en påmindelse og chikane.
5 · Genaktivering
Udløser: segment_enter — opsigtd eller inaktiv i tres dage. To beskeder, ærlige, og så et tag og tavshed. Hvad der er ændret, siden de forlod dig, er en bedre besked end en rabat.
Og den interne
notify_team fortæller et menneske, når en konto, der er et menneske værd, overskrider en grænse. En tragt behøver ikke at ende i en e-mail til en kunde; nogle gange er den rigtige handling at bede en kollega på din side om at tage telefonen.

Ingen opsiger med vilje. De holder bare op med at åbne den.
Hvorfor en udvikler faktisk kan lide dette
Delene, der betyder noget, når det er dig, der integrerer
Ingen private endpoints
Hver skærm kan bygges fra det offentlige API, fordi der ikke findes nogen anden slags. Hvis du vil indlejre en kampagnerapport i din egen admin, står intet i vejen, og intet behøver at blive reverse-engineeret.
Idempotensnøgler overalt
På alle muterende ruter. Din retry-logik, din at-least-once-kø og dit ustabile netværk bliver alle en andens problem — nærmere bestemt et unikt indeks' problem.
Simulér, før du sender
POST /v1/simulate kører en kontakt tør igennem en tragt og returnerer stien og alle beskeder, den ville sende. Sæt den i CI, hvis du vil: en tragt er en graf, og en graf kan testes.
En MCP-server
Peg en agent mod /mcp og lad den skrive og tjekke tragte. Værktøjer med afsendelsesrettigheder kræver en eksplicit bekræftelse og er begrænset af kvota, så en misforstået prompt ikke kan blive til halvtreds tusind e-mails.
Webhooks ud
Signeret, forsøgt igen med backoff, mindst én gang. Det samme event-ordforråd, som rapporterne bruger, så dit warehouse og dit dashboard ikke er uenige om, hvad "leveret" betyder.
Sletning, der faktisk når frem
En sletningsanmodning fjerner kontakten og deres beskedhistorik her og udbreder sig til alle søstertjenester, der har en kopi. Én anmodning, ét udfald, og noget, du kan pege på, når du bliver spurgt.
Hvor grænsen går
ClickSomo rummer en mailingliste og det, listen gjorde. Det er ikke din brugerdatabase, og det forsøger det ikke at være: en kontakt bærer aldrig en loginoplysning, logger aldrig ind og bliver aldrig en konto. Dine brugere bor i dit produkt; kontakter bor her, og de to forbindes af en e-mailadresse og de events, du vælger at sende.
Den adskillelse er bevidst, og det er grunden til, at samtykkemodellen virker. Du er dataansvarlig for dine brugere; vi behandler data på dine vegne. Et design, hvor et marketingværktøj i stilhed bliver identitetslageret, er et, der ikke kan reddes bagefter — og det er præcis den fejl, dette design er bygget til at undgå.
Den praktiske version: send events, send de attributter, du vil segmentere på, og lad alt andet blive, hvor det er. Hvis du finder dig selv i at skubbe hele dit skema ind her, er segmentet, du prøver at bygge, sandsynligvis en forespørgsel i din egen database, der i stedet bør ankomme som én boolesk attribut.