Kakao Work::Bot 메시지 시나리오::반응형 메시지

페이지 이동경로

반응형 메시지를 활용한 말풍선 시나리오

다음 예시는 카카오워크에서 제공하는 구글 캘린더 Bot을 사용하는 경우에 발송되는 일정 초대 알림 메시지입니다. 이 메시지에서는 Button BlockAction Block이 각기 다른 action_type의 속성으로 지정되어 구성되어 있습니다. 단순히 외부 링크로 연결되는 Button Block(자세히 보기)과 달리 여러 개의 버튼을 한 행에 표현하는 Action Block(수락/거절/미정)에서 버튼을 누르면 해당 정보가 구글 캘린더에 전달되는 반응형 시나리오가 이어지도록 구성되어 있습니다.

  • 하나의 행 안에 긴 버튼 하나를 추가하는 경우에는 Button Block으로 구성합니다.
  • 하나의 행 안에 여러 개의 버튼을 포함하는 경우에는 Action Block으로 구성합니다.

구글 캘린더 Bot

말풍선 구성 예시

다음 예시에서 조합형 말풍선을 구성하는 블록은 다음과 같습니다.

반응형 메시지 그림반응형 메시지

위 예시는 조합형 말풍선 메시지 유형과 반응형 메시지 유형이 결합되어 있는 경우입니다. 즉, Button Block의 Button 속성은 open_system_browser로 설정되어 있기 때문에 메시지 유형은 알림형의 조합형 말풍선이 됩니다. 반면, Action Block의 세 가지 Button들의 속성은 submit_action로 설정되어 있기 때문에 반응형 메시지 유형이 됩니다.

코드예제반응형 메시지 Sample Code

{
  "text": "다음 일정에 초대되었습니다",
  "blocks": [
    {
      "type": "text",
      "text": "다음 일정에 초대되었습니다",
      "inlines": [
        {
          "type": "styled",
          "text": "다음 일정에 초대되었습니다.",
          "bold": true
        }
      ]
    },
    {
      "type": "divider"
    },
    {
      "type": "text",
      "text": "서비스 정책회의 - 기획 논의",
      "inlines": [
        {
          "type": "styled",
          "text": "서비스 정책회의 - 기획 논의",
          "bold": true
        }
      ]
    },
    {
      "type": "description",
      "term": "일시",
      "content": {
        "type": "text",
        "text": "17:00~19:00"
      },
      "accent": true
    },
    {
      "type": "description",
      "term": "장소",
      "content": {
        "type": "text",
        "text": "[판교] N9층 버드bird"
      },
      "accent": true
    },
    {
      "type": "button",
      "text": "자세히 보기",
      "style": "default",
      "action": {
        "type": "open_system_browser",
        "value": "http://example.com/details/999"
      }
    },
    {
      "type": "divider"
    },
    {
      "type": "text",
      "text": "참석 하시겠습니까?",
      "inlines": [
        {
          "type": "styled",
          "text": "참석 하시겠습니까?",
          "bold": true
        }
      ]
    },
    {
      "type": "action",
      "elements": [
        {
          "type": "button",
          "text": "수락",
          "style": "default",
          "action": {
            "type": "submit_action",
            "name": "accept",
            "value": "event_id=20210301-0024"
          }
        },
        {
          "type": "button",
          "text": "거절",
          "style": "default",
          "action": {
            "type": "submit_action",
            "name": "decline",
            "value": "event_id=20210301-0024"
          }
        },
        {
          "type": "button",
          "text": "미정",
          "style": "default",
          "action": {
            "type": "submit_action",
            "name": "undetermined",
            "value": "event_id=20210301-0024"
          }
        }
      ]
    }
  ]
}

안내
submit_action을 활용한 Bot과 사용자 간의 메시지 흐름은 Bot 시작 가이드의 반응형 메시지 문서를 참고하시기 바랍니다.

  • 사용자가 선택한 버튼 정보는 Bot의 Callback URL로 전달됩니다. 상세한 Callback payload는 Button BlockAction Type예제를 참고하시기 바랍니다.
이 문서가 만족스러운 이유를 알려주세요.
이 문서에 아쉬운 점을 알려주세요.
평가해주셔서 감사합니다.

더 자세한 의견은 contact.dkt@kakaocorp.com 으로 제보해주세요.