대화 구성 요소

대화 구성 요소는 채팅 내에서 제공되는 기능으로, 비즈니스 전화번호에서 활성화할 수 있습니다. 이 기능을 사용하면 WhatsApp 사용자가 더욱 쉽게 비즈니스와 상호작용할 수 있습니다. 또한 사용하기 쉬운 명령어를 구성하고 사용자가 누를 수 있는 미리 작성된 아이스 브레이커를 제공하며 첫 사용자에게 환영 메시지로 인사를 건넬 수 있습니다.

제한 사항

WhatsApp 사용자가 미리 입력된 텍스트로 구성된 범용 링크(즉, wa.me 링크)를 누르면 아이스 브레이커를 위한 사용자 인터페이스가 자동으로 닫힙니다.

WhatsApp 관리자(WAM)를 통한 구성

선택한 특정한 번호로 WhatsApp 관리자에서 이 모든 기능을 구성할 수 있습니다.

  1. Meta for Developers 사이트에서 내 앱 대시보드로 이동합니다.
  2. 앱을 선택한 다음, 왼쪽 패널의 WhatsApp 아래에서 구성을 선택합니다.
  3. 전화번호 아래에서 전화번호 관리를 선택합니다.
  4. 구성하고자 하는 전화번호 맨 오른쪽 끝에서 설정 아래의 톱니바퀴 아이콘을 선택합니다.
  5. 자동화를 선택합니다.
  6. 대화 구성 요소에 액세스하고 이를 구성합니다.

솔루션 파트너는 WhatsApp 관리자에서 고객의 WhatsApp Business 계정에 액세스할 수 있는 경우, 고객에 대해 이러한 기능을 구성할 수 있습니다.

환영 메시지

현재 환영 메시지가 계획대로 작동하고 있지 않습니다.

죄송하지만 향후 이 기능을 구현할 예상 시점에 대한 계획은 아직 정해진 바 없습니다.

모든 자유 형식, 인터랙티브 및 템플릿 메시지 유형은 환영 메시지로 보낼 수 있습니다. 카테고리가 분류된 메시지 가격이 적용됩니다.

WhatsApp 사용자가 처음으로 채팅을 열 때마다 Webhooks를 통해 알림을 받을 수 있습니다. 이는 이러한 사용자에게 직접 디자인한 특별 환영 메시지로 답장을 보내고자 하는 경우에 유용할 수 있습니다.

환영 메시지는 고객 지원, 계정 서비스와 같은 서비스 인터랙션에 적합합니다. 예를 들어 앱이나 웹사이트에 WhatsApp 버튼을 퍼갈 수 있습니다. 사용자가 이 버튼을 누르면 WhatsApp으로 리디렉션됩니다. 여기에서 사용자는 비즈니스와 소통하는 방법에 대한 컨텍스트를 제공하는 환영 메시지를 받게 됩니다.

이 기능을 활성화한 상태에서 사용자가 메시지를 보내면 WhatsApp 클라이언트는 사용자와 비즈니스 전화번호 사이에 기존의 메시지 스레드가 있는지 확인합니다. 기존의 메시지 스레드가 없을 경우, 클라이언트가 typerequest_welcome으로 설정한 messages Webhooks를 트리거합니다. 그러면 사용자에게 자신이 만든 환영 메시지로 응답할 수 있습니다.

request_welcome Webhooks는 고객 서비스 창을 트리거하며, 여기에서 비즈니스가 고객에게 응답할 때 자유 형식 메시지를 보낼 수 있습니다.

Ash: My home office supervisor

슬라이드 템플릿 메시지를 환영 메시지로 사용

Webhooks 페이로드

{
  "object": "whatsapp_business_account",
  "entry": [
    {
      "id": "<WHATSAPP_BUSINESS_ACCOUNT_ID>",
      "changes": [
        {
          "value": {
            "messaging_product": "whatsapp",
            "metadata": {
              "display_phone_number": "<BUSINESS_DISPLAY_PHONE_NUMBER>",
              "phone_number_id": "<BUSINESS_PHONE_NUMBER_ID>"
            },
            "contacts": [
              {
                "profile": {
                  "name": "<WHATSAPP_USER_NAME>"
                },
                "wa_id": "<WHATSAPP_USER_ID>"
              }
            ],
            "messages": [
              {
                "from": "<WHATSAPP_USER_PHONE_NUMBER_ID>",
                "id": "<WHATSAPP_MESSAGE_ID>",
                "timestamp": "<TIMESTAMP>",
                "type": "request_welcome"  // Indicates first time message from WhatsApp user
              }
            ]
          },
          "field": "messages"
        }
      ]
    }
  ]
}

