핸드오버 프로토콜

Messenger 플랫폼 핸드오버 프로토콜을 사용하면 두 개 이상의 앱에서 대화의 관리 권한을 서로 간에 전달하여 대화에 참여할 수 있습니다. Facebook 페이지에서 구독하는 앱은 자동으로 핸드오버 프로토콜이 활성화됩니다.

참고: 이제 대화 라우팅을 사용할 수 있으며 곧 핸드오버 프로토콜을 대체합니다. 최대한 빠른 시일 내에 앱에서 대화 라우팅을 사용하도록 업데이트해야 합니다.

사용 방법

Facebook 페이지 또는 Instagram 프로페셔널 계정은 여러 메시지 앱을 사용하여 고객이나 자신의 콘텐츠에 관심이 있는 사람들과 소통할 수 있습니다. 예를 들어 고객 지원의 경우, 고객을 자동화된 경험으로 안내할 수 있지만 자동화된 경험에서 고객의 이슈를 해결하지 못할 경우 고객을 라이브 지원 상담원이 있는 다른 앱으로 안내할 수 있습니다. 앱과 앱 사이, 또는 앱과 Facebook 받은 메시지함이나 Instagram 받은 메시지함 사이에 대화와 대화에 대한 메타데이터를 전송하려면 앱 사이에 대화의 관리 권한이 전달되어야 합니다. 핸드오버 프로토콜이 이 전송을 지원합니다.

기본적으로 고객이 대화를 시작하는 메시지를 보내면 대화는 유휴 상태가 됩니다. 앱은 메시지를 받았으며 답변을 기다리고 있다는 알림을 Webhooks를 통해 수신합니다. 이 알림을 받으려면 앱이 핸드오버 관련 Webhooks를 구독해야 합니다.

어떤 앱이든 대화가 유휴 상태일 때 대화를 관리할 수 있습니다. 대화를 관리하는 앱만이 유일하게 메시지에 응답할 수 있습니다. 한 번에 한 앱만 대화를 관리할 수 있고 다른 앱은 관리 중인 앱이 관리 권한을 해제할 때까지 메시지를 전송할 수 없습니다. 앱이 관리 권한을 해제하고 나면 대화가 유휴 상태로 돌아가고, 다음 앱이 관리 권한을 받을 수 있습니다.

대화를 관리하는 앱은 메시지 Webhooks에서 알림을 수신합니다. 그 외에 다른 앱은 핸드오버 관련 Webhooks에서 알림을 수신합니다.

대화는 24시간 동안 활동을 수신하지 못하면 자동으로 유휴 상태로 돌아갑니다. 관리 권한이 있는 앱은 필요한 경우 24시간 이상으로 관리 권한을 연장할 수 있습니다.

대화 관리 권한이 없는 앱이 사람에게 메시지를 전송하려고 시도할 경우 오류 하위 코드 2018300과 함께 400 오류가 반환됩니다.

기본 수신자

특정 앱이 메시지를 받아서 처리하기를 원할 경우, 해당 앱을 기본 수신자로 지정할 수 있습니다. 기본 수신자는 대화에 대한 모든 새로운 메시지를 받고, 다른 앱이나 Facebook 페이지 받은 메시지함 또는 Instagram 받은 메시지함으로 관리 권한을 전달하고, 필요한 경우 다른 앱에서 대화의 관리 권한을 받아올 수 있습니다. 기본 수신자가 아닌 앱이 대화를 끝내고 관리 권한을 해제하면 대화가 유휴 상태로 설정됩니다.

대화가 유휴 상태이고 사용자가 새로운 메시지를 페이지나 계정에 전송할 경우 기본 수신자가 대화 관리 권한을 가지며 새로운 메시지에 대한 Webhooks 알림을 받습니다.

참고: 기본 수신자 설정은 필수가 아닙니다.

받은 메시지함

Facebook 페이지 받은 메시지함 또는 Instagram 받은 메시지함은 기본 수신자로 지정될 수 없습니다. 그러나 메시지를 기본 폴더로 이동하거나 받은 메시지함에서 관리하지 않는 대화의 메시지에 답장할 경우, 받은 메시지함이 대화를 관리합니다. 받은 메시지함에서 완료로 표시된 메시지에 답장할 경우, 이전에 관리하던 앱인 기본 수신자(설정되어 있을 경우)가 관리 권한을 유지하거나 관리 권한이 해제되어 유휴 상태가 됩니다.

대화 진입점

