KakaoTalk - Scenario Steps
Table of Contents
Here's a list of all the available steps in the Bot Editor for sending various message formats to your customers via the KakaoTalk channel.
First Conversation
This steps serves as the primary entry point to your KakaoTalk account. It is triggered when a customer sends their first message, making it to an ideal place for your bot to deliver a warm welcome.
For each subsequent conversation after the first one that triggered the "First Conversation" step, the "Subsequent Conversations" step will be triggered: so it's just as important to write a good welcome message in this case!
Following conversations
This step dictates your bot's behavior for subsequent conversations with a customer, distinguishing them from their very first interaction on the channel. It triggers when a customer, who has a prior conversation history recorded within Alcmeon, sends a new message (in the Alcmeon sense) that initiates a new conversation thread.
Note: If all of a customer's previous messages have been "anonymized" (for GDPR compliance, for example), this "Following Conversations" step will also trigger if that customer sends a new message.
Response to notification
This entry point lets you automate what happens next when a customer replies to an AlimTalk notification you sent from your own systems through the Initiate Conversation API. Without this entry point, the customer's reply goes straight to the Inbox and must be handled by an advisor.
For example, after an AlimTalk notification confirming an appointment, the bot can answer the most frequent questions, qualify the request with a tag, then transfer the customer to an advisor only if needed.
This step is triggered when ALL of the following conditions are met:
- the customer replies to an AlimTalk message sent through the Initiate Conversation API, within the conversation duration set for your account (see Definition of an Alcmeon Conversation)
- the customer replies by typing a message in the chat window
- no conversation is already ongoing for this customer, neither with the bot nor with an advisor
- a scenario published on this KakaoTalk account contains this step
When these conditions are met, this step takes priority over the "First conversation" and "Following conversations" steps.
📄 Note: The contact button of an AlimTalk ("Reply Us" button) only opens the CS Talk chat window. The scenario starts when the customer types their first message in this window, not when they click the button.
Unexpected text
This step is designed to intercept messages typed by a customer in the middle of the decision tree, when a bot was expecting them to click a button instead. It triggers when ALL of the following conditions are met:
- The customer has sent a message.
- This message is not a click on a button or on another scenario element; it is a text typed by the customer.
- In the same conversation as this message from the customer, there is a message immediately preceding this customer message which is a message sent by the bot as part of this specific scenario.
- That preceding bot message does not have a "free message entry" or "default response" output. If it did, the scenario would follow that designated path, which takes precedence over "Unexpected Text."
Message with menu
This step allows you to send a text message accompanied by a series of "quick replies." These are interactive buttons that customers can click. Once a customer clicks a button, the entire set of quick replies disappears. The label of the clicked button becomes the message effectively "sent" by the customer.

Within the Alcmeon bot editor, you can connect each button to a different step, allowing the scenario to branch dynamically based on the customer's choice.
The text message sent can also support various media elements, including emojis, images, MP4 videos, audio files, or other attachments.
Message with buttons from variables
It allows to dynamically generate quick-reply buttons without knowing their labels in advance but only basing on the values defined in a scenario variable.
In other words, it will generate a list of label to be used as button labels. There will be as many labels as elements in value of variable.

Example:
You have a variable in the scenario ‘sports_info' which is a list of sports with some properties
sports: \[{“name”: “football”, “type”: “team”}, {“name”: “running”, “type”: “single”}\]
You want to show 2 buttons with the name of each sport so that a user can select its favorite.
The configuration for the box would be:
Input list → sports (the variable containing the list of sports)
Jinja2 template → {{[item.name](http://item.name)}} (this will take the name property for each element of the list)
Selected index → index_button (a variable named at your choice which allows to save the index of the button clicked)
Message only
This step simply sends a text message to the customer.
This step must always be connected to a subsequent step. Otherwise, the bot conversation will abruptly end for the customer at this point.