페이지 이동경로
  • Docs>
  • Message>
  • Message Template

Message

Message template

This document introduces the types and functions of the message templates used for the Kakao Talk Sharing API and Kakao Talk Messaging API.

Note

To use this function, you must register the platform and domain information in [My Application] > [Platform]. Refer to Register platforms to see how to register a platform.

Overview

The Messaging API allows users to send a message to Kakao Talk friends. To send a message through this API, you need to create a message in a predefined structure. The predefined structure is called Message template.

To help you to create a message more easily, Kakao provides five types of Message templates ("Default template") that consist of commonly used components. The Kakao SDKs for iOS and Android provide the classes for respective default templates. When you configure a message content, define the components that the default template provides in Object or JSON format.

To customize the template's structure according to your service, go to [Tools] > [Message Template Builder], and then register a custom template for each app. Then, you can send a message with the registered template by passing the custom template ID when you request the Sending message with custom template API.

No, you do not have to if you can create a message with a default template as you desire. For the default template types, refer to Types.

Template types

Kakao provides five types of the default templates to help you configure a message content more easily according to your service's situation. Hear are the examples and usage cases.

Template Description
Feed Used to configure a message that contains images and text. You can also add a list of items to the Feed message if using the Extended feed message.
When you send a Scrape message, the Feed template sturcture is applied. The Scrape message contains the information of the requested web page that is scraped based on the Open Graph Protocol.
Recommendations: You can use this template to share a service news or promotion event. To share a web page only, use a Scrape message.
List Used to configure a message that contains one or more contents on a vertical list. Each list has an image and text.
Recommendations: You can use this template to introduce multiple news or product information in a single message.
Location Used to configure a message that contains location information such as address. When a user clicks the location information button in the message, the use can check the detailed location information through Kakao Map
Recommendations: You can use this template to share a grand opening news or introduces some menus or products that a store sells with its location.
Commerce Used to configure a message that contains product price and its description. This template shows detailed product information (regular price, discount price, discount rate) but cannot contain long texts as many as the Feed template does.
Recommendations: You can use this template to notify users of promotion or discount events for the products that the service sells.
Text Used to configure a message that contains text only.
Recommendations: You can use this template to send a simple text message or when you need to input a long text up to 200 characters in a message.
Calendar Used to configure a message that includes a button to add a public event or a subscribed calendar to a user's calendar. You can send a Kakao Talk message from an app that is connected to a Kakao Talk Channel by passing a public event ID or a subscribed calendar ID.
IMPORTANT: To obtain permission for a public event or a subscribed calendar, request permission.
Recommendations: You can use this template to encourage users to add a public event to their calendars or subscribe to a subscribed calendar.
Examples of messages by type

Message configuration method

To configure a message, you can use either one:

  • Default template: Define each message component in JSON or Object format in a template structure provided Kakao as default and pass the object where a message is configured when requesting to send a message.
  • Custom template: Configure a message template in [Tools] > [Message Template Builder] on Kakao Developers to customize a template according to a service's needs or circumstances. The Custom template is useful to send a consistent message regardless of receiving users or circumstances or change the custom template in the Kakao Developers without any update in the client or server.

Supported message types according to configuration method

Message Default template Custom template
Feed O O
List O O
Location O X
Commerce O O
Text O X
Scrap O O
Calendar O X

User argument

When you use the custom template, you can use a user argument to customize your message for targeted users or situations. Add a user argument in ${key} format for variable information to the message content when configuring a message, and pass the value of the user argument when requesting to send a message in the form of {"${KEY}":"{VALUE}"}.

Example of message using a user argument

You can also apply a user argument for message components. Select the 'Custom' option when you configure a message in [Message Template Builder], and then pass template_args (Android, iOS SDK: templateArgs) in key-value format along with the custom template ID.

For example, if you select 'Custom(0,1)' for Button alignment, you need to pass the argument key such as ${BUT} shown in the Message Template Builder. If you want to arrange buttons on the template in a vertical direction, pass {"BUT": "1"} for template_args as an argument value when you request.

How to use user arguments

You can customize the argument keys whatever you want except for the default argument keys that are assigned for scrape message.

Components by message type

If you fully understand the types and components of a message template, you can configure your message as you desire effectively with any type of the Messaging API. You can simply use a Text template that consists of text and buttons, a List template that can show the latest news, or a Commerce template that displays product information.

All message templates contain a link to launch the app at the bottom, and you can add one or two buttons containing a path to open the specified web page or app as needed. Depending on the template types, the other components may change.

Each type of message template has different components. You cannot mix up components of different message types in a message because each message type is composed of an object defined according to message types.

To include an image in your message to be sent through the Messaging API, you must pass the path (URL) of an image file in the request. You cannot use the path of the image file stored on a device. The image file's size must be less than 5 MB.
To help you develop more conveniently, Kakao supports the Uploading image API with which you can store your images in the Kakao server for 100 days and use the image file path when sending a message. To see how to use the Uploading image API, refer to the development guide for the corresponding platform you work with.

Let's see the components for each message type you should know when registering message templates or configuring a message in your code.

Because this documentation describes message components based on REST API, the names of classes and fields for each common component provided by the Kakao SDK are different.

Feed message

