Structured Message Payload
This guide documents the payload schema of different structured messages and its supporting Web SDK version. This payload is received via the 'chat.msg'
event.
Schemas
Payload schemas of the different structured message types:
Quick Replies
Property | Type | Description |
---|---|---|
type | String | Always 'QUICK_REPLIES' |
msg | String | Content of the message |
quick_replies | Array[Button] | Supported button's action: - 'QUICK_REPLY_ACTION' |
Example:
{
type: 'QUICK_REPLIES',
msg: 'Sure! What type of flavours would you like?',
quick_replies: [
{
text: 'Plain',
action: {
type: 'QUICK_REPLY_ACTION',
value: 'plain'
}
},
{
text: 'Poppy-seed',
action: {
type: 'QUICK_REPLY_ACTION',
value: 'poppy-seed'
}
},
{
text: 'Onion',
action: {
type: 'QUICK_REPLY_ACTION',
value: 'onion'
}
},
{
text: 'Garlic',
action: {
type: 'QUICK_REPLY_ACTION',
value: 'garlic'
}
}
]
}
Button Template
Value | Type | Description |
---|---|---|
type | String | Always 'BUTTON_TEMPLATE' |
msg | String | Content of the message |
buttons | Array[Button] | Supported button's action: - 'QUICK_REPLY_ACTION' - 'LINK_ACTION' |
Example:
{
type: 'BUTTON_TEMPLATE',
msg: '👋 Our studio is open today from 10am to 10pm',
buttons: [
{
text: 'Book an appointment',
action: {
type: 'LINK_ACTION',
value: 'https://example.com/book'
}
},
{
text: 'View hairstylists',
action: {
type: 'QUICK_REPLY_ACTION',
value: 'view hairstylists'
}
},
{
text: 'View gallery',
action: {
type: 'QUICK_REPLY_ACTION',
value: 'view gallery'
}
}
]
}
Panel Template
Property | Type | Description |
---|---|---|
type | String | Always 'PANEL_TEMPLATE' |
panel | Panel | Content of the Panel |
buttons | Array[Button] | undefined |
Supported button's action: - 'LINK_ACTION' |
Properties of Panel
object:
Property | Type | Description |
---|---|---|
heading | String | Title of the panel |
paragraph | String | undefined |
Description of the panel |
image_url | String | undefined |
Panel image |
action | Action | undefined |
Supported action's type: - 'LINK_ACTION' |
Example:
{
type: 'PANEL_TEMPLATE',
panel: {
heading: 'Your appointment today at Garden City',
paragraph: 'You have a haircut scheduled at 5pm today with senior stylist Sharon',
image_url: 'https://example.com/banner.png',
action: {
type: 'LINK_ACTION',
value: 'https://example.com/appointment/1'
}
},
buttons: [
{
text: 'Reschedule',
action: {
type: 'LINK_ACTION',
value: 'https://example.com/reschedule/1'
}
}
]
}
Panel Template Carousel
Added in v1.7.0
Property | Type | Description |
---|---|---|
type | String | Always 'PANEL_TEMPLATE_CAROUSEL' |
items | Array[PANEL_TEMPLATE] | A list of panel templates. |
Example:
{
type: 'PANEL_TEMPLATE_CAROUSEL',
items: [
{
type: 'PANEL_TEMPLATE',
panel: {
heading: 'Your appointment today at Garden City',
paragraph: 'You have a haircut scheduled at 5pm today with senior stylist Sharon',
image_url: 'https://example.com/banner.png',
action: {
type: 'LINK_ACTION',
value: 'https://example.com/appointment/1'
}
},
buttons: [
{
text: 'Reschedule',
action: {
type: 'LINK_ACTION',
value: 'https://example.com/reschedule/1'
}
}
]
},
{
type: 'PANEL_TEMPLATE',
panel: {
heading: 'Your appointment today at Park Dental',
paragraph: 'You have a dental scheduled at 4.35pm today',
image_url: 'https://example.com/banner.png',
action: {
type: 'LINK_ACTION',
value: 'https://example.com/appointment/1'
}
},
buttons: [
{
text: 'Reschedule',
action: {
type: 'LINK_ACTION',
value: 'https://example.com/reschedule/1'
}
}
]
}
]
}
List Template
Added in v1.8.0
Property | Type | Description |
---|---|---|
type | String | Always 'LIST_TEMPLATE' |
items | Array[ListItem] | A list of items |
buttons | Array[Button] | undefined |
Supported button's action: - 'QUICK_REPLY_ACTION' - 'LINK_ACTION' |
Properties of ListItem
object:
Property | Type | Description |
---|---|---|
heading | String | Title of the item |
paragraph | String | Description of the item |
image_url | String | undefined |
Item image |
action | Action | Supported action's type: - 'LINK_ACTION' |
Example:
{
type: 'LIST_TEMPLATE',
items: [
{
heading: 'Band 1',
paragraph: 'example paragraph text',
image_url: 'https://example.com/banner.png',
action: {
type: 'LINK_ACTION',
value: 'https://example.com'
}
},
{
heading: 'Band 2',
paragraph: 'example paragraph text',
image_url: 'https://example.com/banner2.png',
action: {
type: 'LINK_ACTION',
value: 'https://example.com'
}
},
{
heading: 'Band 3',
paragraph: 'example paragraph text',
image_url: 'hhttps://example.com/banner3.png',
action: {
type: 'LINK_ACTION',
value: 'hhttps://example.com'
}
}
],
buttons: [
{
text: 'View more',
action: {
type: 'LINK_ACTION',
value: 'https://example.com/view/all'
}
}
]
}
Base Types
Base types are part of the structured message's schema.
Button
Property | Type | Description |
---|---|---|
text | String | Button text |
action | Action | Assigned actions |
Action
Value | Type | Description |
---|---|---|
type | String | Name of the action type ('QUICK_REPLY_ACTION' | 'LINK_ACTION' ) |
value | String | Values corresponding to the action type |