Contacte și consimțământ
O listă pe care o puteți apăra, nu doar o listă pe care o aveți
Oricine poate deține zece mii de adrese de e-mail. Întrebarea care contează — cea pe care un regulator, un furnizor și propria dumneavoastră conștiință o pun în cuvinte puțin diferite — este de unde vine fiecare dintre ele și pe ce bază le puteți scrie. ClickSomo transformă acest lucru într-un fapt stocat, nu în ceva ce ar trebui să reconstruiți.
Identitatea este adresa de e-mail
Un contact per adresă per proiect, impus de baza de date, nu de speranță. Adresele sunt normalizate la scriere, niciodată la citire — dacă normalizați la citire, constrângerea devine o decorațiune care lasă să intre atât Anna@, cât și anna@.
Numerele de telefon sunt stocate în E.164 acolo unde există, dar un număr de telefon este un atribut, nu o identitate. Nu există graf de rezolvare a identității, niciun protocol de fuziune și nicio pistă de audit a fuziunilor, pentru că fiecare contact de aici ajunge printr-un canal care are deja o adresă: un import, un formular, o abonare sau propriul dumneavoastră cod.
Numele este stocat întreg
display_name este păstrat exact așa cum a fost dat și nu este niciodată împărțit în părți. Împărțirea numelor este o fabrică de bug-uri — „van der Berg”, „Kim Min-jun”, mononime, titluri și fiecare convenție de ordonare care nu e anglo-saxonă — iar o împărțire greșită apare într-un merge tag ca „Stimate van,”, ceea ce e mai rău decât lipsa totală de personalizare.
Părțile structurate există doar pentru sursele care le furnizează deja separate. Nimic nu le derivă. Iar un nume pe care cineva l-a scris el însuși nu este niciodată suprascris de un CSV ulterior care s-a întâmplat să observe altceva, pentru că „ultima scriere câștigă” lasă cel mai neglijent import să câștige.
- 1IdentitateE-mail, normalizat. Unic în cadrul proiectului.
- 2NumeStocat întreg.
first_nameeste derivat la randare, niciodată stocat. - 3AtributeOrice doriți, ca JSON. Ale dumneavoastră, interpolabile ca
attrs.*. - 4Etichete și listeEtichetele sunt entități de primă clasă și trăiesc într-un singur depozit; listele sunt apartenență explicită.
- 5ConsimțământUn rând per canal, cu o bază legală și dovezile ei.
- 6EvenimenteUn jurnal de tip append-only cu tot ce a făcut această persoană. Tabelul de care atârnă produsul.
- ×NiciodatăNicio parolă, niciun hash, nicio sesiune, nicio cheie API. O coloană care autentifică pe cineva ar fi un incident, nu o funcționalitate.
Delimitat la tenant și proiect, ambele
Registrul consimțămintelor
Absența nu este permisiune
Un rând per contact per canal — e-mail, SMS, scrisoare, push — fiecare purtând o stare, o bază legală, o sursă, dovezile, marcajele de timp și jurisdicția. Un contact fără rând de bază pentru un canal nu poate primi nimic pe acel canal. Nu „este semnalat”. Nu poate.
consent
Cineva a cerut în mod activ. O trimitere de formular cu dovezile stocate, un double opt-in, o casetă pe care a bifat-o el însuși. Aceasta este cea mai puternică bază și singura pe care un formular o poate produce.
legitimate_interest
Cel mai bun statut pe care îl poate obține un import CSV. O foaie de calcul nu-și poate aminti că cineva a acceptat ceva, deci nu i se permite niciodată să pretindă asta — iar reîncărcarea aceluiași fișier nu o îmbunătățește.
contract
Scrieți persoanei respective din cauza unui lucru la care participați amândoi. Memento-ul de serviciu, avizul de reînnoire, lucrul pe care ar fi supărat să nu-l primească.
Înainte ca o campanie să fie trimisă, vedeți structura bazelor audienței ei: câți dintre acești oameni au cerut, câți sunt contactați în temeiul interesului legitim și câți sunt acolo din cauza unui contract. Este un singur număr care a oprit mai multe trimiteri proaste decât orice banner de avertisment scris vreodată.
De ce este mai strict decât ar fi necesar pentru dumneavoastră: nu este, de fapt, despre dumneavoastră. Reputația trimiterii în masă este o resursă comună, iar o singură listă neglijentă otrăvește fântâna pentru toți cei care trimit de pe aceeași infrastructură. Ratele de plângeri și de bounce per tenant sunt monitorizate, iar un cont ale cărui rate depășesc pragul este limitat aici — înainte ca un furnizor să o facă pentru toți deodată.