The Feed template, provided as the default template, consists of a piece of content and a button as a default. Configure the default Feed message through template_object. You can add social information or one more button as needed.

Composition of Feed message

🅐 Image: You can add an image with a minimum size of 400x400 pixels. If you configure a custom template in the Message template builder, up to three images are allowed. For more details, see Message template builder > Image. 🅑 Text: You can enter up to two lines of title and two lines of description. 🅒 Social: You can register five social information but only up to three items are displayed and sorted with this priority: 'Like' > 'Comment' > 'Share' > 'View' > 'Subscribe'. 🅓 Button: You can add up to two buttons. 8 characters or less are recommended for the button name.

Extended feed message

You can use the extended version of a feed message by adding multiple items and their information. You can use this message type for a receipt, menu, or product description.

To use the Extended feed message, add the item_content object inside template_object. The rest components (🅐 to 🅓) are the same as the Feed message.

Composition of Extended feed message

🅔 Profile/Header: You can set the profile information with a profile image or only the text without an image. 🅕 Image item: You can add a specific item name with an image and its category information. Only one Image item is allowed. 🅖 Text item: You can add a list of text items that consists of the item's name and description. Up to five items are allowed. 🅗 Summary information: You can add summary information that consists of Name and Description.

template_object (SDK: FeedTemplate)
Name Type Description Area Required
object_type
SDK: objectType
String Template type.
Fixed as feed.
- O
content Content Main content information of the message. 🅐,🅑 O
item_content
SDK: itemContent
ItemContent Components for the extended version of a Feed message.
Required if you configure the Extended Feed Message.
🅔,🅕,🅖,🅗 X
social Social Social information about the content. 🅒 X
button_title
SDK: buttonTitle
String Used when you want to change the title of the default button ("자세히 보기"). 🅓 X
buttons Buttons[]
Android,Flutter: List<Button>
iOS: [Button]
List of buttons.
Up to two buttons are allowed.
Used when you want to change the title and link of a button or add two buttons.
🅓 X
item_content (SDK: ItemContent)
Name Type Description Area Required
profile_text
SDK: profileText
String Text in the Profile or Header area.
If profile_image_url is not set, only text is displayed.
Character limits*: 27 in a line (16 in Korean)
🅔 X
profile_image_url
SDK: profileImageUrl
String
Flutter: Uri
iOS: URL
Image in the Profile area. 🅔 X
title_image_text
SDK: titleImageText
String Title of the image item.
Character limits*: 40 in two lines. (24 in Korean)
🅕 X
title_image_category
SDK: titleImageCategory
String Category of the image item.
Character limits*: 24 in a line (14 in Korean)
🅕 X
title_image_url
SDK: titleImageUrl
String
Flutter: Uri
iOS: URL
URL of the image displayed at the right side of title_image_text.
Image size: 98x98 pixels on Android, 108x108 pixels on iOS.
If the image is not 1:1 aspect ratio, center-cropped.
🅕 X
items ItemInfo[]
Android,Flutter: List<ItemInfo>
iOS: [ItemInfo]
List of the text items that consists of item and item_op.
(Example: [{"item": "item1 name", "item_op": "item1 description"}, {"item": "item2 name", "item_op": "item2 description"}])
Up to five items are allowed.
See items: Text item information.
🅖 X
sum String Name of summary information.
Can be used for Total price or amount. (Example: Total)
Character limits*: 6

IMPORTANT: Only displayed when one or more item is set and when both sum and sum_op are set.
🅗 X
sum_op
SDK: sumOp
String Description of summary information.
Can be used for the total price or amount. (Example: 999,999 USD, $99.99)
Character limits*: 19 in a line (14 in Korean)
Recommended characters: numbers, decimal numbers to hundredths, period(.), comma(,), currency unit or currency symbol, white space

IMPORTANT: Only displayed when one or more item is set and when both sum and sum_op are set.
NOTE: Left-aligned by default. If sum and sum_op are set, right-aligned.
🅗 X

*Character limits are calculated on the Android device with resolution 2400 × 1080 pixels (FHD+), and may be different depending on devices.

items: Text item information
Name Type Description Area Required
item String Item name.
Character limits*: 6

IMPORTANT: Only displayed when both item and item_op are set.
🅖 O
item_op
SDK: itemOp
String Item description.
Character limits*: 49 in two lines. (25 in Korean)

IMPORTANT: Only displayed when both item and item_op are set.
NOTE: Left-aligned by default. If sum and sum_op are set, right-aligned.
🅖 O

*Character limits are calculated on the Android device with resolution 2400 × 1080 pixels (FHD+), and may be different depending on devices.

List message

The List template consists of a header title displayed at the top of the message, lists, and a button as a default. Configure the default List message through template_object. You can add a link for each header and content and one more button as needed.

Composition of List message

🅐 Header 🅑 List: Up to three items are allowed by default. If you use a custom template, up to five lists are allowed. 🅒 Title/description: You can enter up to two lines of title and one line of description. 🅓 Image: You can add a single image on each list. Minimum size: 200x200 pixels. Maximum file size: 5 MB. 🅔 Button: You can add up to two buttons. 8 characters or less are recommended for the button name.

