clickSomo

채널

같은 그래프에서 누군가에게 닿는 네 가지 방법

리마인더는 사람들이 몇 분 안에 읽는 SMS로 가요. 이야기는 공간이 충분한 이메일로 가요. 어깨 톡 건드리기는 푸시로 가요. 우표를 쓸 가치가 있는 고객에게는 인쇄해서 우편으로 보내요. 메시지가 어느 것을 쓰는지는 노드의 속성이지, 따로 사서 배우고 정산해야 하는 별도 도구의 속성이 아니에요.

이메일

여러분의 문서를 이메일 클라이언트가 실제로 원하는 형태로 렌더링해요: 테이블, 인라인 CSS, Outlook을 위한 flex·grid 배제, 다크 모드에 안전한 색상, 그리고 자동 생성되는 일반 텍스트 대안.

RFC 8058과 이제 대형 메일함 제공자들이 요구하는 대로 List-Unsubscribe-Post를 통한 원클릭 수신 거부. 그리고 발행 시 크기 검사도 해요. Gmail은 약 102 KB에서 잘라내고, 잘린 메시지는 아무도 보지 않는 부분 맨 아래에 수신 거부 링크를 숨겨 버려요.

SMS

오늘 꼭 읽혀야 하는 메시지를 위해: 내일의 약속, 일요일에 끝나는 제안. 짧고 거의 즉시 읽히기 때문에, 바로 그래서 남용해서는 안 돼요.

세그먼트는 발송 전에 계산돼요. GSM-7은 160자를 줘요; 이모지 하나, 컬리 따옴표, 확장 테이블 밖의 폴란드어 발음 구별 문자 하나가 메시지 전체를 세그먼트당 70자인 UCS-2로 전환시키고, 한 세그먼트라고 생각한 메시지가 이제 세 세그먼트를 쓰게 돼요. 그 숫자는 인보이스가 아니라 발송 전에 보여요. STOP과 그에 상응하는 키워드는 서비스 내부에서 존중돼요. 대부분의 시장에서 그것은 기능이 아니라 법적 요구사항이기 때문이에요.

푸시

VAPID 키와 RFC 8291 페이로드 암호화를 갖춘 웹 푸시, APNs를 통한 iOS, FCM을 통한 Android, 그리고 이미 연결된 앱을 위한 소켓 기반 인앱 채널이 있어요.

기기 레지스트리는 앱·엔드포인트·연락처 조합당 한 행을 보유하고, 제공자로부터 410이나 404가 오면 그 행을 즉시 정리해요. 정리되지 않는 토큰은 조용히 전달률을 오염시키고 이후의 모든 측정을 틀리게 만들어요 — 그래서 정리가 발송보다 더 중요해요.

인쇄 편지

같은 크리에이티브 문서를 인쇄용 CSS로 PDF에 렌더링하고, 주소를 붙여 우편으로 보내요. 기념일을 위해, 고가치 고객을 위해, 이메일을 읽지 않는 고객층을 위해 — 그리고 모든 경쟁자가 받은 편지함에 있을 때 여러분은 현관 매트 위에 있는 그 순간을 위해.

평범한 노드예요. 같은 대기가 앞에 놓이고, 같은 목표 검사가 취소하며, 같은 동의 장부가 애초에 보낼 수 있는지를 결정해요.

자체 발송 연결

ClickSomo는 의도적이고 영구적으로 메일 서버를 운영하지 않아요. 여러분은 발신자 신원을 연결해요: 주소를 그 주소를 보낼 방법에 묶은 것. 그것은 여러분의 SMTP 메일함 — 호스팅이 이미 제공하는 것도 포함 — 이거나, SendGrid처럼 이미 비용을 지불 중인 제공자예요.

프로젝트 하나에 여러 개를 둘 수 있어요. 트랜잭션 메일용 메일함, 대량 발송용 프로바이더를 두고, 퍼널 노드가 그중 어느 것을 사용할지 고릅니다. 각 발신자 신원에는 자체 발송 한도가 붙어요. 작은 메일함은 한도가 낮고, 그 한도를 무시하고 밀어붙이면 단순한 속도 제한이 아니라 계정 정지로 이어지기 때문이에요.

