clickSomo

Kontakty a souhlasy

Seznam, který dokážete obhájit, ne jen seznam, který máte

Kdokoli může mít deset tisíc e-mailových adres. Otázka, která skutečně záleží — ta, kterou kladou regulátor, poskytovatel i vaše vlastní svědomí, každý trochu jinými slovy — zní, odkud každá z nich pochází a na jakém základě smíte psát. ClickSomo z toho dělá uložený fakt, nikoli něco, co byste museli rekonstruovat.

Identitou je e-mailová adresa

Jeden kontakt na adresu na projekt, vynucené databází, nikoli nadějí. Adresy se normalizují při zápisu, nikdy při čtení — normalizace při čtení z omezení dělá jen dekoraci, která pustí Anna@ i anna@ obě.

Telefonní čísla se ukládají ve formátu E.164, pokud existují, ale telefonní číslo je atribut, nikoli identita. Neexistuje žádný graf řešení identit, žádný slučovací protokol ani auditní stopa slučování, protože každý kontakt sem přichází kanálem, který už adresu má: importem, formulářem, přihlášením k odběru nebo vaším vlastním kódem.

Jméno se ukládá vcelku

display_name se uchovává přesně tak, jak bylo zadáno, a nikdy se nerozděluje na části. Dělení jmen je továrna na chyby — „van der Berg“, „Kim Min-jun“, jednoslovná jména, tituly a každá konvence pořadí, která není anglosaská — a špatné dělení se projeví v merge tagu jako „Vážený pane van,“, což je horší než žádná personalizace.

Strukturované části existují jen pro zdroje, které je dodávají už rozdělené. Nic je neodvozuje. A jméno, které někdo zadal sám, nikdy nepřepíše pozdější CSV, které si náhodou všimlo něčeho jiného, protože pravidlo posledního zápisu vítězí nechá vyhrát nejnedbalejší import.

Jeden kontaktCo se uchovává
  • 1IdentitaE-mail, normalizovaný. Unikátní v rámci projektu.
  • 2JménoUložené vcelku. first_name se odvozuje při vykreslení, nikdy se neukládá.
  • 3AtributyCokoli chcete, jako JSON. Vaše a interpolovatelné jako attrs.*.
  • 4Štítky a seznamyŠtítky jsou plnohodnotné a žijí v jednom úložišti; seznamy jsou explicitní členství.
  • 5SouhlasJeden řádek na kanál, s právním základem a jeho důkazem.
  • 6UdálostiLog pouze pro přidávání všeho, co tato osoba udělala. Tabulka, na které celý produkt stojí.
  • ×NikdyŽádné heslo, žádný hash, žádná relace, žádný API klíč. Sloupec, který by někoho autentizoval, by byl incidentem, ne funkcí.

Vázané na tenanta i projekt, na obojí

Evidence souhlasů

Nepřítomnost není povolení

Jeden řádek na kontakt na kanál — e-mail, SMS, dopis, push — každý nese stav, právní základ, zdroj, důkaz, časová razítka a jurisdikci. Kontaktu bez řádku se základem pro daný kanál nelze na tomto kanálu nic poslat. Ne „je označen“. Nelze.

consent

Někdo se aktivně zeptal. Odeslání formuláře s uloženým důkazem, double opt-in, zaškrtávací pole, které si zaškrtli sami. Toto je nejsilnější základ a jediný, který formulář může vytvořit.

legitimate_interest

Nejlepší, čím CSV import může skončit. Tabulka si nemůže pamatovat, že s někým něco souhlasil, takže se nikdy nesmí vydávat, že ano — a opětovné nahrání téhož souboru to neupgraduje.

contract

Píšete jim kvůli něčemu, čeho se oba účastníte. Připomínka služby, oznámení o obnovení, věc, kterou by jim chyběla, kdyby ji nedostali.

Před odesláním kampaně vidíte složení základů jejího publika: kolik z těchto lidí o to požádalo, kolik oslovujete na základě oprávněného zájmu a kolik je tam kvůli smlouvě. Je to jedno číslo, které zastavilo více špatných rozesílek než jakýkoli varovný banner, jaký byl kdy napsán.