template_object (SDK: ListTemplate)
Name Type Description Area Required
object_type
SDK: objectType
String Template type.
Fixed as list.
- O
header_title
SDK: headerTitle
String Main title displayed at the top of list. Up to 200 characters are allowed. 🅐 O
header_link
SDK: headerLink
Link Link information corresponding to the content of the title. 🅐 O
contents Content[]
Android,Flutter: List<Content>
iOS: [Content]
List of contents displayed on the list.
Two or more contents required.
Up to three contents are allowed.
🅑 O
button_title
SDK: buttonTitle
String Used when you want to change the title of the default button ("자세히 보기"). 🅔 X
buttons Buttons[]
Android,Flutter: List<Button>
iOS: [Button]
Button list.
Up to two buttons are allowed.
Used when you want to change the button title and link or to add two buttons.
🅔 X

Location message

The Location template consists of address information to display the location on a map and the content object describing the location. Configure the Location message through template_object.

The [View Location] button to show a map is added at the bottom right next to the default button. If users click [View Location], they can see the location address on the switched map screen in the Kakao Talk chatroom.

Composition of Location message

🅐 Image: You can upload only one image. Recommended image size: 800x800 pixels or more. 🅑 Text: You can enter up to two lines of title and two lines of description. 🅒 Social: You can register five kinds of social information but only up to three items are displayed and sorted with this priority: 'Like' > 'Comment' > 'Share' > 'View' > 'Subscribe'. 🅓 Button: You can add up to two buttons. 8 characters or less are recommended for the button name.

template_object (SDK: LocationTemplate)
Name Type Description Area Required
object_type
SDK: objectType
String Template type.
Fixed as location.
- O
address String Address of location to be shared.
(Example: 235, Pangyoyeok-ro, Bundang-gu, Seongnam-si, Gyeonggi-do)
- O
address_title
SDK: addressTitle
String Title used for Map view in Kakao Talk.
(Example: Kakao Pangyo Office)
- X
content Content Content information that describes the location. 🅐,🅑 O
social Social Additional social information. 🅒 X
button_title
SDK: buttonTitle
String Used when you want to change the title of the default button ("자세히 보기"). 🅓 X
buttons Buttons[]
Android,Flutter: List<Button>
iOS: [Button]
Button list.
Up to two buttons are allowed.
Used when you want to change the button title and link or to add two buttons.
🅓 X

Commerce message

The Commerce messages consist of an image, product information, content, and buttons. With the Commerce template provided as a default, you can contain only one product information with one button. Configure the default Commerce message through template_object. If you want to show multiple product information, you must configure a custom message.

Composition of Commerce message

🅐 Image: You can upload only one image with a size of 800x800 pixels or more. 🅑 Product name: Product name. Up to two lines are displayed. 🅒 Product information: Discount price(Possible to change the currency symbol and position), regular price, and discount rate. 🅓 Content: Product description. Up to two lines are displayed. 🅔 Button: You can add up to two buttons. 8 characters or less are recommended for the button name.

template_object (SDK: CommerceTemplate)
Name Type Description Area Required
object_type
SDK: objectType
String Template type.
Fixed as commerce.
- O
content Content Content information of a message. 🅐, 🅓 O
commerce Commerce Product name and price information.
See Commerce.
🅒 O
button_title
SDK: buttonTitle
String Used when you want to change the title of the default button ("자세히 보기"). 🅔 X
buttons Buttons[]
Android,Flutter: List<Button>
iOS: [Button]
Button list.
Up to two buttons are allowed.
Used when you want to change the button title and link or to add two buttons.
🅔 X
Commerce (iOS: CommerceDetail, Android,Flutter: Commerce)
Name Type Description Area Required
product_name
SDK: productName
String Up to two lines of product name or title are displayed in black above the product price. 🅑 X
regular_price
SDK: regularPrice
Int Regular price. 🅒 O
discount_price
SDK: discountPrice
Int Discount price. 🅒 X
discount_rate
SDK: discountRate
Int
iOS: NSNumber
Discount rate. 🅒 X
SDK: fixedDiscountPrice Int Fixed discount price. You cannot use this with discount rate at the same time. 🅒 X
currency_unit
SDK: currencyUnit
String Currency unit or symbol. (Example: 원, Won, USD, ₩, $)
(Default: 원)
🅒 X
currency_unit_position
SDK: currencyUnitPosition
Int Position of currency unit or symbol.
0: Place currency symbol after the price.
1: Place currency symbol before the price.
(Default: 0)
- X

Text message

The Text template, provided as a default template, consists of a text area and a button. Configure the Text message through template_object. You can add one more button as needed.

Composition of Text message

🅐 Text: Up to 200 characters are displayed. 🅑 Button: You can add up to two buttons. 8 characters or less are recommended for the button name.

template_object (SDK: TextTemplate)
Name Type Description Area Required
object_type
SDK: objectType
String Template type.
Fixed as text.
- O
text String Text information.
Up 200 characters are displayed.
🅐 O
link Link Link information to be redirected when a content is clicked. 🅐 O
button_title
SDK: buttonTitle
String Used when you want to change the title of the default button ("자세히 보기"). 🅑 X
buttons Buttons[]
Android,Flutter: List<Button>
iOS: [Button]
Button list.
Up to two buttons are allowed.
Used when you want to change the button title and link or to add two buttons.
🅑 X

