WhatsApp

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) 검증에 필요합니다.

인터페이스에서의 단계:

  1. 봇 → 「채널 추가」 → WhatsApp 을 엽니다.
  2. 위 5개 항목을 입력하고, 원한다면 채널 이름을 입력합니다(선택).
  3. 「검증」 을 클릭합니다 — GetMyBot이 Meta를 통해 자격 증명을 검증합니다.
  4. 「연결」 을 클릭합니다.

Meta에서 Webhook 설정

연결 후 채널에는 {주소}/ch/{channelID} 형식의 Callback URL(인터페이스에서는 Webhook 아이콘 🔗)이 표시됩니다. 이를 Verify token 과 함께 Meta 앱에 지정해야 합니다: WhatsApp → Configuration → Webhook.

동작 방식:

  1. Meta가 Callback URL로 검증 요청 을 보내고, 전달된 verify_token을 당신의 Verify token과 대조합니다. 일치하면 Webhook이 확인된 것으로 간주됩니다.
  2. 이후 Meta는 이 주소로 이벤트(수신 메시지, 전달 상태, 템플릿 모더레이션 결과)를 보냅니다.
  3. 각 수신 요청에는 헤더 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 상태의 템플릿입니다. 이름과 언어는 변경할 수 없으며, 승인된 템플릿은 카테고리도 잠깁니다.

반응에서 템플릿 사용

템플릿 전송은 반응의 액션입니다:

  1. 반응 컨스트럭터에서 「액션」 → 「액션 추가」 → 「WhatsApp 템플릿 전송」 을 엽니다.
  2. 이 액션은 봇에 템플릿을 지원하는 WhatsApp 채널이 연결된 경우에만 사용할 수 있습니다.
  3. 승인된(APPROVED) 템플릿만 선택할 수 있습니다.
  4. 파라미터를 입력합니다: 본문의 변수 {{n}} 값, 텍스트 헤더, 링크로 지정하는 미디어 헤더, URL 버튼 파라미터. 파라미터에는 치환 변수를 사용할 수 있습니다.

실제 전송 채널은 이벤트의 채널에 따라 결정됩니다. 이벤트가 WhatsApp에서 온 경우 템플릿은 WhatsApp으로 전송됩니다.

다이얼로그와 첨부

오퍼레이터는 WhatsApp 다이얼로그에서 답장하고 첨부(이미지, 동영상, 문서)를 보낼 수 있습니다. 단, 24시간 창의 제약을 받습니다(창 밖에서는 자유로운 대화가 불가능합니다). 구독자로부터의 수신 미디어는 프록시를 통해 가져와 다이얼로그에 표시됩니다.

과금

GetMyBot은 WhatsApp 대화(conversations)를 카테고리별 — marketing / utility / authentication / service — 로 집계합니다. 현재 버전에서 이는 관측을 위한 기록만(record-only) 수행합니다: 대화에 대한 잔액 차감은 없습니다.

다음 단계

  • 채널 — 멀티채널과 기능 매트릭스.
  • 반응 기초 — 봇 동작 구성 방법.
  • 일괄 전송 — 대량 전송(WhatsApp에서는 승인된 템플릿 경유).