SaaS와 제품 팀
고객님의 제품은 어떤 마케팅 도구도 볼 수 없는 것들을 알고 있어요
온보딩을 끝낸 사람과 3단계에서 멈춘 사람. 동료를 초대한 사람. 이번 주에 두 번 한도에 도달한 사람. 두 주 동안 그것을 열지 않은 사람. 이 모든 것은 이메일 열람에서 파생된 그 어떤 트리거보다 낫고, 코드 두 줄이면 트리거가 될 수 있어요.
이벤트가 통합의 전부예요
고객님 자신의 토큰으로 POST /v1/events를 호출하세요: 고객님이 정한 이름, 연락처, 페이로드, 멱등성 키. 그게 연결의 전부예요. 최신 상태로 유지할 SDK도, 매핑 화면도, 제품을 우리의 어휘로 번역해야 할 필요도 없어요.
각 이벤트는 연락처의 추가 전용 로그에 기록되고, 거기서 세 가지 역할을 동시에 해요. 트리거 — 도착하면 퍼널이 시작돼요. 조건 — 세그먼트가 "지난 14일 동안 이것을 했음" 또는 더 유용하게는 "하지 않았음"이라고 말할 수 있어요. 그리고 목표 — 누군가 그것을 향해 유도받던 일을 하는 순간 시퀀스가 끝나요.
이 세 번째가 라이프사이클 메시지를 받을 만하게 만들어요. 계정 설정을 끝내라는 알림은 계정이 설정되는 순간 존재가 끝나야 해요. 하지만 대부분의 도구에서는 그렇지 않아요. 시퀀스와 제품이 서로 대화하지 않기 때문이에요.
- ⚡트리거
api_event—signup.completed, 플랜free. - 2이메일 보내기가장 먼저 할 단 한 가지예요. 11가지 기능 둘러보기가 아니에요.
- 32일 대기실행의
wake_at이에요. 대기열에 아무것도 없고, 내일 이것을 다시 작성해도 풀어야 할 것도 없어요. - ?조건
project.created가 도착했나요? 아니요 → 도움 분기로. 예 → 아래 목표로. - 4도움 분기하지 않은 구체적인 행동을 제안하는 메시지 하나. 그리고 두 번째 대기.
- 5목표
project.created이벤트가 도착합니다. 시퀀스가 종료됩니다. 이 사람에게는 다시는 온보딩 메일이 발송되지 않습니다.
이벤트 이름활성화의 정의
다섯 개의 퍼널
실제로 일어나는 순서대로 본 라이프사이클
1 · 활성화
트리거: 가입. 두세 개의 메시지로, 각각 하나의 행동에 대해 이야기하고, 그 행동이 일어나면 시퀀스를 끝내는 목표를 담고 있습니다. 여러분이 만들 퍼널 중 가장 가치 있는 퍼널이자, 세 번 다시 써볼 만한 가장 가치 있는 퍼널입니다.
2 · 정체기
트리거: segment_enter — 가입 후 7일 동안 의미 있는 이벤트가 없음. 묻는 메시지 하나, 구체적인 것을 제안하는 메시지 하나. 그리고 멈춥니다. 세 번 무시한 사람에게 보내는 네 번째 메시지는 아무에게도 닿지 않는 메시지입니다.
3 · 확장의 순간
트리거: 가치를 얻고 있다는 뜻의 이벤트 — 한도 도달, 세 번째 동료 초대, 두 번째 내보내기. 업그레이드 메시지가 환영받는 유일한 순간이며, 여러분의 제품이 정확히 이름 붙일 수 있는 순간이기도 합니다.
4 · 갱신 및 결제 실패 처리
트리거: 갱신 전 date_field 또는 결제 이벤트. 안내, 리마인더, 그리고 — 결제가 실패하면 — 성공하는 즉시 멈추는 짧은 시퀀스. 결제 실패 처리에서 목표 노드는 선택 사항이 아닙니다. 리마인더와 괴롭힘을 가르는 차이입니다.
5 · 복귀 유도
트리거: segment_enter — 해지 또는 60일간 휴면. 정직한 메시지 두 개, 그다음 태그 하나와 침묵. 할인보다 나은 메시지는 그들이 떠난 뒤 무엇이 바뀌었는지 알려주는 것입니다.
그리고 내부용 퍼널
notify_team은 사람이 개입할 가치가 있는 계정이 경계를 넘을 때 사람에게 알려줍니다. 퍼널이 고객에게 보내는 이메일로 끝날 필요는 없습니다. 때로는 옳은 행동은 여러분 쪽 누군가에게 전화를 들라고 말하는 것입니다.