Scrape message

You can configure the content of a website using the images, title, descriptions, and links based on information on the web page and send it simply. When the page is scraped, web page information is collected based on the Open Graph Protocol and used for each component. Therefore, when you request to send a scrape message, you do not need to configure message contents separately, except for the contents to be added to the message template through a user argument.

Composition of Scrape message

🅐 Image: A representative image of the scraped web page is displayed. 🅑 Text: The title and description of the scraped web page are displayed. Up to two lines for title and description respectively. 🅒 Button: Button name is displayed as specified for the web page in '${SCRAP_HOST}에서 확인' format. Users are directed to the scraped web page with this button tapped.

Default argument keys used for Scrape message

Because the following argument keys are already assigned for a scrape message, you cannot use these names for an argument key. If the requested web page includes the Open Graph Meta tags, each tag value is applied for each argument key to create a scrape message.

Key Description Area

${SCRAP_IMAGE}
${SCRAP_IMAGE_WIDTH}
${SCRAP_IMAGE_HEIGHT}
The representative image of the web page set in og:image.
${SCRAP_IMAGE_WIDTH} is the specified width of og:image, and ${SCRAP_IMAGE_HEIGHT} is the specified height of og:image.
🅐

${SCRAP_IMAGE_DURATION}
The music or video duration set in og:music:duration or og:vedio:duration. 🅐

${SCRAP_TITLE}
The title of the web page set in og:title. 🅑

${SCRAP_DESCRIPTION}
The description of the web page set in og:description. 🅑

${SCRAP_HOST}
The name of the web page set in og:site_name.
If not specified, the site domain of the requested web page is displayed.
🅒

${SCRAP_REQUESTED_URL}
The address of the requested web page.
If a user clicks any of the message component, the web page opens.
🅐,🅑,🅒
Note

You can scrape and send only the domains registered in [My Application] > [Platform] > [Web].

Calendar message

The Calendar template consists of an image, text that describes a public event or a subscribed calendar, and a button. You can send a message to encourage users to add a public event or a subscribed calendar to their calendar by using the Calendar template. For more details, see Talk Calendar > Concepts.

Note

To use the calendar template, you need a public event ID or a subscribed calendar ID. To create or manage a public event or a subscribed calendar, you must enable the 'Create, retrieve, edit/delete Talk Calendar and events' scope and must obtain permission. See Talk Calendar > Prerequisites.

Composition of Calendar message

🅐 Image: You can upload only one image. 🅑 Text: The title and description of the calendar or event are displayed. You can enter up to two lines of title and two lines of description. 🅒 Button: You can add up to two buttons, including either [일정 등록하기(Add event)] or [캘린더 구독하기(Subscribe calendar)] button (ⓐ).

template_object (SDK: CalendarTemplate)
Name Type Description Area Required
object_type String Template type.
Fixed as calendar.
- O
id_type String
iOS: IdType
Either event or calendar.
Depending on the value of id_type, the button name on a calendar message and how the button works when it is invoked are different. See How a button on calendar message works.
- O
id String If you set id_type to event, input a public event ID.
If you set id_type to calendar, input a subscribed calendar ID in subscribe_{ID} format.
- O
contents Content
JavaScript: ContentObject
Content information about the public event or subscribed calendar. 🅐, 🅑 O
buttons Buttons[]
JavaScript: Array.
Android,Flutter: List<Button>
iOS: [Button]
Button list.
Used to add one more button (ⓑ), besides [일정 등록하기(Add event)] or [캘린더 구독하기(Subscribe calendar)] button (ⓐ).
NOTE: ⓐ button supports Korean only.
🅒 X
How a button on calendar message works
id_type id Button name Action
event Public event ID 일정 등록하기(Add event) If a user selects this button in a mobile environment, the public event is automatically added to the user's calendar under the Talk Calendar category.
In the web version of Talk Calendar, the page where a user can add the event is displayed. The user can add the event after logging into Talk Calendar.

If reminders are set for the added public event, a notification message is sent from Talk Calendar. You can customize the [공유하기] button (ⓒ) on the notification message by setting EventReminder.
calendar Subscribed calendar ID 캘린더 구독하기(Subscribe calendar) If selected, the subscribed calendar is added to a user's calendar under the Subscribed Calendar category, and all events of the subscribed calendar are added.
This button only works in a mobile environment.

Common components

content Object (SDK: Content)

Name Type Description Required
title String Title of the content. O
image_url
SDK: imageURL
String
Flutter: Uri
iOS: URL
Image URL in the content. O
image_width
SDK: imageWidth
Int Image width of the content in pixels. X
image_height
SDK: imageHeight
Int Image height of the content in pixels. X
description String Detailed description of the content.
Up to four lines including the content title are displayed.
X
link Link Link information to be redirected to when a a content is clicked. O

The image included in the content area must meet the following conditions, and you must pass the URL for the image when you request to send a message.

  • The image URL must comply with RFC2396, RFC1034, and RFC1123. If not, the image is not displayed.
  • The image size must be 200x200 pixels or higher.
  • The image file size must not exceed 5 MB.

social Object (SDK: Social)

