Workplace용 봇

그룹과 채팅에서 Workplace용 봇 빌드하기

개요

이제 Workplace용 맞춤 통합 기능을 사용하여 그룹 멤버와 교류하고 채팅하기 위한 강력한 봇을 빌드할 수 있습니다.

그룹에 자동으로 콘텐츠를 게시하거나, 추가 정보를 포함하여 질문에 답하거나, 게시물 댓글에 언급되었을 경우 반응하는 봇을 빌드할 수 있습니다. 또한 Work Chat에서 사용자와 대화를 나누거나, 실시간으로 정보를 제공하거나, 빠른 답장 및 고정 메뉴와 같은 구조적 대화 요소로 요청을 처리하는 봇을 빌드할 수도 있습니다.

커뮤니티를 위한 봇을 빌드하려면 시스템 관리자용 관리자 역할이 필요합니다.

Workplace 커뮤니티의 관리자가 아니라면 관리자와 협력하여 봇을 빌드해야 합니다.

페이지 형식의 봇

Workplace에서는 Messenger 플랫폼과 마찬가지로 봇이 페이지로 표시됩니다. 맞춤 통합을 생성하면 페이지가 자동으로 만들어집니다. Workplace 커뮤니티의 사용자는 이 페이지를 통해 봇을 발견하고 봇과 상호작용할 수 있습니다.

봇 페이지는 회사 전체에 공개되며, Workplace 커뮤니티의 모든 멤버가 봇을 확인하고, 태그하고, 봇과 메시지를 주고받을 수 있습니다. 그러나 봇을 만들 때 선택한 권한 수준에 따라 봇이 Workplace의 일부 콘텐츠를 확인하거나 이와 상호작용하지 못할 수 있습니다.

예를 들어 봇에 그룹 콘텐츠 읽기 권한이 있을 경우 그룹 내 콘텐츠를 확인할 수 있습니다. 봇에 그룹에 게시하기 권한이 없을 경우 그룹 내 콘텐츠에 답글을 달지 못합니다.

또한 봇에 모든 멤버에게 메시지 전송 권한이 있을 경우에만 사용자가 Work Chat에서 봇을 찾고 봇과 메시지를 주고받을 수 있습니다.

그룹 봇

그룹에서 봇은 사용자가 사용하는 여러 가지 기능을 수행할 수 있습니다. 즉, 새로운 콘텐츠를 게시하고, 새로운 정보로 콘텐츠에 댓글을 달고, 감사나 동의를 표하기 위해 게시물에 좋아요를 누르는 봇을 빌드할 수 있습니다.

봇은 사용자를 @언급하여 주의를 끌 수 있고, 사용자가 @언급하여 특정 워크플로를 시작하거나 질문을 할 수도 있습니다.

마지막으로 봇이 그룹에 가입하고 Webhooks를 @언급하면 콘텐츠를 모니터링하고 자유롭게 사용자와 상호작용할 수 있습니다.

채팅 봇

그룹 봇은 사용자 그룹 전체에 대해 비동기식으로 정보를 사용하고 공유할 수 있지만 채팅 봇은 한 명 또는 지정된 사용자 그룹과 직접 실시간 상호작용을 하는 데 가장 적합합니다.

예를 들어 채팅 봇은 면접, 회의 등과 같이 예정된 이벤트가 있을 때 누군가에게 중요한 미리 알림이나 알림을 보내는 데 사용할 수 있습니다. Work Chat 봇은 사용자와의 대화에 참여하고 수신한 피드백을 바탕으로 후속 조치를 취하는 데 사용할 수도 있습니다.

이 상호작용 모델은 Messenger 플랫폼에서 사용한 것과 동일한 개념을 기반으로 합니다. 따라서 Work Chat 봇은 고정 메뉴, 빠른 답장, 템플릿 등의 기능을 사용하여 사용자 환경을 보강할 수 있습니다.

봇과 사용자 간의 채팅

봇에 모든 멤버에게 메시지 전송 권한이 있으면 이메일 주소를 사용하거나 Messenger Send API를 통해 해당 Workplace ID를 사용하여 Workplace에 있는 모든 사용자에게 Direct 메시지를 전송할 수 있습니다.