Proč je to přísnější, než pro vás musí být: ve skutečnosti nejde o vás. Pověst hromadného rozesílání je sdílený zdroj a jedna nedbalá lista otráví studnu všem, kdo posílají ze stejné infrastruktury. Míry stížností a vrácení na tenanta se sledují a účet, jehož míry překročí práh, je zde zpomalen — dřív, než to poskytovi udělá všem najednou.

Za každým řádkem v seznamu stojí někdo, kdo řekl ano.

Čtyři cesty in

Každá cesta do vašeho seznamu jste vy, jednající se svými vlastními daty

Neexistuje žádná ingestní cesta se servisním tokenem a žádný sourozenecký produkt, který by tiše zapisoval do vašich kontaktů. Pokud chcete někoho na seznam, jednu z těchto čtyř cest tam dostala.

Import CSV

Mapováno sloupec po sloupci, normalizováno při zápisu, MX-kontrolováno, takže mrtvé a překlepnuté domény jsou zachyceny dřív, než se tvrdě vrátí, a uloženo se základem, který explicitně nastavíte. Import dostane id a každý kontakt, který vytvořil, na něj ukazuje zpět.

Formulář ClickSomo

Vykresleno ze stejného dokumentu jako vše ostatní, s validací, honeypotem a omezením frekvence. Odeslání formuláře je jediná cesta, která legitimně může vytvořit consent, protože je to jediná, při které je osoba přítomna.

Stránka, kterou jste si vytvořili v dash-b

Návrhář dashboardu publikuje stránky; formulář na některé z nich odesílá data sem s vašimi vlastními přihlašovacími údaji. Stejná validace, stejná práce se souhlasem, žádná druhá integrace k údržbě.

Veřejné API

POST /v1/contacts s vaším vlastním tokenem, sémantika upsert, respektování idempotency klíče. Vaše aplikace už ví, kdo se zaregistroval; tohle je nejkratší cesta od této skutečnosti k funnelu.

Segmenty jsou predikát, zkompilovaný

Segment je uložený strom predikátů nad poli kontaktů, atributy, štítky, členstvím v seznamech a chováním, zkompilovaný do SQL a uložený v mezipaměti s počtem. Operátory jsou ty obvyklé — rovná se, nerovná se, je v, není v, začíná na, končí na, obsahuje, je nastaveno, není nastaveno — kombinované pomocí and, or a not do libovolné hloubky, kterou potřebujete.

Před použitím si jej nechte zobrazit v náhledu. Koncový bod vrací skutečné kontakty, takže otázku „kdo zde skutečně je“ zodpovíte pohledem, nikoli odesláním a zjišťováním.

Segmenty pak plní dvojí roli: jako publikum pro kampaň, jako podmínka na větvi funnelu a jako spouštěč samy o sobě — segment_enter spustí běh v okamžiku, kdy se někdo stane způsobilým.

Tichí pravidelní zákazníciNáhled segmentu · 412
  • 1Štítektags contains "regular"
  • 2Atributattrs.total_orders >= 3 — vaše pole, váš název pro něj.
  • 3ChováníŽádná událost order.paid za posledních 90 dní.
  • 4SouhlasPoužitelný e-mailový základ. Kontakty bez něj nejsou v počtu zahrnuty, protože jim stejně nelze odesílat.
  • aNáhled412 kontaktů, vypsaných. Započítáno znovu při odeslání, protože segment je otázka, nikoli snímek.

Zkompilováno do SQLPočet v mezipaměti, odpověď živá

Potlačení a kdy se kontroluje

Potlačení mají rozsah projektu i globální rozsah: tvrdé odmítnutí (hard bounce), stížnosti, odhlášení odběru, ruční záznamy a adresy rolí. Kontrolují se ve chvíli odeslání a poté ještě jednou uvnitř samotné odesílací služby.

To druhé slovo dělá tu práci. Funnel s třídní čekací dobou má třídní okno, během kterého se někdo může odhlásit, a systém, který potlačení zkontroloval při zařazení zprávy do fronty, mu zprávu stejně pošle. Kontrola při odeslání je rozdíl mezi respektováním odhlášení a jeho pouhým zaznamenáním.

Výmaz funguje stejným způsobem: žádost o smazání odstraní kontakt a jeho historii zpráv zde a prostřednictvím stejného interního kanálu, který používá celá rodina, se dostane ke každé sesterské službě, která držela kopii. Existuje jedno místo, kde se ptát, a jedna věc, která se stane.