Name Type Description Required
like_count
SDK: likeCount
Int Number of likes for the content. X
comment_count
SDK: commentCount
Int Number of comments on the content. X
shared_count
SDK: sharedCount
Int Number of contents shared. X
view_count
SDK: viewCount
Int Number of content views. X
subscriber_count
SDK: subscriberCount
Int Number of subscriptions to the content. X

This object includes social information, such as the number of likes and comments. Only up to three out of five properties are displayed and sorted with the priority: 'Like' > 'Comment' > 'Shared' > 'View' > 'Subscriber'.

button Object (SDK: Button)

Name Type Description Required
title String Button title. O
link Link Link information to be redirected to when a button is clicked. (At least one is required.) O

If the values both for buttonTitle and buttons are given when configuring a message, the value of buttons is applied. When neither value is given, the link information of link on the content object is applied for a button.

link Object (SDK: Link)

Name Type Description Required
web_url
SDK: webURL
String
Flutter: Uri
iOS: URL
The web link URL used in PC version of Kakao Talk.
The domain of the URL must match the domain registered on the Kakao developers.
O*
mobile_web_url
SDK: mobileWebURL
String
Flutter: Uri
iOS: URL
The web link URL used in mobile version of Kakao Talk.
The domain of URL must match the domain registered on the Kakao Developers.
O*
android_execution_params
SDK: androidExecutionParams
String The parameter used for the app link URL used in Kakao Talk for Android.
If not specified, mobile_web_url is applied.
O*
ios_execution_params
SDK: iosExecutionParams
String The parameter used for the app link URL used in Kakao Talk for iOS.
If not specified, mobile_web_url is applied.
O*

* One of web_url, mobile_web_url, android_execution_params, ios_execution_params is required.

This object contains link information to redirect users when a button or content in a message is clicked. You can set different links for each environment, and each link is applied according to the user's environment where the Kakao Talk app is running. The Web link is applicable in all environments: PC (+Mac), Android, and iOS. The Android and iOS links are only applied to the corresponding platforms.

To apply a link to a message, you must set at least one of the link fields. If you have not set any link field or have set a link but the link is not available on the user's environment where Kakao Talk runs, the link is not applied, or the button does not appear in the message content area.

Note

You must register platforms in [My Application] > [Platform]. If not, the link for the platform is not availble. Even after registering a platform, you must register a link for the platform to apply the link to a button.

How links are applied

This illustration shows which link is applied according to platform or condition.

Flowchart of how links are applied

When users click a button or content on a message, users are directed to each link with the following priorities:

  1. Link to launch app: Opens your service app that is allowed to launch through Custom scheme setting.
  2. Link to Open market: Directs to Market URL when your app is not installed on a user's device.
  3. Link to mobile web: Directs to the URL set as mobile_web_url. If multiple domains are set in the Web platform, the first domain available to land is used as a default among the registered domains.
  4. Link to PC web: Directs to the URL set as webURL. If multiple domains are set in the Web platform, the first domain available to land is used as a default among the registered domains.

Here are the examples to show the priorities to work the links:

Example 1
Platform/Parameter settings Links applied to actual message
- Platform registered in Common link settings: Web and Android
- Message link parameter specified in Button link settings:
   android_execution_params
- Buttons: Displayed on all PC (+Mac), Android, and iOS devices.
- Links: Android link is applied for Android devices. Web link is applied for PC (+Mac) and iOS devices (Common link).
Example 2
Platform/Parameter settings Links applied to actual message
- Platform registered in Common link settings: Android and iOS
- Message link parameter specified in Button link settings:
   android_execution_params, ios_execution_params
- Buttons: Displayed on Android and iOS devices only.
- Links: Android link is applied for Android devices. iOS link is applied for iOS devices.
Example 3
Platform/Parameter settings Links applied to actual message
- Platform registered in Common link settings: Web
- Message link parameter specified in Button link settings:
   web_url, mobile_web_url
- Buttons: Displayed on all PC(+Mac), Android, and iOS devices.
- Links: Web link is applied.
Example 4
Platform/Parameter settings Links applied to actual message
- Platform registered in Common link settings: iOS
- Message link parameter specified in Button link settings:
   web_url, mobile_web_url
- Buttons: Displayed on all PC(+Mac), Android, and iOS devices.
- Links: Web link is applied.

Message template builder

You can easily register and modify a custom message as you want in [Tools] > [Message Template Builder]. The Message template builder provides three types of message templates by default for commonly used message types. Instead of registering a separate message template, you can also create a JSON object or a template class object provided by Kakao SDK, and pass it when requesting the Messaging API. The Message template builder allows you to predefine basic message components and modify some components when requesting the Messaging API or to modify a default template as you want.

Purpose of use for message templates

To use the Sending message to me API, you must set the 'Purpose' to 'Kakao Talk Sharing/Sending me message' when registering a custom message template in the Message Template Builder on the Kakao Developers.

You must register custom messages for each app, and you cannot send messages using the message ID of another app. If you click [Create template], you can select the type of custom message to be newly registered.

How to create a template

Select a type of custom message you want to make among FEED, FEED (ITEM), LIST, and COMMERCE template shown in ➊. Then, click ➋[Ok]. In the case of the Feed template, you can delete some components not needed for your message.

