clickSomo
Buksan ang ClickSomo

Mga contact at pahintulot

Isang listahang maipagtatanggol mo, hindi lang isang listahang hawak mo

Kahit sino ay maaaring maghawak ng sampung libong e-mail address. Ang mahalagang tanong — ang tanong ng regulator, ng provider, at ng iyong sariling konsensya, sa bahagyang magkakaibang salita — ay kung saan nanggaling ang bawat isa at sa anong batayan maaari kang sumulat dito. Ginagawa itong nakaimbak na katotohanan ng ClickSomo sa halip na kailanganin mong buuin muli.

Ang identity ay ang e-mail address

Isang contact kada address kada proyekto, ipinatutupad ng database at hindi ng pag-asa. Inia-normalize ang mga address kapag isinusulat, hindi kailanman kapag binabasa — kung i-normalize sa pagbasa, ang constraint ay palamuting nagpapapasok pareho ng Anna@ at anna@.

Ang mga numero ng telepono ay nakaimbak sa E.164 kung mayroon, ngunit ang numero ng telepono ay katangian, hindi identity. Walang identity-resolution graph, walang merge protocol, at walang audit trail ng mga merge, dahil ang bawat contact dito ay dumarating sa pamamagitan ng channel na mayroon nang address: isang import, isang form, isang subscribe, o ang iyong sariling code.

Ang pangalan ay nakaimbak nang buo

Ang display_name ay pinapanatili eksakto kung paano ito ibinigay at hindi kailanman hinihiwalay sa mga bahagi. Ang paghihiwalay ng pangalan ay pabrika ng bug — "van der Berg", "Kim Min-jun", mononym, mga titulo, at bawat kaayusan na hindi Anglo — at ang maling paghihiwalay ay lumalabas sa merge tag bilang "Dear van,", na mas masahol pa kaysa walang personalisasyon.

Ang mga estrukturadong bahagi ay mayroon lamang para sa mga pinagmulan na nagbibigay na ng mga itong hiwa-hiwalay. Walang nagdederiba ng mga ito. At ang pangalang mismong tinype ng tao ay hindi kailanman pinapalitan ng kalaunang CSV na saka lang nakakita ng iba, dahil ang last-write-wins ay nagpapapanalo sa pinakamaguloang import.

Isang contactAno ang hawak
  • 1IdentityE-mail, na-normalize. Natatangi sa loob ng proyekto.
  • 2PangalanNakaimbak nang buo. Ang first_name ay dinederiba sa oras ng pag-render, hindi kailanman nakaimbak.
  • 3Mga attributeAnumang gusto mo, bilang JSON. Sa iyo, at maaaring i-interpolate bilang attrs.*.
  • 4Mga tag at listahanAng mga tag ay first class at naninirahan sa iisang tindahan; ang mga listahan ay malinaw na pagiging miyembro.
  • 5PahintulotIsang row kada channel, na may lawful basis at ang ebidensya nito.
  • 6Mga eventIsang append-only na tala ng lahat ng ginawa ng taong ito. Ang talahanayang pinakapapatakbo ng produkto.
  • ×Hindi kailanmanWalang password, walang hash, walang session, walang API key. Ang isang column na nagpapatotoo sa isang tao ay insidente, hindi tampok.

Saklaw sa tenant at proyekto, pareho

Ang consent ledger

Ang pagliban ay hindi pahintulot

Isang hilera bawat contact bawat channel — e-mail, SMS, liham, push — bawat isa ay may estado, isang batayang ayon sa batas, pinagmulan, ebidensya, mga timestamp at hurisdiksyon. Ang contact na walang hilera ng batayan para sa isang channel ay hindi maaaring padalhan ng anuman sa channel na iyon. Hindi "naka-flag lang". Hindi talaga maaari.

consent

May aktwal na humingi. Isang pagsusumite ng form na may nakaimbak na ebidensya, isang double opt-in, isang checkbox na kanilang sariling tinick. Ito ang pinakamalakas na batayan at ito lamang ang kayang gawin ng isang form.

legitimate_interest

Ang pinakamataas na antas na maabot ng isang CSV import. Hindi kayang tandaan ng isang spreadsheet ang pagpayag ng isang tao, kaya hindi kailanman pinapahintulutang sabihing pumayag sila — at ang muling pag-upload ng parehong file ay hindi nagpapataas nito.

contract

Sumusulat ka sa kanila dahil sa isang bagay na pareho kayong partido. Ang paalala sa serbisyo, ang abiso ng pag-renew, ang bagay na maiinis sila kung hindi nila matanggap.

Bago magpadala ang isang campaign, nakikita mo ang basis mix ng audience nito: ilan sa mga taong ito ang humingi, ilan ang inaabot mo sa ilalim ng legitimate interest, at ilan ang naroon dahil sa kontrata. Isang numero ito na pumigil sa mas maraming masamang pagpapadala kaysa sa anumang warning banner na nasulat na.

