Skip to content

Conversational Components

Also called: Ice breakers · WhatsApp slash commands · Conversational automation · Welcome message event

Per-number WhatsApp settings — ice breakers, slash commands and the welcome-message event — that give customers ready-made ways to start a chat.

Reviewed

What is conversational components?

Conversational components are features configured on a WhatsApp business phone number that help customers start or steer a conversation with a bot. There are three: ice breakers, tappable starter prompts shown when a customer opens a new chat; commands, slash shortcuts with a hint that appear when the customer types "/"; and the welcome-message setting, which makes WhatsApp notify your webhook when a customer starts a new thread so that you can greet them.

They are set through the Cloud API with POST /{PHONE_NUMBER_ID}/conversational_automation — or in WhatsApp Manager — and read back with GET /{PHONE_NUMBER_ID}?fields=conversational_automation. Meta's limits are up to 4 ice breakers of up to 80 characters each, and up to 30 commands with names of up to 32 characters and hints of up to 256 characters. Emojis are not supported in either.

Conversational components only create entry points; WhatsApp sends nothing on your behalf. A tapped ice breaker arrives as an ordinary text message, a command arrives as the full typed string (for example "/status TR-48213"), and a new thread arrives as a messages webhook of type request_welcome. That is the difference from an auto-reply, which is the message your system sends back: the components are the doors, while auto-replies and chatbot flows are what happens behind them.

Key takeaways

  • Conversational components are per-number entry points: ice breakers, slash commands and the welcome-message event.
  • Configure them with POST /{PHONE_NUMBER_ID}/conversational_automation and read them back with fields=conversational_automation.
  • Meta allows up to 4 ice breakers of 80 characters and up to 30 commands with 32-character names and 256-character hints, no emojis.
  • WhatsApp sends nothing itself: taps arrive as text messages and new threads as a request_welcome webhook your bot must answer.
  • Ice breakers appear only in a new chat thread, and a wa.me link with pre-filled text dismisses them.

See InfiQ pricing

Interactive stop

Tap an ice breaker, then type a command

7 / 7
Indore EV ShowroomBusiness account

Today

  1. WhatsApp notice: New chat · Ice breakers: Book a test ride · Check service status · Talk to sales
  2. Customer: Book a test ride10:31
  3. Indore EV Showroom: Great choice! Which model would you like to ride?10:32ReadCity 2.0Range Pro (chosen)Not sure yet
  4. Customer: Range Pro10:33
  5. Indore EV Showroom: Pick a slot at our Vijay Nagar showroom.See slots10:34ReadSee slotsSat 11:00 amSat 3:00 pmSun 11:00 am
  6. Customer: /status TR-4821310:35
  7. Indore EV Showroom: Service job TR-48213: brake check done, battery test in progress. Ready by 6 pm today.10:36Delivered

Message 7 of 7

Indore EV ShowroomTextDelivered (two grey ticks)

The command handler looked up the job. Nothing here was sent by WhatsApp itself — every reply comes from your bot.

Free-form text. A business can send it only within 24 hours of the customer’s last message.

A new chat with a scooter dealer: ice breakers offered, one tapped, a slash command typed later. Focus each bubble to see what your webhook actually receives.

Message 7 of 7: Indore EV Showroom, Text, Delivered (two grey ticks). The command handler looked up the job. Nothing here was sent by WhatsApp itself — every reply comes from your bot.

How does conversational components work?

  1. Design the entry points

    Pick up to four ice breakers for your most common first intents and a short set of commands for repeat tasks (/status, /menu, /agent). Keep each within Meta's limits and free of emojis.

  2. Configure the number

    POST prompts, commands and, if you want new-thread events, enable_welcome_message to /{PHONE_NUMBER_ID}/conversational_automation. Each phone number is configured separately.

  3. Answer the welcome event

    When a customer starts a new thread, your messages webhook receives type: "request_welcome". Reply with a greeting and options; the event opens a customer service window, so a free-form reply is allowed.

  4. Route ice-breaker taps

    A tap arrives as a normal text message whose text.body is the ice-breaker wording. Match it exactly and start the matching flow.

  5. Parse commands

    Commands arrive as text beginning with "/". Split the command name from any argument, normalise case and treat unknown commands like any other unmatched message.

  6. Retest properly

    Ice breakers appear only in a new thread, so clear the chat on your test phone and start again. A wa.me link with pre-filled text dismisses them.

Conversational components in code