Composition of Message template builder

The Message template builder consists of three parts as shown in the image above:

🅐 A list of templates: Shows all of the custom message templates registered in the currently selected app.

🅑 App information: Shows information of the app that is currently selected, including the app ID and platform that the app is using. You can also select another app by clicking the list icon next to the app name.

🅒 Setting pane: Shows the setting parameters for the template selected in the 🅐list to configure a custom message. The Setting pane is divided into four parts. See below.

Details of Message template builder

🅐 Preview: You can check the message contents as you configure in the Preview pane. When you select a component in this pane, the 🅒Detailed Setting pane is changed so that you can set the parameters required for the selected component. Even though you do not completely understand the details of the components of a custom message, the Preview pane helps you to figure out what you have to configure and modify for each component.

🅑 Component menu: You can select a component to be configured in this menu.

🅒 Detailed setting pane: As you select a component in the 🅑Component menu, the required settings for the component are displayed on this pane.

🅓 User Argument: You can see all user arguments defined in this template. All custom items you entered when using a custom message appear in this pane.

Only after you complete configuring the contents for each component in 🅑 and 🅒, the contents will be reflected in the 🅐Preview and actual message. The Detailed setting pane is slightly different depending on message types because each message type has different components in the object except for Button, Link, and Others components.

Supported components by message type

The supported components for each custom message type are summarized below. You can navigate to each description by clicking the component name.

Message Feed List Commerce
Image O X O
Profile O X O
Header O O X
Image item O* X X
Text item O* X X
Text O X X
Social O X X
List X O X
Product X X O
Product description X X O
Button O O O
Link O O O
Others O O O

*Only for Extended feed message.

Image

Image is a message component included in content. To exclude the image area from the message, delete all images by clicking [Delete].

  • Image: If you select 'Upload image', you can upload up to three images, and each image file size must be 5 MB or less.
    If selecting 'Custom', you can use a user argument and pass the image URL value when requesting to send a message. In this case, up to 5 MB is allowed.
  • Display image count: This setting is only activated for the third image. For a custom message, up to three images are displayed only, but in the case of the message that includes more than three images, users can see how many more images they can see by clicking the message. You can specify a number up to 3, and then the number of additional images is displayed on the third image in the message, such as '+3'. If you do not want to show the number of additional images, do not enter any number.
  • Image size: The image is displayed in the message with a size of the width and height specified in this field. You can set the Image size to a minimum of 400px * 400px and a maximum of 800px * 800px. The ratio is a minimum of 2:1 and a maximum of 3:4.
  • Ratio: If you set the Image size, select Ratio to 'Center Crop' or 'Not used'. You cannot check the image ratio in the Preview pane even though you set the ratio. To check the ratio, send a test message to see how it actually looks. The ratio doesn't apply the images if you attach more than two images.
    • Center Crop(0): Select this option to align the image to the center of the specified area and display only the specified area from the center except for the rest areas.
    • Maintain original ratio(1): Shows the image in the original ratio within the 1:1 ratio area and fills the remaining space with white.
    • Not used: Select this option when you do not want to specify the image ratio. It works the same as Center Crop.
    • Custom(0, 1): Select this option to set a user argument. Pass the argument value to 'Center Crop(0)' or 'Maintain Original Ratio(1)' when requesting to send a message.
  • Live broadcast: Whether to attach the "LIVE" label to the image at the bottom right of the image. You can use this option when sharing a live broadcast as a video or image.
  • Play time: To attach the duration label of the shared video at the bottom right of the image, enter the duration in seconds.
  • Link settings: If you select 'Set individual links', you can specify a link for each image. If selecting 'Use common link', the link specified in Common link settings is applied to the links of all images.

Profile

Set the profile information that appears between the Image and Text areas. You can make it look as if the person or service of the profile posts the message. You can set a profile only when configuring custom messages. The default templates do not support the profile feature. If you set it to 'Disable', the profile is excluded from the message.

In the Extended feed message, if you enable Header, the specified profile information is not applied even though you enable Profile.

  • Image: Register a profile image. If you upload a profile image, it is displayed with rounded corners. You can only upload a single image with a file size of 5 MB or less. If selecting 'Custom', you can use a user argument and pass the image URL value when requesting to send a message.
  • Image size: The profile image is displayed in a small circle with a size of the width and height specified in this field. The input values only affect the image ratio. The maximum image size is 800x800 pixels.
  • Profile name: Enter the profile nickname as you desire. If you set the name too long, it is omitted with an ellipsis(...).
  • Link settings: If you select 'Set individual links', you can specify a link for the profile. If selecting 'Use common link', the link specified in Common link settings is applied to the link of the profile.

Text

The title and description are message components included in content. To exclude the title/description area from the message, select 'Disable'.

You can only enter up to two lines of title and two lines of description. If you enter more than two lines of title or description, the rest texts after the second line are cut off.

  • Title: Enter the title displayed in black and larger than the description.
  • Description: Enter the description displayed in gray and smaller than the title.
  • Link settings: If you select 'Set individual links', you can specify a link for the title/description area. If selecting 'Use common link', the link specified in Common link settings is applied.

Social