아무도 이탈하려고 이탈하지 않습니다. 그냥 열어 보는 것을 멈출 뿐입니다.
개발자가 실제로 마음에 들 수 있는 이유
직접 연동하는 사람에게 중요한 부분들
비공개 엔드포인트 없음
모든 화면은 공개 API로 만들 수 있습니다. 다른 종류의 API가 존재하지 않기 때문입니다. 캠페인 리포트를 여러분의 관리자 화면에 넣고 싶어도 가로막는 것이 없고, 리버스 엔지니어링할 필요도 없습니다.
모든 곳에 멱등성 키
변경을 일으키는 모든 라우트에 적용됩니다. 여러분의 재시도 로직, at-least-once 큐, 불안정한 네트워크가 모두 다른 누군가의 — 정확히는 유니크 인덱스의 — 문제가 됩니다.
출시 전에 시뮬레이션
POST /v1/simulate는 연락처를 퍼널에 통과시켜 경로와 발송될 모든 메시지를 반환하는 드라이런입니다. 원하시면 CI에 넣으세요. 퍼널은 그래프이고, 그래프는 테스트할 수 있습니다.
MCP 서버
에이전트를 /mcp에 연결해 퍼널을 작성하고 검증하게 하세요. 발송 기능이 있는 도구는 명시적인 확인이 필요하고 할당량으로 제한되므로, 잘못 읽은 프롬프트가 5만 통의 이메일이 되지 않습니다.
웹훅 발신
서명되고, 백오프로 재시도되며, 최소 한 번은 전달됩니다. 리포트와 동일한 이벤트 어휘를 사용하므로, 여러분의 웨어하우스와 대시보드가 "전달됨"의 의미를 두고 다투는 일이 없습니다.
실제로 닿는 삭제
삭제 요청은 여기서 연락처와 메시지 기록을 제거하고, 사본을 보유한 모든 형제 서비스로 전파됩니다. 요청 한 번, 결과 하나, 그리고 물으실 때 가리킬 수 있는 무언가.
경계가 놓인 위치
ClickSomo는 메일링 리스트와 그 리스트가 한 일을 보유합니다. 여러분의 사용자 데이터베이스가 아니며, 그렇게 되려고 하지도 않습니다. 연락처는 자격 증명을 절대 갖지 않고, 절대 로그인하지 않고, 절대 계정이 되지 않습니다. 사용자는 여러분의 제품에 살고, 연락처는 여기에 살며, 둘은 이메일 주소와 여러분이 보내기로 선택한 이벤트로 연결됩니다.
이 분리는 의도된 것이며, 동의 모델이 작동하는 이유이기도 합니다. 사용자의 데이터 컨트롤러는 여러분이고, 저희는 여러분을 대신해 처리합니다. 마케팅 도구가 조용히 아이덴티티 저장소가 되는 설계는 나중에 풀어낼 수 없고, 바로 이 설계가 피하려고 만든 실패입니다.
실용적인 버전: 이벤트를 보내고, 세그먼트에 사용할 속성을 보내고, 나머지는 모두 제자리에 두세요. 스키마 전체를 여기로 밀어 넣고 있다면, 만들려는 세그먼트는 아마도 여러분 데이터베이스의 쿼리여야 하고, 대신 불리언 속성 하나로 도착해야 하는 것입니다.