clickSomo

Contactes i consentiment

Una llista que pots defensar, no només una llista que tens

Qualsevol pot tenir deu mil adreces de correu electrònic. La pregunta que importa —la que un regulador, un proveïdor i la teva pròpia consciència formulen amb paraules lleugerament diferents— és d'on ve cadascuna i amb quina base hi pots escriure. ClickSomo converteix això en un fet emmagatzemat, no en alguna cosa que haguessis de reconstruir.

La identitat és l'adreça de correu electrònic

Un contacte per adreça per projecte, garantit per la base de dades, no per l'esperança. Les adreces es normalitzen quan s'escriuen, mai quan es llegeixen — normalitzar en llegir converteix la restricció en una decoració que deixa entrar Anna@ i anna@ totes dues.

Els números de telèfon s'emmagatzemen en E.164 quan existeixen, però un número de telèfon és un atribut, no una identitat. No hi ha cap graf de resolució d'identitats, cap protocol de fusió ni cap pista d'auditoria de fusions, perquè cada contacte arriba aquí per un canal que ja té una adreça: una importació, un formulari, una subscripció o el teu propi codi.

El nom s'emmagatzema sencer

display_name es conserva exactament com es va donar i mai no es divideix en parts. Dividir noms és una fàbrica d'errors — «van der Berg», «Kim Min-jun», monònims, títols i qualsevol convenció d'ordre que no sigui anglosaxona — i una divisió errònia apareix en una etiqueta de fusió com a «Estimat van,», que és pitjor que cap personalització.

Les parts estructurades existeixen només per a les fonts que ja les subministren separades. Res no les deriva. I un nom que algú ha escrit ell mateix mai no se sobreescriu amb un CSV posterior que casualment observava una cosa diferent, perquè «l'última escriptura guanya» deixa guanyar la importació més descuidada.

Un contacteQuè es guarda
  • 1IdentitatCorreu electrònic, normalitzat. Únic dins del projecte.
  • 2NomEmmagatzemat sencer. first_name es deriva en renderitzar, mai no s'emmagatzema.
  • 3AtributsEl que vulguis, en JSON. Teus, i interpolables com a attrs.*.
  • 4Etiquetes i llistesLes etiquetes són de primera classe i viuen en un únic magatzem; les llistes són pertinença explícita.
  • 5ConsentimentUna fila per canal, amb una base legal i la seva evidència.
  • 6EsdevenimentsUn registre només d'annexió de tot el que aquesta persona ha fet. La taula de la qual penja el producte.
  • ×MaiNi contrasenya, ni hash, ni sessió, ni clau d'API. Una columna que autentiqués algú seria un incident, no una funcionalitat.

Amb àmbit de tenant i de projecte, tots dos

El registre de consentiments

L'absència no és permís

Una fila per contacte per canal — correu, SMS, carta, push — cadascuna amb un estat, una base legal, una font, l'evidència, les marques de temps i la jurisdicció. Un contacte sense fila de base per a un canal no pot rebre res per aquell canal. No «està marcat». No en pot rebre.

consent

Algú ho ha demanat activament. Un enviament de formulari amb l'evidència emmagatzemada, una doble confirmació, una casella que ha marcat ell mateix. És la base més forta i l'única que un formulari pot produir.

legitimate_interest

El millor que pot aconseguir una importació CSV. Un full de càlcul no pot recordar que algú va acceptar alguna cosa, així que mai no se li permet afirmar que ho va fer — i tornar a pujar el mateix fitxer no l'actualitza.

contract

Els hi escrius perquè tots dos sou part d'alguna cosa. El recordatori del servei, l'avís de renovació, allò que s'ennuigarien de no rebre.

Abans d'enviar una campanya, veus la composició de bases de la seva audiència: quantes d'aquestes persones ho han demanat, quantes hi arribes per interès legítim i quantes hi són per un contracte. És una xifra que ha aturat més enviaments dolents que qualsevol bàner d'avís mai escrit.