새로운 메시지 자동 완성의 봇

또한 모든 멤버에게 메시지 전송 권한이 있는 봇은 Workplace 채팅 화면의 자동 완성에 표시할 수 있습니다.

새로운 메시지 자동 완성의 봇

봇은 페이지 메시지 Webhooks를 구독하면 사용자가 메시지를 보냈을 때 알림을 받을 수 있고, 개발자는 전송과 수신을 결합하여 대화 플로를 빌드할 수 있습니다.

봇과 사용자 간의 대화

봇과 그룹 간의 채팅

봇에 모든 멤버에게 메시지 전송그룹 채팅 봇 권한이 있으면 여러 사람이 포함된 그룹 채팅 스레드를 생성 및 관리하고 해당 스레드에 추가될 수 있습니다. 봇은 수신자 리스트를 지정하여 새 그룹 스레드를 만들 수 있을 뿐만 아니라 스레드 이름을 변경하여 특정 사용자가 참여한 특정 주제에 관한 채팅 토론을 만들 수도 있습니다.

봇이 특정 사용자를 포함하고 이름을 지정하여 만든 스레드.

그룹 채팅 지원을 활성화한 봇은 기존 그룹 채팅 스레드의 사용자 추가 자동 완성에 표시됩니다. 그러면 봇은 해당 스레드에 참여한 사용자가 보낸 각각의 메시지에 대해 Webhooks를 수신하고 thread ID를 사용하여 해당 스레드에 답장을 보낼 수 있습니다.

그룹 채팅에 봇을 추가한 다음 봇 @언급

이름이 지정된 새 스레드 만들기

특정 수신자가 참여하는 새로운 스레드를 만들려면 다음과 같이 recipient IDs 배열과 최초 message 페이로드를 지정하여 /me/messages 엔드포인트에 POST 요청을 보냅니다.

POST /me/messages
{
  "recipient": {
    "ids": [<user_ids>]
  },
  "message": <message_payload>
}

thread ID가 포함된 응답 페이로드가 반환되고, 이를 후속 메시지에 사용할 수 있습니다.

동일한 수신자 리스트로 동일한 엔드포인트를 다시 사용할 경우 새 스레드가 생성됩니다. 이미 생성된 스레드에 후속 메시지를 전송하려면 다음과 같이 recipient 페이로드에 thread_id를 사용하여 /me/messages 엔드포이트에 POST 요청을 보냅니다.

POST /me/messages
{
  "recipient": {
    "thread_key": <thread_id>
  },
  "message": <message_payload>
}

봇이 생성한 스레드 이름을 변경하려면 다음과 같이 /{thread}/threadname 에지로 POST 요청을 보냅니다.

POST /t_<thread_id>/threadname
{
  "name": "new name"
}

에지 경로에서 thread_id 앞에 't_'를 붙여야 합니다.

또한 다음과 같이 /{thread}/participants 에지에 POST 또는 DELETE 요청을 보내면 스레드의 참가자를 추가하고 삭제할 수 있습니다.

POST t_<thread_id>/participants
{
  "to": [<user_ids>]
}

DELETE t_<thread_id>/participants
{
  "to": [<user_ids>]
}

/{thread}/participants 에지에서의 작업은 통합에서 생성한 스레드에 제공됩니다.

스레드에 언급

봇이 메시지에서 언급되면 Webhooks에서 다음의 페이로드와 같이 해당 메시지에서 태그된 멤버의 리스트를 전송합니다.

{
    "object":"page",
    "entry":[{
        "id":"746230239054322",
        "time":1539281406974,
        "messaging":[{
            ...
            "message":{
                "mid":"<message id>",
                "seq":2192,
                "text":"@Edu Gomes @Example Bot What's 2+2?"
            },
            "mentions":[{
                "offset":0,
                "length":10,
                "id":"100017376437045"
            },
            {
                "offset":11,
                "length":12,
                "id":"746230239054322"
            }]
        }]
    }]
} 

봇 플랫폼 파트너

Workplace는 Workplace에서 봇에 대한 지원을 구축한 여러 봇 플랫폼 파트너를 보유하고 있습니다. 봇 플랫폼 파트너 리스트는 여기에서 확인할 수 있습니다. 이러한 플랫폼 중 하나를 사용하여 코드를 전혀 작성하지 않고도 강력한 봇을 빌드할 수 있습니다.