curl -X POST "https://graph.facebook.com/v26.0/{PHONE_NUMBER_ID}/conversational_automation" \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"enable_welcome_message": true,
"prompts": ["Book a test ride", "Check service status", "Talk to sales"],
"commands": [
{ "command_name": "status", "command_description": "Check a service job, e.g. /status TR-48213" },
{ "command_name": "menu", "command_description": "Show the main menu" }
]
}'
# => { "success": true }
# Read the current configuration back
curl "https://graph.facebook.com/v26.0/{PHONE_NUMBER_ID}?fields=conversational_automation" \
-H "Authorization: Bearer {ACCESS_TOKEN}"

One call sets all three components on a number; the GET returns the current prompts, commands and welcome setting.

Example: An electric-scooter dealer in Indore

The dealer configures three ice breakers — "Book a test ride", "Check service status" and "Talk to sales" — plus the commands /status and /menu. A visitor scans the showroom QR code, sees the ice breakers and taps "Book a test ride"; the bot receives that exact text and starts the booking flow. A returning customer types "/status TR-48213" and gets her service job's progress in one reply. Because the QR code opens a plain chat rather than a pre-filled message, the ice breakers are not dismissed.

— An electric-scooter dealer in Indore

Conversational components: key facts and limits

Ice breakers
Up to 4 per number, 80 characters each, no emojis
Commands
Up to 30; name ≤ 32 characters, hint ≤ 256, no emojis
Configure
POST /{PHONE_NUMBER_ID}/conversational_automation
Read back
GET /{PHONE_NUMBER_ID}?fields=conversational_automation
Welcome event
messages webhook with type request_welcome
Ice-breaker tap
Arrives as a text message (text.body)
Scope
Per business phone number

Common mistakes with conversational components

  • Expecting WhatsApp to send the welcome

    Enabling the welcome setting only produces a request_welcome webhook. If your handler ignores that type, the customer sees nothing. Handle it explicitly.

  • Rewording an ice breaker without updating routing

    Taps arrive as plain text, so a reworded ice breaker silently stops matching its flow. Keep the wording and the routing table in one shared config.

  • Testing in an existing chat

    Ice breakers show only in a new thread. Clear the chat on your test device, open it again, and do not test through a pre-filled wa.me link, which dismisses them.

  • Assuming commands are structured

    There is no command payload — only the text the customer typed. Parse defensively: unknown commands, missing arguments and "/Status" in odd casing all happen.

  • Forgetting your other numbers

    Settings are per phone number. A second number for another city or brand starts with nothing until you configure it too.

Why does conversational components matter?

An empty chat box is a weak start. Customers arriving from a QR code or a website button often do not know what to type, and free text is harder for a bot to understand. Ice breakers turn the first message into a known, routable phrase, commands give repeat customers shortcuts, and the welcome event lets you greet a brand-new contact before they have to think of a question. For a marketer it is the shop window of the chat; for a developer it is cleaner, more predictable input.

Best practices for conversational components

  • Write ice breakers as a customer would say them: "Track my order", not "Order tracking".
  • Put the argument format in the command hint, for example "/status TR-48213".
  • Count taps per ice breaker and replace the weakest every few weeks.
  • Answer an ice-breaker tap with buttons so the journey stays tap-driven.

Conversational Components FAQs

What are ice breakers on WhatsApp Business?+
They are up to four tappable starter prompts shown when a customer opens a new chat with your number. Tapping one sends its text as the customer's first message, which your bot can route like a keyword.
How do I set up a welcome message on the WhatsApp Business API?+
Enable the welcome-message setting on the number, then reply when your webhook receives a `request_welcome` message. WhatsApp sends no greeting itself; your bot does, inside the customer service window that event opens.
How do WhatsApp slash commands work?+
Commands appear with your hints when a customer types "/" in the chat. The full typed text, including any argument, arrives in `text.body` of a normal message, and your code parses it.
Are conversational components the same as auto-replies?+
No. Conversational components are entry points configured on the phone number; auto-replies are messages your system sends in response. Ice breakers and commands start the conversation, and your rules or bot answer it.
Why are my ice breakers not showing?+
They only appear in a new chat thread. Clear the existing chat on the test phone, avoid wa.me links with pre-filled text, and confirm the configuration with a GET on `conversational_automation`.

Talk to InfiQ

From definition to your first message

InfiQ is an official Meta Business Partner. Start a 7-day free trial — no card needed — and see this running on your own number.