În spatele fiecărui rând din listă, cineva a spus da.
Patru căi de intrare
Fiecare rută spre lista dumneavoastră sunteți dumneavoastră, acționând asupra propriilor date
Nu există un canal de ingest cu token de serviciu și niciun produs înfrate care să scrie discret în contactele dumneavoastră. Dacă doriți pe cineva pe o listă, unul dintre aceste patru l-a pus acolo.
Import CSV
Mapat coloană cu coloană, normalizat la scriere, verificat MX astfel încât domeniile moarte sau greșite să fie prinse înainte de a produce respingeri definitive, și primit cu o bază pe care o stabiliți în mod explicit. Importul primește un id, iar fiecare contact creat de acesta trimite înapoi la el.
Un formular ClickSomo
Randat din același document ca tot restul, cu validare, un honeypot și o limită de rată. O trimitere este singura rută care poate produce în mod legitim consent, fiindcă este singura în care persoana este prezentă.
O pagină construită de dvs. în dash-b
Designerul din dashboard publică pagini; un formular de pe una dintre ele trimite aici cu datele dvs. de autentificare. Aceeași validare, aceeași gestionare a consimțământului, fără o a doua integrare de întreținut.
API-ul public
POST /v1/contacts cu tokenul dvs., semantică de upsert, cheie de idempotență respectată. Aplicația dvs. știe deja cine s-a înscris; aceasta este calea cea mai scurtă de la acest fapt la un funnel.
Segmente ca predicat, compilat
Un segment este un arbore de predicate stocat peste câmpurile contactului, atribute, etichete, apartenența la liste și comportament, compilat în SQL și memorat în cache cu un număr. Operatorii sunt cei obișnuiți — egal, diferit, în, nu în, începe cu, se termină cu, conține, este setat, nu este setat — combinați cu and, or și not la orice adâncime aveți nevoie.
Previzualizați-l înainte de a-l folosi. Endpointul returnează contacte reale, astfel încât „cine este de fapt aici” este o întrebare la care răspundeți privind, nu trimițând și aflând.
Segmentele fac apoi dublu serviciu: ca audiență pentru o campanie, ca condiție pe o ramură de funnel și ca declanșator în sine — segment_enter pornește o rulare în momentul în care cineva devine eligibil.
- 1Etichetă
tags contains "regular" - 2Atribut
attrs.total_orders >= 3— câmpul dvs., numele dvs. pentru el. - 3ComportamentNiciun eveniment
order.paidîn ultimele 90 de zile. - 4ConsimțământO bază de e-mail utilizabilă. Contactele fără una nu sunt în număr, fiindcă oricum nu li s-ar putea trimite.
- iPrevizualizare412 contacte, listate. Numărate din nou la trimitere, fiindcă un segment este o întrebare, nu o instantaneu.
Compilat în SQLNumăr în cache, răspuns în timp real
Suprimarea și când este verificată
Suprimările sunt la nivel de proiect și globale: respingeri definitive, plângeri, dezabonări, intrări manuale și adrese de rol. Sunt verificate la momentul trimiterii, apoi din nou în interiorul serviciului de trimitere.
Al doilea cuvânt face toată treaba. Un funnel cu o așteptare de trei zile are o fereastră de trei zile în care cineva se poate dezabona, iar un sistem care a verificat suprimarea la punerea în coadă îi va trimite oricum mesajul. Verificarea la trimitere este diferența dintre a respecta o dezabonare și a înregistra una.
Ștergerea funcționează la fel: o cerere de ștergere elimină contactul și istoricul mesajelor sale aici, și ajunge la fiecare serviciu înfrate care deține o copie prin același canal intern folosit de restul familiei. Există un singur loc unde se cere și un singur lucru care se întâmplă.