Контакти и согласност
Листа што можете да ја браните, не само листа што ја имате
Секој може да држи десет илјади е-поштенски адреси. Прашањето што е важно — она што го поставуваат регулаторот, провајдерот и вашата сопствена совест, секој со малку поинаки зборови — е од каде дошла секоја од нив и врз каква основа смеете да пишувате на неа. ClickSomo го прави тоа зачуван факт, а не нешто што би морале да го реконструирате.
Идентитетот е е-поштенската адреса
Еден контакт по адреса по проект, наметнато од базата на податоци, а не од надеж. Адресите се нормализираат при запишување, никогаш при читање — ако нормализирате при читање, ограничувањето е само декорација што пушта и Anna@ и anna@.
Телефонските броеви се чуваат во E.164 каде што постојат, но телефонскиот број е атрибут, не идентитет. Нема граф за разрешување идентитети, нема протокол за спојување и нема записник за спојувања, бидејќи секој контакт тука пристигнува преку канал што веќе има адреса: увоз, формулар, претплата или Вашиот сопствен код.
Името се чува во целина
display_name се чува точно како што е дадено и никогаш не се дели на делови. Делењето имиња е фабрика за грешки — „van der Berg“, „Kim Min-jun“, едноставни имиња, титули и секоја конвенција за редослед што не е англосаксонска — а погрешно делење се појавува во ознака за спојување како „Почитуван van,“, што е полошо од никаква персонализација.
Структурираните делови постојат само за извори што ги доставуваат веќе разделени. Ништо не ги изведува. И име што некој самиот го впишал никогаш не се препишува од подоцнежен CSV што случано забележал нешто поинакво, бидејќи „последниот запишан победува“ им дозволува да победат најнепrecizните увози.
- 1ИдентитетЕ-пошта, нормализирана. Единствена во рамките на проектот.
- 2ИмеСе чува во целина.
first_nameсе изведува при прикажување, никогаш не се чува. - 3АтрибутиШто сакате, како JSON. Ваши, и интерполираливи како
attrs.*. - 4Ознаки и листиОзнаките се првокласни и живеат во едно складиште; листите се експлицитно членство.
- 5СогласностЕден ред по канал, со законска основа и нејзин доказ.
- 6НастаниДневник само со додавање на сè што оваа личност направила. Таблата на која се потпира производот.
- ×НикогашНема лозинка, нема хеш, нема сесија, нема API клуч. Колона што автентифицира некого би била инцидент, не функција.
Опсегот е ограничен на станар и проект, на двете
Евиденција за согласности
Отсуството не е дозвола
Еден ред по контакт по канал — е-пошта, SMS, писмо, push — секој со состојба, законска основа, извор, доказ, времиња и јурисдикција. Контакт без ред со основа за канал не може да му се испрати ништо на тој канал. Не „е означен“. Не може.
consent
Некој активно побарал. Поднесен формулар со зачуван доказ, двојна потврда, поле што самото го штиклирало. Ова е најсилната основа и единствената што формулар може да произведе.
legitimate_interest
Најдоброто што CSV увоз може да го постигне. Табелата не може да се сети дека некој нешто прифатил, па никогаш не смее да тврди дека го направил — и повторно подигање на истиот датотека не го надградува.
contract
Пишувате им затоа што нешто сте странки заедно. Потсетникот за услугата, известувањето за обновување, работата што би им било непријатно што не ја примиле.
Пред кампањата да се испрати, гледате составот на основите на нејзината публика: колку од овие луѓе побарале, колку достигнувате по легитимен интерес и колку се таму поради договор. Тоа е еден број што спречил повеќе лоши испраќања од кој било предупредувачки банер некогаш напишан.
Зошто ова е построго отколку што Ви треба: всушност не е за Вас. Репутацијата на масовното испраќање е заеднички ресурс, и една непажлива листа го труи бунарот за сите што испраќаат од истата инфраструктура. Стапките на жалби и одбијци по станар се следат, и сметка чија стапка го надминува прагот се ограничува тука — пред давателот на услуги да го направи тоа за сите одеднаш.

Зад секој ред во листата, некој рекол да.
Четири начини за влез
Секој пат до Вашата листа е Вие, дејствувајќи врз Вашите податоци
Нема влезна лента со сервис-токени и нема братски производ што тивко пишува во Вашите контакти. Ако сакате некој на листа, еден од овие четири го ставил таму.
CSV увоз
Мапирано колона по колона, нормализирано при запишување, проверено за MX за мртвите и погрешно напишаните домени да се фатат пред тврда одбијка, и доставено со основа што Вие ја поставувате експлицитно. Увозот добива идентификатор, и секој контакт што го создал укажува кон него.
ClickSomo формулар
Прикажан од истиот документ како сè останато, со валидација, honeypot и ограничување на стапката. Поднесувањето е единствениот пат што легитимно може да произведе consent, бидејќи е единствениот каде личноста е присутна.
Страница што ја изградивте во dash-b
Дизајнерот на контролната табла објавува страници; формулар на една од нив поднесува тука со Вашите сопствени акредитиви. Иста валидација, исто ракување со согласност, без втора интеграција за одржување.
Јавниот API
POST /v1/contacts со Вашиот сопствен токен, upsert семантика, почитуван клуч за идемпотентност. Вашата апликација веќе знае кој се пријавил; ова е најкраткиот пат од тој факт до инка.
Сегментите се предикат, компилиран
Сегмент е зачувано дрво на предикат врз полиња за контакти, атрибути, ознаки, членство во листи и однесување, компилирано во SQL и кеширано со бројач. Операторите се обичните — еднакво, нееднакво, во, не е во, започнува со, завршува со, содржи, е поставено, не е поставено — комбинирани со и, или и не, до која било длабочина што Ви треба.
Прегледајте го пред да го користите. Крајната точка враќа вистински контакти, така што „кој всушност е во ова“ е прашање на кое одговарате со гледање, а не со испраќање и откривање.
Сегментите потоа вршат двојна улога: како публика за кампања, како услов на гранка од инка и како окинувач сами по себе — segment_enter започнува извршување во моментот кога некој станува подобен.
- 1Ознака
tags contains "regular" - 2Атрибут
attrs.total_orders >= 3— Вашето поле, Вашето име за него. - 3ОднесувањеНема настан
order.paidво последните 90 дена. - 4СогласностУпотреблива основа за е-пошта. Контактите без таква не се во бројачот, бидејќи ионака не можеле да им се испрати.
- иПреглед412 контакти, излистани. Се бројат повторно при испраќање, бидејќи сегмент е прашање, а не слика на моментот.
Компилирано во SQLБројачот е кеширан, одговорот е жив
Исклучувања и кога се проверуваат
Исклучувањата се во обем на проектот и глобални: тврди одбија, поплаки, одјави, рачни записи и адреси на улоги. Тие се проверуваат во моментот на испраќање, а потоа уште еднаш внатре во самата услуга за испраќање.
Таа втора проверка го врши делото. Инка со чекање од три дена има тридневен прозорец во кој некој може да се одјави, а систем што ја проверил исклучуваната листа кога пораката била ставена во редица сепак ќе ѝ испрати. Проверката при испраќање е разликата меѓу да го почитувате одјавувањето и само да го запишете.
Бришењето работи на истиот начин: барање за бришење го отстранува контактот и неговата историја на пораки тука, и стигнува до секоја сестринска услуга што држи копија преку истиот внатрешен канал што го користи остатокот од семејството. Има едно место за барање и една работа што се случува.