Social is a message component included in Social. With this component, you can make a message look as if the content has received a lot of attention and response from users. Or you can also reflect the actual number of likes and comments from users using user argument. To exclude the social information from the message, select 'Disable'.

Only up to three types of social information are displayed in this area. If you enter values for more than three items, only three items are displayed in this order with the priority: Like > Comment > Shared > View > Subscriber.

  • Like: Enter the number of user reactions displayed with a heart icon.
  • Comment: Enter the number of user comments displayed with a chat bubble icon.
  • Share: Enter the number of shares displayed with a share icon.
  • View: Enter the number of views displayed with an eye icon.
  • Subscriber: Enter the number of subscribers displayed with a person icon.

Header

This component is for the List message and the Extended feed message.

Header is required in the List message. On the other hand, in the Extended feed message, you can set it to 'Disable'. If you want to add an image to the Header area, enable Profile instead of Header. If you enable both Profile and Header in the Extended feed message, Header is applied.

  • Header name: Set the title or description of the message. The Header area in the List message is displayed at the top of the message. In the Extended feed message, The Header area is displayed above the main item.
  • Link settings: If you select 'Set individual links', you can specify a link for the header. If selecting 'Use common link', the link specified in Common link settings is applied to the link of the header.

Image item

These components are for the Extended feed message.

  • Title: Enter the title of the image item, which is displayed in bold. Up to two lines are allowed.
  • Category: Enter the description or category of the image item, which is displayed in gray and smaller than other letters.
  • Image: Upload an image of the image item. You can only upload a single image with a file size of 5 MB or less. If selecting 'Custom', you can use a user argument and pass the image URL value when requesting to send a message.

Text item

These components are for the Extended feed message. You can add a list of the text items and summary information.

  • Item list: You can add text items up to five. At least one item's Title and Description are specified, the Item list is displayed in the message. Only when you set both Title and Description of an item, the item is displayed.
    • Title: Enter the item name, which is displayed in gray.
    • Description: Enter the item description, which is displayed in black.
  • Summary information: You can add summary information for the items in the Item list. Only when you set both Title and Description under Summary information, the summary information is displayed.
    • Title: Enter the text that summarizes the item list such as 'Total price.', which is displayed in gray and bigger than the item's Title.
    • Description: Enter the total price or amount, which is displayed in black and bigger than the item's Description.
  • Alignment: Set the alignment of the descriptions of Item and Summary. You can choose one of 'left', 'right', 'center' and 'Custom'. If you selecting 'Disable', left-aligned.

List

With the List component of the message, you can send a message with a list type that contains several items. You can add up to five items but must add at least one on the list. You can add an item by clicking [Add] and delete an item by clicking [Delete]. You must register at least one item on the list.

  • Set list ranking: You can use this option when you want to display each item with rankings. If you select 'Y', the items in the list are displayed with rankings. You can also decide whether to use rankings by setting it as 'Custom' and passing the argument as 'Y'(true) or 'N'(false). From 1 to 5 are allowed for ranking numbers for each item, and numbers are assigned in the order as you enter.
  • Title: Enter the title of each item. If you enter too long title, it may cut off.
  • Description: Enter the description of each item displayed in gray and smaller letters than the title. If you enter too long description, it may cut off.
  • Image: You can add a small image at the right side of each item. If you select 'Upload image', you can upload up to 5 MB. If selecting 'Custom', you can use an argument and pass the image URL value when requesting to send a message.
  • Image size: The input values only affect the image ratio. The maximum image size is 800x800 pixels.
  • Ratio: You cannot check the image ratio in the Preview pane even though you set the ratio. To check the ratio, send a test message to see how it actually looks.
  • Live broadcast: whether to attach the "LIVE" label to the image at the bottom right of the image. You can use this option when sharing a live broadcast as a video or image.
  • Playtime: To attach the duration label of the shared video at the bottom right of the image, enter the duration in seconds.
  • Link settings: If you select 'Set individual links', you can specify a link for each item. If selecting 'Use common link', the link specified in Common link settings is applied to the links of all items.

Product

You can set the product name and price information for a Commerce message, which is commerce in the Commerce object among message components. To exclude the price information from the message, select 'Disable'. The items are sorted in this order: 'Image' > 'Profile' > 'Product information'.

  • Product name: Enter the product name to be displayed above the price in black. Only up to two lines are displayed.
  • Price: Enter the original price of a product to compare it to the discounted price. It is displayed to the right of the discounted price in gray with a strikethrough.
  • Discount rate: Enter the discount rate to be displayed in red and smaller letters than the price at the most right side of the price information area, which shows how cheap the discounted price is compared to the original price.
  • Discounted Price: Enter the discounted product price displayed at the far left of the price information area.
  • Currency unit or symbol: Enter the currency unit (원, won, dollar), the currency code (KRW, USD), or the currency symbol (₩, $).
  • Currency unit position: Select the position of currency unit or symbol.
    • After the price(0): Place currency symbol after the price.
    • Before the price(1): Place currency symbol before the price.
    • Disable
    • Custom(0, 1): If selecting 'Custom', you can decide the currency unit position when requesting to send a message by using user arguments.

Product description

You can set the product description of the commerce message, which is description in the Commerce object among message components. To exclude the product name and description from the message, select 'Disable'.

  • Product description: Enter a product description. Up to two lines are displayed below the price information.