모범 사례

적절한 채널 사용

봇에 그룹과 채팅 상호작용 중 무엇을 빌드할지 결정할 때는 봇이 어디에 가장 유용하게 사용될지 생각하는 것이 좋습니다.

  • 여러 사용자가 한 번에 상호작용하는 봇을 빌드하거나 여러 사용자가 볼 수 있도록 콘텐츠를 게시하는 봇을 빌드하는 경우, 그룹에 게시물을 올리고 그룹 게시물의 댓글과 언급에 답하는 봇을 빌드하는 것이 바람직합니다.
  • 즉각적이거나, 빠른 후속 조치가 필요하거나, 비공개로 상호작용해야 하는 무언가에 대해 누군가에게 알림을 보내는 봇을 빌드하는 경우, 봇에서 Work Chat에서의 대화를 지원해야 합니다.

하나의 앱으로 두 채널을 모두 처리할 수 있습니다. 예를 들어 헬프데스크 봇이 Work Chat에서 메시지를 받는 경우가 있고, 봇이 그룹에 게시물을 올리고 답장을 확인해야 하는 경우가 있습니다.

봇에 딥 링크하기

https://w.m.me/{page-id} 링크 형식을 사용하여 Workplace의 채팅 봇에 직접 링크합니다. 현재 웹, Android 및 iOS를 사용하는 경우 Workplace 채팅에서 지원이 제공됩니다. Workplace 채팅 앱이 설치된 모바일 플랫폼에서는 링크가 앱에서 바로 열립니다.

리퍼럴 매개변수

리퍼럴 매개변수는 추가 정보를 링크에 포함하는 데 사용합니다. 예를 들어 봇이 클릭 연결을 통해 도착한 사용자를 기반으로 맞춤 행동을 수행하도록 지원할 수 있습니다.

이 기능을 사용하려면 https://w.m.me/{page-id}?ref={referral_parameter} 링크 형식을 사용하세요. 이 기능은 Messenger 플랫폼과 동일한 방식으로 구현됩니다. 자세한 내용은 Messenger 문서를 참조하세요.

관련 Webhooks 필드는 messaging_referrals이고 새로운 구독이 필요합니다. 이전에는 Workplace 앱에 사용할 수 없는 Webhooks 필드였지만 이제는 평소와 같은 방식으로 구독 가능합니다.

Webhooks 페이로드는 Messenger와 동일한 형식이며, 일반적인 차이점으로는 Workplace는 페이지 범위 ID가 아닌 앱 범위 ID를 사용한다는 것입니다. 게다가 Workplace는 Webhooks에서 커뮤니티 필드도 제공하므로 커뮤니티 ID가 있습니다.

그룹 상호작용

앱이 Webhooks를 구독하면 그룹 게시물이나 댓글에 언급되었을 때 봇에 알림이 전송됩니다. 봇이 시기적절하게 언급에 응답하는 것이 중요합니다. 봇이 답장을 보내기 전에 요청을 처리해야 하는 경우, 댓글에 좋아요를 눌러 봇이 언급된 사실을 알고 있음을 해당 사용자에게 알리는 것이 좋습니다.

댓글에 언급된 이후에 정보를 제공하는 경우, 스레드 답장을 추가하여 나머지 그룹 대화가 이어지도록 합니다.

봇이 원래 게시자에게 정보를 제공해야 하는 경우, 게시물 자체에 댓글을 추가하여 이들에게도 알림을 보냅니다.

채팅 상호작용

Work Chat의 봇 상호작용은 Messenger 플랫폼과 유사한 기능을 지원합니다. 여기에는 빠른 답장 버튼과 봇 대화에서 결정 트리를 구현하는 데 도움이 되는 템플릿이 포함됩니다.

복잡한 자연어 처리 과정 없이도 유용한 워크플로를 훨씬 간단하게 빌드하고, 사용자가 직접 입력하는 수고를 줄일 수 있습니다. 따라서 글로벌 인력을 위한 봇을 빌드할 때 더욱 간단하게 국제화할 수 있습니다.