시스템이 절대 깨지 못하게 하는 규칙이 하나 있어요: 대량 트래픽은 트랜잭션으로 지정된 도메인에서 절대 발송되지 않아요. 로그인 메일과 영수증이 어떤 도메인으로 나가고 있다면, 그 도메인에는 대량 발송 신원을 만들 수 없어요. 나쁜 캠페인 하나 — 그게 본인 것이든 남의 것이든 — 가 여러분 자신의 비밀번호 재설정 메일까지 마비시켜서는 안 되니까요.

그 결과가 바로 핵심이에요: 묶어서 계산하는 건당 비용이 없어요. 묶을 것이 없으니까요. 여러분의 평판은 오로지 여러분만의 것이고, 낯선 이들과 합쳐지지 않아요.

메일함 연결하기발신자 신원
  • 1주소와 호스트호스트, 포트, 자격 증명, TLS 모드, 그리고 직접 설정하는 발송 한도.
  • 2DNS 확인 완료필요한 SPF, DKIM, DMARC 레코드를 확인한 뒤 검증하고, 나중에 다시 점검해요. 누군가 존 파일을 정리하면 레코드가 어긋나기 때문이에요.
  • 3반송 경로반송 통지를 수신하고, 해석하고, 분류하는 실제 메일함을 향하게 해요. SMTP에는 웹훅이 없어요. 소규모 발신자가 진짜 반송 처리를 갖추는 방법은 이것뿐이에요.
  • !거절됨트랜잭션으로 표시된 도메인에 만든 대량 발송 신원. 지금은 정책 한 줄이지만, 나중에는 되돌릴 수 없는 난장판이 돼요.

여러분의 주소여러분의 평판마크업 없음

네 가지 경로. 메시지가 맞는 경로를 골라요.

정말로 유용한 부분

어떤 프로바이더가 메시지를 전달하든, 하나의 발송 어휘

프로바이더마다 발송 결과를 알려주는 방식이 달라요. SendGrid는 서명된 JSON 웹훅을 보내요. 일반 SMTP 계정은 아무것도 보내지 않고, 반송이 사람이 읽도록 쓰인 이메일로 도착해요. 둘 다 상위 어디에도 전달되기 전에 동일한 열한 가지 이벤트로 정규화돼요.

이벤트 어휘프로바이더의 것이 아니라 저희 것
  • 1대기 중 · 발송됨 · 전달됨 · 보류됨메시지의 진행 상태를, 프로바이더 어디에서든 같은 의미로 통하는 단어로 표현해요.
  • 2open · click클릭에는 URL이 함께 와요. 봇 트래픽은 숨기지 않고 리포트에서 분리해서 보여줘요.
  • 3소프트 바운스 · 하드 바운스 · 불만 신고하드 반송과 수신 거부(complaint)는 모두 영구적인 서프레션을 기록해요.
  • 4unsubscribe · failed수신 거부는 발송 서비스 내부를 포함해 모든 곳에서 한 번에 적용돼요.
  • i이것이 중요한 이유프로바이더를 바꿔도 상위에는 아무것도 바뀌지 않아요 — 리포트도, 세그먼트도, 퍼널 조건도요. 프로바이더의 방언은 문 앞에서 끝나요.

SMS와 푸시도 같은 이벤트

발송이 잘못됐을 때 일어나는 일

재시도는 지수 백오프를 쓰고, 조용히 사라지는 대신 데드레터 큐로 끝나요. 프로바이더의 4xx는 재시도하고, 메시지가 수락 불가능하다는 뜻인 5xx는 재시도하지 않아요. 끝없이 재시도하는 것이 계정 정지로 이어지는 길이기 때문이에요.

서프레션은 여기뿐 아니라 발송 서비스 내부에서도 강제돼요. 그래서 프로바이더를 바꿔도 2년 전에 차단한 주소가 되살아나지 않아요. 그리고 신원별 동시성 제한 덕분에 대규모 캠페인이 첫 30초에 작은 메일함을 압도하는 대신, 그 메일함에 맞춰 속도를 조절해요.

의도적으로 만들지 않은 것: 자체 메일 전송 에이전트도, 전용 IP 풀도, 워밍업 스케줄러도, 피드백 루프 등록도 없어요. 그건 분명히 할 만한 일이지만, 평판이 걸려 있는 당사자 — 여러분의 프로바이더 또는 여러분 자신의 메일함 — 의 몫이에요. 그걸 여기서 만들면 여러분의 발송을 낯선 이들과 합치게 되는데, 바로 이 설계가 거부하는 것이 그것이에요.