Per què això és més estricte del que et caldria: en realitat no va de tu. La reputació de l'enviament massiu és un recurs compartit, i una sola llista descuidada enverina el pou per a tothom que enviï des de la mateixa infraestructura. Les taxes de queixes i rebots per tenant es vigilen, i un compte que les supera es limita aquí — abans que ho faci un proveïdor per a tothom alhora.

Darrere de cada fila de la llista, algú va dir que sí.

Quatre maneres d'entrar

Cada ruta cap a la teva llista ets tu, actuant sobre les teves pròpies dades

No hi ha cap carril d'ingestió amb testim de servei ni cap producte germà que escrigui en silenci als teus contactes. Si vols algú en una llista, una d'aquestes quatre rutes l'hi ha posat.

Importació CSV

Mapejada columna per columna, normalitzada en escriure, amb comprovació MX perquè els dominis morts i mal escrits es detectin abans del rebot dur, i arribada amb una base que establis explícitament. La importació rep un identificador, i cada contacte que ha creat hi apunta.

Un formulari de ClickSomo

Renderitzat del mateix document que tota la resta, amb validació, un honeypot i un límit de freqüència. Un enviament és l'única ruta que pot produir legítimament consent, perquè és l'única on la persona és present.

Una pàgina que has construït a dash-b

El dissenyador del tauler publica pàgines; un formulari en una d'elles envia aquí amb les teves pròpies credencials. La mateixa validació, la mateixa gestió del consentiment, cap segona integració a mantenir.

L'API pública

POST /v1/contacts amb el teu propi token, semàntica d'upsert, clau d'idempotència respectada. La teva aplicació ja sap qui s'ha registrat; aquest és el camí més curt d'aquest fet a un embut.

Els segments són un predicat, compilat

Un segment és un arbre de predicats emmagatzemat sobre camps de contacte, atributs, etiquetes, pertinença a llistes i comportament, compilat a SQL i emmagatzemat a la cau amb un recompte. Els operadors són els ordinaris — igual, diferent, dins, fora, comença per, acaba amb, conté, està definit, no està definit — combinats amb and, or i not a la profunditat que necessitis.

Previsualitza'l abans d'utilitzar-lo. L'endpoint retorna contactes reals, així que «qui hi ha realment aquí» és una pregunta que respones mirant i no enviant i comprovant.

Els segments fan llavors una doble funció: com a públic d'una campanya, com a condició d'una branca de l'embut i com a disparador per dret propi — segment_enter inicia una execució en el moment en què algú esdevé elegible.

Habituals silenciososPrevisualització de segment · 412
  • 1Etiquetatags contains "regular"
  • 2Atributattrs.total_orders >= 3 — el teu camp, el teu nom per a ell.
  • 3ComportamentCap esdeveniment order.paid en els últims 90 dies.
  • 4ConsentimentUna base de correu electrònic utilitzable. Els contactes sense una no hi són al recompte, perquè de totes maneres no se'ls podria enviar res.
  • iPrevisualització412 contactes, llistats. Tornen a comptar-se en l'enviament, perquè un segment és una pregunta i no una instantània.

Compilat a SQLRecompte a la cau, resposta en directe

Supressions, i quan es comproven

Les supressions són per projecte i globals: rebots permanents, queixes, baixes, entrades manuals i adreces de rol. Es comproven en el moment de l'enviament, i després una altra vegada dins del propi servei d'enviament.

Aquesta segona comprovació és la que fa la feina. Un embut amb una espera de tres dies té una finestra de tres dies en què algú pot donar-se de baixa, i un sistema que va comprovar les supressions quan el missatge es va posar a la cua li enviarà el correu igualment. Comprovar en l'enviament és la diferència entre respectar una baixa i registrar-la.

L'esborrat funciona igual: una sol·licitud d'eliminació suprimeix el contacte i el seu historial de missatges aquí, i arriba a tots els serveis germans que en tenien una còpia a través del mateix carril intern que fa servir la resta de la família. Hi ha un sol lloc on demanar-ho i una sola cosa que passa.