Messenger 연결 광고(CTM) 대화 진입점을 사용할 때 특정 앱에 대화를 할당할 수 있습니다. 비즈니스는 CTM을 사용하여 고객과의 대화를 시작함으로써 잠재 고객을 확보하고, 브랜드 인지도를 높이는 등의 활동을 할 수 있습니다.

고정 메뉴

기본 수신자가 설정되어 있지 않는 이상 어떤 앱이든 페이지 수준 메뉴를 설정할 수 있습니다. 기본 앱이 설정된 경우, 기본 앱만 페이지 수준 메뉴를 설정하거나 삭제할 수 있게 됩니다.

대화를 관리하는 앱은 기본 수신자가 아니더라도 사용자 수준 메뉴를 설정하거나 삭제할 수 있으며 대화가 유휴 상태일 때는 어떤 앱이든 사용자 수준 메뉴를 설정할 수 있습니다.

고객이 메뉴에서 어떤 항목을 선택하면 메뉴를 생성한 앱이 대화의 관리 권한을 얻습니다. 이는 메뉴를 생성한 앱이 해당 데이터를 처리하도록 구성되었기 때문입니다.

포스트백 행동 유도

고객이 포스트백 행동 유도(CTA)를 클릭하면 다른 앱에 관리 권한이 있더라도 해당 포스트백 CTA를 생성한 앱이 대화의 관리 권한을 얻습니다. 이는 포스트백 CTA를 생성한 앱이 해당 데이터를 처리하도록 구성되었기 때문입니다.

고객 설문조사

다른 앱이 대화를 관리하는 동안 설문조사를 발송한 경우 해당 앱이 관리 권한을 해제하고 대화가 유휴 상태가 되어야 전달됩니다.

구성 요소

Facebook 페이지가 구독한 메시지 앱에 핸드오버 프로토콜을 성공적으로 구현하는 데 필요한 구성 요소는 다음과 같습니다.

액세스 토큰

핸드오버 프로토콜 엔드포인트로 호출을 보내려면 페이지에서 MODERATE 작업을 수행할 수 있는 사용자가 요청한 페이지 액세스 토큰이 필요합니다.

앱 검수

다음과 같은 앱에 앱 검수가 필요합니다.

  • 앱에서 역할이 부여되지 않은 사용자가 사용하는 앱
  • 인간 상담원이 고객에게 답변하도록 허용하는 앱

인간 상담원 기능

앱이 앱 검수를 통해 인간 상담원 기능을 사용하도록 승인을 받았고 메시지에 인간 상담원 태그를 지정한 경우 해당 앱에 대화의 관리 권한이 없더라도 사용자에게 메시지를 보낼 수 있습니다. 이는 대화의 관리 권한이 없는 앱이 메시지를 전송할 수 있는 유일한 시나리오입니다.

권한

앱이 고객에게 메시지 데이터에 액세스할 권한을 요청하려면 pages_messaging 권한이 필요합니다.

Webhooks

핸드오버 프로토콜에는 앱이 구독해야 하는 두 세트의 Webhooks인 메시지 Webhooks와 대기 Webhooks가 있습니다 앱이 받는 알림은 대화 관리 권한에 따라 달라집니다. 앱에 대화 관리 권한이 있을 경우 앱이 메시지 Webhooks 알림을 받습니다. 앱에 대화 관리 권한이 없을 경우 앱이 대기 Webhooks 알림을 받습니다.

일반적인 사례

고객 지원

어떤 비즈니스는 하나의 앱을 사용하여 자주 묻는 질문에 대한 자동화된 경험을 제공하지만, 자동화된 경험에서 고객 이슈를 해결하지 못하는 경우에는 라이브 지원을 위한 다른 앱으로 고객을 안내합니다. 자동화된 앱은 모든 대화를 소유하도록 기본 수신자로 설정됩니다. 라이브 지원 상담원이 대화에 참여해야 할 경우에는 라이브 지원 앱이 대화 관리 권한을 요청할 수 있습니다. 라이브 상담원 앱이 대화를 완료하면 대화 관리 권한이 해제되어 자동화 앱으로 돌아갑니다. 라이브 상담원 앱에서 고객 이슈를 처리하는 데 더 많은 시간이 필요할 경우 앱에서 연장을 요청할 수 있습니다. 두 앱 모두 Webhooks를 구독하여 대화가 제대로 진행되도록 해야 합니다.

마케팅 캠페인 - 제품 잠재 고객

