clickSomo

聯絡人同意

一份你守得住嘅名單,唔止係你手上嘅名單

任何人都可以有一萬個電郵地址。真正重要嘅問題——監管機構、供應商同你自己嘅良心都會用唔同字眼問嘅嗰條——係每個地址由邊度嚟,同埋你憑咩可以寫俾佢。ClickSomo 將呢樣嘢變成儲存咗嘅事實,而唔係要你自己重新拼返出嚟。

身份就係電郵地址

每個項目、每個地址只得一個聯絡人,由資料庫強制執行,唔靠運氣。地址喺寫入嗰陣就正規化,唔係讀取嗰陣先做——讀取先正規化嘅話,個約束就只係裝飾,會令 Anna@ 同 anna@ 都入到嚟。

電話號碼存在嘅話會用 E.164 儲存,但電話號碼係一個屬性,唔係身份。呢度冇身份解析圖、冇合併協議、亦冇合併審計紀錄,因為每個聯絡人都係經一條本身已經有地址嘅渠道入嚟:匯入、表格、訂閱,或者你自己寫嘅程式碼。

個名會完整儲存

display_name 會原封不動咁保留,永遠唔會拆開。拆名係製造 bug 嘅工廠——「van der Berg」、「Kim Min-jun」、單名、稱謂,同埋所有唔係盎格魯式嘅排序慣例——拆錯咗,喺合併標籤度就會出現 「Dear van,」,比完全唔做個人化仲差。

結構化嘅名嘅部分,只會喺來源本身已經分好先至存在。冇任何嘢會自行推導。而一個人自己打嘅名,永遠唔會被一個後來啱啱觀察到唔同嘢嘅 CSV 覆蓋,因為「後寫取勝」只會令最求其嘅匯入贏。

一個聯絡人儲存咗啲乜
  • 1身份電郵,已正規化。喺項目內唯一。
  • 2名完整儲存。first_name 係喺渲染嗰陣先推導出嚟,永遠唔會儲存。
  • 3屬性你鍾意放乜都得,用 JSON。係你嘅嘢,可以用 attrs.* 插值。
  • 4標籤同名單標籤係一等公民,全部存喺同一個儲存庫;名單係明確嘅成員關係。
  • 5同意每個渠道一行,載明合法依據同埋佢嘅證據。
  • 6事件一個只增不減嘅日誌,記錄呢個人做過嘅所有嘢。成個產品都係靠呢張表運作。
  • ×永遠唔使冇密碼、冇雜湊、冇 session、冇 API key。一個可以驗證某人身份嘅欄位係一宗事故,唔係功能。

同時受租戶同項目兩層限制

同意帳簿

冇紀錄唔等於有許可

每個聯絡人每個渠道一行——電郵、SMS、信件、推播——每行都載有狀態、一個合法依據、來源、證據、時間戳同司法管轄區。一個聯絡人如果某渠道冇依據行,就唔可以喺嗰個渠道收到任何嘢。唔係「被標記」。係唔得。

consent

有人主動提出過。一份有儲存證據嘅表格提交、double opt-in、佢自己剔嘅一個剔選框。呢個係最強嘅依據,亦係唯一一個表格可以產生嘅依據。

legitimate_interest

CSV 匯入最好都只能做到咁。一個試算表冇可能記得有人同意過啲乜,所以永遠唔准佢聲稱有——而且重新上載同一個檔案都唔會升級個依據。

contract

你寫俾佢哋,係因為你哋雙方都有份參與嘅一件事。服務提醒、續約通知、嗰啲收唔到會嬲嘅嘢。

活動發送之前,你會見到受眾嘅依據組合:幾多人係主動要求過、幾多人係以正當利益為依據接觸到、幾多人係因為合約而喺度。就係一個數字,但佢阻止過嘅爛發送,比任何警告橫額都多。

點解呢度對你嚴過實際需要:其實唔係關你事。大量發送嘅信譽係共享資源,一個求其嘅名單會毒害成個井,令所有用同一套基建發送嘅人都受害。每個租戶嘅投訴率同退信率都有監察,超標嘅帳戶會喺呢度被限速——喺供應商一次過限晒所有人之前。

名單入面每一行背後,都有人講過一句好。

四條入路

每條入你名單嘅路,都係你自己對自己嘅數據採取行動

冇服務 token 嘅匯入通道,亦冇姊妹產品靜靜雞寫入你嘅聯絡人。你想某人入名單,就係以下四條路其中一條送佢入去。

CSV 匯入

逐欄對應、寫入時正規化、做 MX 檢查,令死咗同打錯嘅網域喺硬退信之前就被捉到,並且以你明確設定嘅依據入庫。匯入會有一個 id,佢建立嘅每個聯絡人都會指返去嗰個 id。

ClickSomo 表格

同其他所有嘢一樣由同一份文件渲染,有驗證、蜜罐同速率限制。一次提交係唯一一條可以正當產生 consent 嘅路,因為只有呢條路嗰個人係在場嘅。

你喺 dash-b 起嘅一頁

儀表板設計器發佈頁面;頁面上嘅表格會用你自己嘅憑證 POST 過嚟。同樣嘅驗證、同樣嘅同意處理,唔使維護第二個整合。

公開 API

POST /v1/contacts,用你自己嘅 token,upsert 語義,支援冪等鍵。你嘅 app 本身已經知道邊個註冊咗;呢度就係由嗰個事實去到漏斗嘅最短路徑。

分眾係一個述詞,會編譯

一個分眾係一棵儲存咗嘅述詞樹,建基於聯絡人欄位、屬性、標籤、名單成員資格同行為,編譯做 SQL 並且連人數一齊快取。運算子都係平常嗰啲——等於、不等於、屬於、不屬於、以…開頭、以…結尾、包含、有值、無值——再用 and、or 同 not 任意嵌套去組合。

用之前先預覽一下。呢個端點會返回真實聯絡人,所以「實際上邊啲人喺入面」呢條問題係靠睇嚟答,唔係靠寄咗先知。

分眾仲一物多用:做活動嘅受眾、做漏斗分支嘅條件,仲可以自己本身做觸發器——segment_enter 會喺有人一符合資格嗰刻開始一次執行。

沉默常客分眾預覽 · 412
  • 1標籤tags contains "regular"
  • 2屬性attrs.total_orders >= 3——你自己嘅欄位,你自己改嘅名。
  • 3行為最近 90 日內無 order.paid 事件。
  • 4同意一個用得嘅電郵基礎。無嘅聯絡人唔會計入人數,因為反正都寄唔到俾佢哋。
  • i預覽412 個聯絡人,已列出。寄出嗰陣會再數一次,因為分眾係一條問題,唔係一張快照。

編譯做 SQL人數有快取,答案係即時

抑制,同埋幾時檢查

抑制係以專案為範圍兼全域嘅:硬退信、投訴、取消訂閱、手動加入嘅項目同角色地址。佢哋會喺寄出嗰一刻被檢查,然後喺發送服務入面再檢查多一次。

嗰第二次檢查先至係關鍵。一個有三日等待嘅漏斗,就有三日嘅窗口俾人取消訂閱,而一個喺訊息排隊嗰陣先檢查抑制嘅系統,照樣會寄俾佢。喺寄出嗰刻先檢查,就係「尊重一個取消訂閱」同「只係記錄咗一個」嘅分別。

刪除都係同一套:刪除請求會喺度移除該聯絡人同佢嘅訊息歷史,並且透過成個家族其餘成員都用嘅同一條內部通道,去到每一個持有副本嘅姊妹服務。只有一個地方可以提出,亦只有一件事會發生。