아이스 브레이커

아이스 브레이커는 사용자와 처음으로 채팅하는 메시지 스레드에 표시되는 맞춤 설정 및 탭할 수 있는 텍스트 문자열입니다. 예를 들어 '여행 계획하기' 또는 '운동 계획 세우기' 등이 있습니다.

아이스 브레이커는 고객 지원, 계정 서비스와 같은 서비스 인터랙션에 적합합니다. 예를 들어 앱이나 웹사이트에 WhatsApp 버튼을 퍼갈 수 있습니다. 사용자가 이 버튼을 누르면 WhatsApp으로 리디렉션됩니다. 여기에서 서비스와 소통하는 방법을 보여주는 맞춤형 프롬프트 세트 중에서 선택할 수 있습니다.

비즈니스 전화번호에는 최대 4개의 아이스 브레이커를 구성할 수 있습니다. 각 아이스 브레이커는 80자 이내여야 합니다. 이모지는 지원되지 않습니다.

사용자가 아이스 브레이커를 누르면 표준 수신 메시지 Webhooks가 트리거됩니다. 이때 아이스 브레이커 문자열이 페이로드의 body 속성에 할당됩니다. 사용자가 아이스 브레이커를 누르지 않고 메시지를 보내려고 시도하면 키보드가 오버레이로 표시되지만, 이를 닫으면 아이스 브레이커 메뉴를 다시 볼 수 있습니다.

WhatsApp 사용자가 미리 입력된 텍스트로 구성된 범용 링크(wa.me 또는 api.whatsapp.com 링크)를 누르면 아이스 브레이커를 위한 사용자 인터페이스가 자동으로 닫힙니다.

Webhooks 페이로드

{
  "object": "whatsapp_business_account",
  "entry": [
    {
      "id": "<WHATSAPP_BUSINESS_ACCOUNT_ID>",
      "changes": [
        {
          "value": {
            "messaging_product": "whatsapp",
            "metadata": {
              "display_phone_number": "<BUSINESS_DISPLAY_PHONE_NUMBER>",
              "phone_number_id": "<BUSINESS_PHONE_NUMBER_ID>"
            },
            "contacts": [
              {
                "profile": {
                  "name": "<WHATSAPP_USER_NAME>"
                },
                "wa_id": "<WHATSAPP_USER_ID>"
              }
            ],
            "messages": [
              {
                "from": "<WHATSAPP_USER_PHONE_NUMBER_ID>",
                "id": "<WHATSAPP_MESSAGE_ID>",
                "timestamp": "<TIMESTAMP>",
                "text": {
                  "body": "Plan a trip"
                },
                "type": "text"
              }
            ]
          },
          "field": "messages"
        }
      ]
    }
  ]
}

명령어

명령어는 WhatsApp 사용자가 비즈니스와의 메시지 스레드에서 슬래시(/)를 입력하면 볼 수 있는 텍스트 문자열입니다.

명령어는 명령어 자체와 힌트로 구성되는데, 사용자는 이를 통해 해당 명령어를 사용하면 어떤 일이 일어나는지 알 수 있습니다. 예를 들어 다음과 같은 명령을 정의할 수 있습니다.

/imagine - Create images using a text prompt

WhatsApp 사용자가 /imagine cars racing on Mars를 입력하면 해당 텍스트 문자열이 body 속성에 할당된 수신 메시지 Webhooks를 트리거합니다. 그러면 화성을 달리는 자동차의 이미지를 생성하여 반환할 수 있습니다.

명령어는 최대 30개까지 정의할 수 있습니다. 각 명령어는 32자 이내여야 하고 각 힌트는 256자 이내여야 합니다. 이모티콘은 지원되지 않습니다.

Webhooks 페이로드

{
  "object": "whatsapp_business_account",
  "entry": [
    {
      "id": "<WHATSAPP_BUSINESS_ACCOUNT_ID>",
      "changes": [
        {
          "value": {
            "messaging_product": "whatsapp",
            "metadata": {
              "display_phone_number": "<BUSINESS_DISPLAY_PHONE_NUMBER>",
              "phone_number_id": "<BUSINESS_PHONE_NUMBER_ID>"
            },
            "contacts": [
              {
                "profile": {
                  "name": "<WHATSAPP_USER_NAME>"
                },
                "wa_id": "<WHATSAPP_USER_ID>"
              }
            ],
            "messages": [
              {
                "from": "<WHATSAPP_USER_PHONE_NUMBER_ID>",
                "id": "<WHATSAPP_MESSAGE_ID>",
                "timestamp": "<TIMESTAMP>",
                "text": {
                  "body": "/imagine cars racing on Mars"
                },
                "type": "text"
              }
            ]
          },
          "field": "messages"
        }
      ]
    }
  ]
}