어떤 비즈니스가 마케팅 캠페인을 실행하고 자동화된 경험을 사용하여 잠재 고객을 선별하거나 제품 퀴즈를 바탕으로 제품 권장 사항을 제공합니다. 잠재 고객을 선별한 후 비즈니스는 Facebook 페이지 받은 메시지함 또는 Instagram 받은 메시지함을 사용하여 잠재 고객에게 후속 메시지를 보냅니다. 자동화된 앱은 모든 대화를 소유하도록 기본 수신자로 설정됩니다. 자동화된 앱이 잠재 고객 선별 단계를 완료하고 나면 대화 관리 권한이 Facebook 페이지 받은 메시지함 또는 Instagram 받은 메시지함으로 전달됩니다. Facebook 페이지 받은 메시지함 또는 Instagram 받은 메시지함에서 대화가 완료되고 나면 대화를 완료로 표시합니다. 그러면 대화 관리 권한이 기본 앱으로 전달됩니다. 두 앱 모두 Webhooks를 구독하여 대화가 제대로 진행되도록 해야 합니다.

마케팅 캠페인 - Messenger 연결 광고

어떤 비즈니스가 마케팅 캠페인을 실행하고 잠재 고객을 자동화된 앱으로 보내어 특정 Messenger 경험을 제공합니다. 자동화된 앱은 모든 대화를 소유하도록 기본 수신자로 설정됩니다. 라이브 지원 상담원이 대화에 참여해야 할 경우에는 라이브 지원 앱이 대화 관리 권한을 요청할 수 있습니다. 라이브 상담원 앱이 대화를 완료하면 대화 관리 권한이 해제되어 자동화 앱으로 돌아갑니다. 라이브 상담원 앱에서 고객 이슈를 처리하는 데 더 많은 시간이 필요할 경우 앱에서 연장을 요청할 수 있습니다. 두 앱 모두 Webhooks를 구독하여 대화가 제대로 진행되도록 해야 합니다.

모범 사례

  1. 자동화된 경험을 기본 수신자 앱으로 설정하고 실시간 상담원 앱은 그 외의 앱으로 설정하는 것이 좋습니다. 실시간 상담원 앱이 대기 이벤트를 수신하고 필요하지 않은 이상 조치를 취하지 않는 것이 좋습니다.
  2. 언제나 스레드 관리 권한 받기 API를 사용하여 스레드 관리 권한이 있는지 확인한 다음, 시나리오에 따라 다른 API를 호출하세요. 관리 권한이 없다면 개입하거나 방해하지 마세요.
  3. 다른 앱에 대화의 관리 권한이 있을 때 스레드에 메시지를 보내려고 시도하지 마세요. 기본 앱일 경우 꼭 필요할 때만 스레드 관리 권한 API를 사용하세요. 긴급하지 않은 사례이거나 기본 앱이 아닐 경우 스레드 관리 권한을 요청하세요.
  4. 가능하면 다른 앱의 스레드 관리 권한 요청 이벤트를 준수하고 관리 권한을 요청하는 앱에 스레드 관리 권한을 전달하세요. 어떤 이유로든 즉시 스레드 관리 권한을 전달할 수 없는 경우 메타데이터 전달 API를 사용하여 권한을 요청하는 앱에 추가적인 컨텍스트를 보내고 완료 시 스레드 관리 권한을 전달하기 위한 대기열을 유지합니다.
  5. 대화가 끝나면 이전에 권한을 요청한 앱 중에 아직 대기열에 있는 앱으로 스레드 관리 권한을 전달하거나 스레드 관리 권한을 유휴 상태로 해제하여 다른 앱이 스레드를 선택할 수 있도록 하세요. 그렇게 하지 않으면 스레드가 앱에서 자동으로 해제되고 24시간 후에 유휴 모드로 전환됩니다. 이 시나리오와 관련 상태 변경 사항을 적절히 코딩하세요.
  6. 스레드 관리 권한 받기 API를 호출하여 스레드가 유휴 상태인 것을 확인한 경우, 스레드 관리 권한 요청을 사용하여 스레드의 관리 권한을 받아서 방해 없이 사용자에게 독점적으로 메시지를 보내고 작업이 완료되면 해제하세요.

더 알아보기

핸드오버 프로토콜의 구성 요소에 대해 자세히 알아보세요.

다음 단계

핸드오버 프로토콜의 작동 원리를 알았으므로 이제 프로토콜을 구현하려면 다음이 필요합니다.