GetMyBot은 WhatsApp Cloud API(Meta Graph API)를 통해 WhatsApp을 연결합니다. 연결 후 봇은 WhatsApp의 수신 메시지를 받아 반응을 적용하고, 오퍼레이터는 다이얼로그에서 대화를 이어갈 수 있습니다. 멀티채널 개요는 채널 페이지를 참고하세요.
WhatsApp 채널 연결
연결에는 Meta 앱(WhatsApp Cloud API)에서 얻은 5개의 자격 증명이 필요합니다. 모두 필수 입니다:
- Phone number ID — WhatsApp Business 번호의 식별자.
- WABA ID — WhatsApp Business Account의 식별자.
- Access token — Meta 앱의 액세스 토큰.
- Verify token — 직접 정하는 임의의 문자열. Meta에서 Webhook을 검증할 때 사용합니다(아래 참조).
- App secret — Meta 앱의 시크릿. 수신 Webhook의 HMAC 서명(헤더
X-Hub-Signature-256) 검증에 필요합니다.
인터페이스에서의 단계:
- 봇 → 「채널 추가」 → WhatsApp 을 엽니다.
- 위 5개 항목을 입력하고, 원한다면 채널 이름을 입력합니다(선택).
- 「검증」 을 클릭합니다 — GetMyBot이 Meta를 통해 자격 증명을 검증합니다.
- 「연결」 을 클릭합니다.
Meta에서 Webhook 설정
연결 후 채널에는 {주소}/ch/{channelID} 형식의 Callback URL(인터페이스에서는 Webhook 아이콘 🔗)이 표시됩니다. 이를 Verify token 과 함께 Meta 앱에 지정해야 합니다: WhatsApp → Configuration → Webhook.
동작 방식:
- Meta가 Callback URL로 검증 요청 을 보내고, 전달된
verify_token을 당신의 Verify token과 대조합니다. 일치하면 Webhook이 확인된 것으로 간주됩니다. - 이후 Meta는 이 주소로 이벤트(수신 메시지, 전달 상태, 템플릿 모더레이션 결과)를 보냅니다.
- 각 수신 요청에는 헤더
X-Hub-Signature-256로 서명이 붙습니다. GetMyBot은 App secret 으로 서명을 검증합니다 — 그래서 연결 시 이 자격 증명이 필요합니다.
24시간 세션 창
WhatsApp은 능동적인 대화를 제한합니다: 자유 메시지 는 사용자의 마지막 수신 메시지로부터 24시간 이내에만 보낼 수 있습니다. 사용자로부터 새로운 수신 메시지가 올 때마다 이 창이 갱신됩니다.
24시간 창을 벗어나면 자유 메시지를 보낼 수 없습니다. 사용자에게 다시 연락(re-engage)하는 유일한 방법은 승인된 메시지 템플릿 입니다. 따라서 템플릿은 WhatsApp에서의 일괄 전송과 리마인더에 핵심적인 도구입니다.
메시지 템플릿
템플릿(message template)은 Meta와 사전에 합의된 메시지로, 세션 창 밖에서도 보낼 수 있습니다. 템플릿 관리는 GetMyBot 인터페이스에서 합니다.
템플릿 관리 위치
봇 → WhatsApp 채널의 「메시지 템플릿」 아이콘(📄) → 다이얼로그 「WhatsApp 채널 템플릿」. 다이얼로그에는 다음 버튼이 있습니다:
- 「템플릿 만들기」 — 새 템플릿을 구성합니다.
- 「동기화」 — Meta에서 템플릿 카탈로그를 가져옵니다(상태와 목록을 최신화).
템플릿 카테고리
- MARKETING(마케팅) — 프로모션, 공지, 일괄 전송.
- UTILITY(서비스) — 사용자 작업에 대한 알림(주문 상태, 리마인더).
- AUTHENTICATION(인증) — 확인 코드.
템플릿 필드
- 이름 — 소문자 라틴 문자, 숫자,
_, 최대 512자. - 언어 — Meta 로케일.
- 카테고리 — 위 세 가지 중 하나.
마케팅 과 서비스 카테고리의 경우 추가로:
- 헤더 — 없음 / 텍스트 / 이미지 / 동영상 / 문서. 미디어 헤더인 경우 예시 파일을 업로드합니다.
- 본문 — 필수, 최대 1024자. 변수는
{{1}},{{2}}, … 로, 1부터 N까지 순서대로 빠짐없이 지정합니다. - 푸터 — 최대 60자.
- 버튼 — 최대 10개: 빠른 응답, 링크(최대 2), 전화(1), 코드 복사(1).
- 각 변수
{{n}}마다 예시 값 을 지정해야 합니다 — 이는 모더레이션을 위한 Meta의 요구 사항입니다.
인증 카테고리의 경우 본문은 Meta 측에서 고정되며, 설정 가능한 항목은: 코드 유효 기간(1~90분), 보안 권장 사항, 코드 복사 버튼 텍스트입니다.
모더레이션
「만들기」 버튼을 누르면 템플릿은 즉시 Meta 모더레이션으로 전송됩니다 — 「검토 요청」이라는 별도 단계는 없습니다. 결과는 비동기로(Webhook을 통해) 도착하며, 템플릿 목록은 자동으로 갱신됩니다. 상태:
- PENDING(검토 중)
- APPROVED(승인됨)
- REJECTED(거부됨) — 사유 포함
- 그리고 PAUSED, DISABLED, IN_APPEAL, PENDING_DELETION.
편집할 수 있는 것은 APPROVED, REJECTED, PAUSED 상태의 템플릿입니다. 이름과 언어는 변경할 수 없으며, 승인된 템플릿은 카테고리도 잠깁니다.
반응에서 템플릿 사용
템플릿 전송은 반응의 액션입니다:
- 반응 컨스트럭터에서 「액션」 → 「액션 추가」 → 「WhatsApp 템플릿 전송」 을 엽니다.
- 이 액션은 봇에 템플릿을 지원하는 WhatsApp 채널이 연결된 경우에만 사용할 수 있습니다.
- 승인된(APPROVED) 템플릿만 선택할 수 있습니다.
- 파라미터를 입력합니다: 본문의 변수
{{n}}값, 텍스트 헤더, 링크로 지정하는 미디어 헤더, URL 버튼 파라미터. 파라미터에는 치환 변수를 사용할 수 있습니다.
실제 전송 채널은 이벤트의 채널에 따라 결정됩니다. 이벤트가 WhatsApp에서 온 경우 템플릿은 WhatsApp으로 전송됩니다.
다이얼로그와 첨부
오퍼레이터는 WhatsApp 다이얼로그에서 답장하고 첨부(이미지, 동영상, 문서)를 보낼 수 있습니다. 단, 24시간 창의 제약을 받습니다(창 밖에서는 자유로운 대화가 불가능합니다). 구독자로부터의 수신 미디어는 프록시를 통해 가져와 다이얼로그에 표시됩니다.
과금
GetMyBot은 WhatsApp 대화(conversations)를 카테고리별 — marketing / utility / authentication / service — 로 집계합니다. 현재 버전에서 이는 관측을 위한 기록만(record-only) 수행합니다: 대화에 대한 잔액 차감은 없습니다.