API를 통한 구성

API를 사용하면 대화 구성 요소를 구성하고 구성된 값을 확인할 수 있습니다.

대화 구성 요소 API에는 두 개의 엔드포인트가 있습니다.

POST </PHONE_NUMBER_ID>/conversational_automation은 지정된 전화번호에서 대화 구성 요소를 구성하는 데 사용합니다.

GET /<PHONE_NUMBER_ID>/conversational_automation은 지정된 전화번호에서 enable_welcome_message, commands, prompts 필드에 대한 현재 값을 반환합니다.

API를 통한 대화 구성 요소 구성

POST 엔드포인트를 호출하여 지정된 전화번호에 대한 대화 구성 요소를 구성할 수 있습니다.

요청 구문

// Enable or disable the Welcome Message for the given phone number ID
POST /<PHONE_NUMBER_ID>/conversational_automation?enable_welcome_message=<ENABLE_DISABLE>

// Configure Commands with names and descriptions
POST /<PHONE_NUMBER_ID>/conversational_automation?commands=<COMMAND_LIST>

// Configure Prompts
POST /<PHONE_NUMBER_ID>/conversational_automation?prompts=<PROMPT>

본문 속성


자리 표시자설명샘플 값

<PHONE_NUMBER_ID>

정수

필수 항목.


WhatsApp Business 계정의 전화번호 ID.

+12784358810

<ENABLE_DISABLE>

부울

선택 사항.


전화번호에서 환영 메시지를 활성화하거나 비활성화하는 부울.


true

<COMMAND_LIST>

JSON

선택 사항.


구성할 명령어 리스트.


"commands": {
     "command_name": "generate"
     "command_description": "Create a new image",
     “command_name”: “rethink”
     “command_description”: “Generate new images from existing images”,
} 

<PROMPTS>

문자열 리스트

선택 사항.


구성할 프롬프트.


"prompts": ["Book a flight","plan a vacation"]

요청 샘플

   curl -X POST \
 'https://graph.facebook.com/v19.0/PHONE_NUMBER_ID/conversational_automation' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Content-Type: application/json' \
 -d '{
   "enable_welcome_message": true/false,
   "commands": [
     {
       "command_name": "tickets",
       "command_description": "Book flight tickets",
     },
     {
       "command_name": "hotel",
       "command_description": "Book hotel",
     }
   ],
 "prompts": ["Book a flight","plan a vacation"]
}'

응답 샘플

{
  "success": true
}

API를 통한 현재 구성 보기

GET 엔드포인트를 호출하여 지정된 전화번호에 대한 전환 구성 요소의 현재 구성을 확인할 수 있습니다.

요청 구문

GET  /<PHONE_NUMBER_ID>?fields=conversational_automation

응답 샘플

{
  "conversational_automation": {
    "enable_welcome_message": true
    "prompts": [
      "Find the best hotels in the area",
      "Find deals on rental cars"
    ],
    "commands": [
      {
        "command_name": "tickets",
        "command_description": "Book flight tickets",
      },
      {
        "command_name": "hotel",
        "command_description": "Book hotel",
      }
    ],
  }
  "id": "123456"
}

테스트

대화 구성 요소를 구성한 후에 테스트하려면 WhatsApp 클라이언트를 열고 비즈니스 전화번호로 채팅을 시작합니다.

환영 메시지 및 아이스 브레이커의 경우, 비즈니스 전화번호와 진행 중인 채팅 스레드가 있다면 먼저 해당 채팅 스레드를 삭제해야 합니다.

  1. WhatsApp 클라이언트에서 스레드를 엽니다.
  2. 비즈니스 전화번호의 프로필을 누릅니다.
  3. 채팅 지우기 > 모든 메시지 지우기를 누릅니다.
  4. 채팅을 삭제합니다.
  5. 이 비즈니스와의 새 채팅 스레드를 시작합니다.

그러면 비즈니스 전화번호로 메시지를 보낼 수 있고 request_welcome Webhooks가 트리거됩니다.