Button

You can add one or two gray buttons to your custom message. Buttons are used to redirect users to the designated web page or app.

  • Button alignment: You can select how to align buttons when adding two buttons. If you select 'Horizontal', two buttons with a half-width of one button are displayed side by side. If selecting 'Vertical', two buttons with the same width as one button are displayed up and down. If selecting 'Custom', you can decide the alignment method between 'Horizontal(0)' and 'Vertical(1)' when requesting to send a message.
  • Button name: Enter the button name displayed on the button. If you enter too long button name, it may cut off.
  • Display: Decide whether to display the button only to the sender, receiver, or both.
  • Link settings: If you select 'Set individual links', you can specify a link for each button. To see the priorities and enable conditions of links, refer to Link. If selecting 'Use common link', the link specified in Common link settings is applied to the links of all buttons.

Link

With the link component of the message, you can set a common link to be applied to all available web pages or app links or individual links to be applied to each component.

Depending on your purpose, you need to set up the link settings on different tab.

Purpose Detailed settings
To apply the common link to all clickable components in a message 1. Select [Link] tab.
2. Select 'Enable' under 'Common link settings'.
3. Set up the settings under 'Common link settings'.
To apply different schemes and market URLs to each message component 1. Select [Image], [Image Item], [Profile], [Header], [Text], [Button], or [Description] tab.
2. Select [Set individual links] under 'Link settings'.

To apply the common link to the component, select [Use common links] after setting 'Common link settings' under [Link] tab.
If you have set an individual link for a specific component, the individual link gains priority over the common link. On a platform for which you have not set an individual link, the common link is applied.
To set custom schemes and market URLs for the service information at the bottom of the message 1. Select [Others] tab.
2. Set up the settings under 'Source link settings'.

Common link works differently depending on user environments. You can set a static common link under 'Common link settings' in the Message Template Builder. Refer to Link to see the priorities and enable conditions of the link.

Common link settings

The common link is applied to all available web pages or app links. If you do not want to apply a common link, select 'Disable'.

  • Mobile Web: This link is only applied in a mobile web environment. You can set up the settings only after registering Web platform information on the Platform page. This link is applied differently depending on the user's environment. In a mobile environment, Mobile Web information is applied. In a PC environment, Web information is applied.
    • DOMAIN: Select one among the site domains you have registered in [My Application] > [Platform]. If you cannot find the domain you want to use in the 'DOMAIN' list, add the site domain on the Platform page. (Example: 'https://developers.kakao.com')
    • PATH: Enter the rest address, except for the domain. (Example: '/docs')
  • Web: This link is only applied in a PC environment. The detailed settings are same as the Mobile Web.
  • Android Scheme: Settings for a scheme to launch an app on Android platform. You can set up the settings only after registering Android platform information on the Platform page.
    • SCHEME: If Android or iOS platform information is registered, 'SCHEME' is automatically created in 'kakao${NATIVE_APP_KEY}://kakaolink' format.
    • PARAMETER: If you want to pass some values when launching an app, set 'PARAMETER'. By referring to the passed parameters, you can implement the subsequent processing, such as checking if the user launches the app through a message or redirecting a user to a specific page. Input the keys and values to be passed when you request such as 'a=1&b=2'. To pass dynamic keys and values, input '${param}', and then pass 'param':'a=1&b=2' through 'template_args' when you request. Refer to user arguments.
  • iOS Scheme: Settings for a scheme to launch an app on iOS platform. You can set up the settings only after registering iOS platform information on the Platform page. The detailed settings are same as the Android Market.
  • Android Market: Settings for a market URL where users can download your app on Android platform if the app is not installed on a user's device. You can set up the settings only after registering Android platform information on the Platform page.
    • SCHEME: According to the Android package name registered on the Platform page, the market URL is automatically created.
    • PARAMETER: If you want to pass some values when installing an app, set 'PARAMETER'. You can use the passed information as mobile app install tracking for your app.
      Input the keys and values to be passed when you request such as 'a=1&b=2'. To pass dynamic keys and values, input '${param}', and then pass 'param':'a=1&b=2' through 'template_args' when you request. Refer to user arguments.
  • iOS Market: Settings for a market URL where users can download your app on iOS platform if the app is not installed on a user's device. You can set up the settings only after registering iOS platform information on the Platform page.
    • SCHEME: According to the iOS bundle ID registered on the Platform page, the market URL is automatically created.
    • PARAMETER: This setting is not applicable for iOS Market.

Others

You can set other components such as the service information area and forward icon on a message in the [Others] tab.

Service information area and forward icon on a message
Source link

In the [Others] tab, you can set up a link for the 🅐service information area at the bottom of the message. You can modify the link for this area only with the Message template builder. However, you cannot modify the app name and icon in the service information area which is displayed as specified in [My Application] > [General]. If you do not use the Message template builder, the default setting is applied for the source link based on the app information.

The setting options are the same as Common link settings.

Etc settings
  • Forwardable: Select whether to add the 🅑Forward icon next to the message. If selecting 'true', a user is allowed to forward the message to the user's friends or a chatroom. If selecting 'Custom', you can make the message forwardable when requesting to send a message by passing FW=true or FW=false.