Bakit mas mahigpit ito kaysa kailangan mo: hindi talaga ito tungkol sa iyo. Ang reputasyon ng bulk sending ay pinagsasaluhan, at isang pabayaang listahan ang nilalason ang balon para sa lahat na nagpapadala mula sa parehong imprastruktura. Bantay-bantay ang per-tenant na complaint at bounce rate, at ang account na lumalampas sa threshold ay pinipigilan dito — bago pa ito gawin ng provider sa lahat nang sabay-sabay.

Sa likod ng bawat hilera sa listahan, may taong nagsabi ng oo.

Apat na paraan ng pagpasok

Bawat daan papasok sa iyong listahan ay ikaw, kumikilos sa iyong sariling data

Walang service-token ingest lane at walang kapatid na produktong tahimik na nagsusulat sa iyong mga contact. Kung gusto mong maisama ang isang tao sa listahan, isa sa apat na ito ang naglagay sa kanya doon.

CSV import

Naka-map column by column, nino-normalize sa pagsulat, MX-checked para mahuli ang patay at maling spelling na mga domain bago pa ito hard-bounce, at inilalapag na may batayang itinakda mo nang malinaw. May id ang import, at bawat contact na ginawa nito ay tumuturo pabalik dito.

Isang ClickSomo form

Nire-render mula sa parehong dokumento ng lahat ng iba, may validation, honeypot at rate limit. Ang isang pagsusumite ang tanging daang maaaring lehitimong makagawa ng consent, dahil ito lamang ang nandoon ang tao.

Isang pahinang ginawa mo sa dash-b

Naglalathala ng mga pahina ang dashboard designer; ang isang form sa isa sa mga ito ay nagpo-post dito gamit ang iyong sariling credentials. Parehong validation, parehong paghawak ng consent, walang pangalawang integration na aalagaan.

Ang pampublikong API

POST /v1/contacts gamit ang iyong sariling token, upsert semantics, iginagalang ang idempotency key. Alam na ng iyong app kung sino ang nag-sign up; ito ang pinakamaikling daan mula sa katunayang iyon patungo sa isang funnel.

Ang mga segment ay isang predicate, naka-compile

Ang isang segment ay isang nakaimbak na predicate tree sa mga contact field, attribute, tag, pagiging miyembro ng listahan at pag-uugali, naka-compile sa SQL at naka-cache na may bilang. Ang mga operator ay ang karaniwan — equals, not equals, in, not in, starts with, ends with, contains, is set, is not set — pinagsasama sa and, or at not sa anong lalim na kailangan mo.

I-preview muna bago gamitin. Nagbabalik ang endpoint ng tunay na mga contact, kaya ang "sino talaga ang nasa loob nito" ay tanong na sinasagot mo sa pamamagitan ng pagtingin, hindi sa pamamagitan ng pagpapadala at pagkatuklas.

Pagkatapos ay nagsisilbi ang mga segment nang dobleng tungkulin: bilang audience ng isang campaign, bilang kundisyon sa isang sangay ng funnel, at bilang trigger sa sarili nilang karapatan — nagsisimula ang segment_enter ng isang run sa sandaling maging kuwalipikado ang isang tao.

Mga tahimik na regularPreview ng segment · 412
  • 1Tagtags contains "regular"
  • 2Attributeattrs.total_orders >= 3 — iyong field, iyong pangalan para dito.
  • 3BehaviorWalang order.paid event sa nakalipas na 90 araw.
  • 4PahintulotIsang magagamit na batayan sa e-mail. Hindi kasama sa bilang ang mga contact na wala nito, dahil hindi rin sila maaaring padalhan.
  • iSilipin412 na contact, nakalista. Binibilang muli sa pagpapadala, dahil ang isang segment ay isang tanong at hindi isang snapshot.

Naka-compile sa SQLNaka-cache ang bilang, buhay ang sagot

Suppression, at kailan ito tinitingnan

Ang mga suppression ay project-scoped at global: hard bounces, mga reklamo, mga pag-unsubscribe, mga manu-manong entry at mga role address. Tinitingnan ang mga ito sa oras ng pagpapadala, at pagkatapos ay muli sa loob mismo ng sending service.

Ang pangalawang salitang iyon ang gumagawa ng trabaho. Ang isang funnel na may tatlong araw na paghihintay ay may tatlong araw na bintana kung saan maaaring mag-unsubscribe ang isang tao, at ang sistemang tumingin sa suppression noong na-queue ang mensahe ay padadalan pa rin sila. Ang pagtingin sa oras ng pagpapadala ang pagitan ng paggalang sa isang unsubscribe at pagtatala lamang nito.

Gumagana ang pagbura sa parehong paraan: inaalis ng isang deletion request ang contact at ang kanilang kasaysayan ng mga mensahe dito, at umaabot sa bawat kapatid na serbisyong may kopya sa pamamagitan ng parehong panloob na lane na ginagamit ng buong pamilya. May isang lugar na tatanungin at isang bagay na nangyayari.