JSON 편집 모드
  • PDF

JSON 편집 모드

  • PDF

CLOVA Chatbot에서 구현 가능한 JSON 입력 양식에 대해 설명합니다. JSON 편집 모드는 연속 답변 및 여러 필수 입력 사항을 채워야 하는 복잡한 답변 유형을 다른 대화로 복사할 때 활용할 수 있습니다.
[JSON 편집 모드] 버튼을 클릭하면 JSON 구조의 데이터를 복사할 수 있고, 복사한 데이터를 다른 대화에 적용하면 복잡하게 설정된 답변 유형을 쉽게 복사할 수 있습니다.

기본 답변

JSON Structure 예시는 다음과 같습니다.

[
  {
    "component": {
      "type": "text",
      "data": {
        "description": "the answer of this query is test",
        "url": "http://www.example.com"
      }
    },
    "answerType": "TEXT"
  }
]
필드 타입 필수여부 설명
component object true support Text Component in the chatbot custom api specification v2
component.type string true text
component.data.description string true answer
component.data.url string false the hyperlink jump url
(http://www.example.com )
answerType string true TEXT, means default answer

멀티링크 답변

JSON Structure 예시는 다음과 같습니다.

[
  {
    "component": {
      "type": "template",
      "data": {
        "cover": {
          "type": "text",
          "data": {
            "description": "멀티링크의 답변 부분입니다."
          }
        },
        "contentTable": [
          [
            {
              "colSpan": 1,
              "rowSpan": 1,
              "data": {
                "type": "button",
                "title": "naver",
                "data": {
                  "type": "basic",
                  "action": {
                    "type": "link",
                    "data": {
                      "url": "https://www.naver.com/"
                    }
                  }
                }
              }
            }
          ],
          [
            {
              "colSpan": 1,
              "rowSpan": 1,
              "data": {
                "type": "button",
                "title": "google",
                "data": {
                  "type": "basic",
                  "action": {
                    "type": "link",
                    "data": {
                      "url": "https://www.google.com/"
                    }
                  }
                }
              }
            }
          ]
        ]
      }
    },
    "answerType": "MULTILINKS"
  }
]
필드 타입 필수여부 설명
answerType string true MULTILINKS, means multilink answer
component jsonObject true support Template Component in the chatbot custom api specification v2, and template type only support Text + Buttons

이미지 답변

JSON Structure 예시는 다음과 같습니다

[
  {
    "component": {
      "type": "carousel",
      "data": {
        "cards": [
          {
            "type": "image",
            "title": "첫 번째 캐로셀의 이미지 제목입니다.",
            "data": {
              "imageUrl": "https://www.image.com/image.png",
              "description": "첫 번째 캐로셀의 이미지 설명입니다."
            }
          },
          {
            "type": "image",
            "title": "두 번째 캐로셀의 이미지 제목입니다.",
            "data": {
              "imageUrl": "https://www.image.com/image.png",
              "description": "두 번째 캐로셀의 이미지 설명입니다."
            }
          }
        ]
      }
    },
    "answerType": "IMAGECARD"
  }
]

Field Introduce

필드 타입 필수여부 설명
answerType string true IMAGECARD, means image answer
component jsonObject true support Image Component, Template Component, Carousel Component in the chatbot custom api specification v2.
It depends on the number of Image Card and Button:
1. one image card, no button: Image Component;
2. one image card, with button: Template Component, and template type only support Image Component + Buttons;
3. multiple image card: Carousel Component, and carouse type support only images and template with image + buttons

Image Field Introduce

필드 타입 필수여부 설명
type string true image
title string true short bold text
data.imageUrl string true image url, must be https url
data.description string false details info of image

객관식 답변

JSON Structure 예시는 다음과 같습니다.

[
  {
    "component": {
      "type": "text",
      "data": {
        "description": "#{객관식폼이름}"
      }
    },
    "answerType": "SINGLEFORM"
  }
]
필드 타입 필수여부 설명
answerType string true SINGLEFORM, means multiple choice answer
component object true support Text Component in the chatbot custom api specification v2
component.type string true Text
component.data.description string true String1 true form name,wrap with # and {}
#{formName}

연속 답변

연속 답변의 경우 최대 5개의 말풍선을 추가할 수 있습니다.
JSON Structure 예시는 다음과 같습니다.

 [
  {
    "component": {
      "type": "text",
      "data": {
        "description": "답변 예시입니다.",
        "url": "http://www.example.com"
      }
    },
    "answerType": "TEXT"
  },
  {
    "component": {
      "type": "text",
      "data": {
        "description": "#{객관식 폼 이름}"
      }
    },
    "answerType": "SINGLEFORM"
  }
]

Field Introduce
In the array data( array[jsonObject] ),each json object represents a bubble, multiple bubbles correspond to multiple json objects.

Flex 메시지 답변

메신저를 LINE으로 설정한 경우, Flex 메시지 답변을 지원합니다.
JSON Structure 예시는 다음과 같습니다.

[
  {
    "component": {
      "type": "flex",
      "title": "Flex 답변입니다.",
      "data": {
        "type": "bubble",
        "hero": {
          "type": "image",
          "url": "https://scdn.line-apps.com/n/channel_devcenter/img/fx/01_1_cafe.png",
          "size": "full",
          "aspectRatio": "20:13",
          "aspectMode": "cover"
        },
        "body": {
          "type": "box",
          "layout": "vertical",
          "contents": [
            {
              "type": "text",
              "text": "Brown Cafe",
              "weight": "bold",
              "size": "xl"
            }
          ]
        },
        "footer": {
          "type": "box",
          "layout": "vertical",
          "spacing": "sm",
          "contents": [
            {
              "type": "button",
              "style": "link",
              "height": "sm",
              "action": {
                "type": "uri",
                "label": "CALL",
                "uri": "https://linecorp.com"
              }
            },
            {
              "type": "spacer",
              "size": "sm"
            }
          ],
          "flex": 0
        }
      }
    },
    "answerType": "FLEXMESSAGE"
  }
]
필드 타입 필수여부 설명
answerType string true FLEXMESSAGE, means flex message answer
component object true support LINE Flex in the chatbot custom api specification v2

LINE 스티커 답변

메신저를 LINE으로 설정한 경우, LINE 스티커 답변을 지원합니다.
JSON Structure 예시는 다음과 같습니다.

[
  {
    "component": {
      "type": "line_sticker",
      "data": {
        "packageId": "11537",
        "stickerId": "52002734"
      }
    },
    "answerType": "STICKER"
  }
]
필드 타입 필수여부 설명
answerType string true STICKER, means LINE sticker answer
component object true support Line Sticker in the chatbot custom api specification v2

이 글이 도움이 되었나요?