Add WhatsApp Buttons and Lists to your Botline AI agent

Author once in the Interactive Library, tag with a slug, and your AI agent picks the right tap-friendly message at the right moment.

·6 min read

What "interactive messages" actually are

WhatsApp's Cloud API supports a small family of tap-friendly message types that go beyond plain text. Instead of asking a customer to type "1", "menu", or "yes", you send them something they can tap. They feel native because they are — Meta renders them with the same UI on every device.

The five kinds Botline supports today:

  • Reply Buttons — up to three small pill buttons under a short message. Tap one and the label is sent back as a reply. Best for binary or three-way decisions ("Yes / No / Maybe later").
  • CTA Buttons — a single button that opens an external URL (your booking page, a product page, a payment link). The customer leaves WhatsApp and lands on your site.
  • Lists — a "View options" button that expands into a scrollable menu with up to 10 rows per section, grouped under section headers. Best for catalogues, service menus, or anything with more than three choices.
  • Location Request — prompts the customer to share their current GPS location with one tap. Best for delivery, dispatch, and home-service tenants.
  • vCard — sends a contact card the customer can save with one tap (your sales rep, your branch, your support line). Best for handoffs and reducing friction at the close.

All five are real WhatsApp primitives — not images, not links, not workarounds. The customer sees them rendered natively in the chat.

Requirements

Interactive messages are a WhatsApp Cloud API feature — Meta does not expose them on the unofficial Baileys path that powers Botline's free Evolution lines. To use them you need:

  • A line connected via Cloud API. If you are still on Evolution, follow the Connect Meta Cloud API to Botline guide first — Pro and Enterprise tenants can self-serve in under 30 minutes.
  • A Pro or Enterprise Botline plan. The Interactive Library is gated to paid tiers because it requires Cloud API.

If your line is on Evolution, the Interactive Library page will still load but the "Send" buttons stay disabled with an inline upgrade nudge.

Where to author them

Open Dashboard → WhatsApp → Interactive Library. This is the single home for every interactive message your tenant uses.

  1. Click + New interactive and pick a kind from the five above.
  2. Give it a name (human-readable, shown only to you) and a slug (lowercase, dash-separated — this is the tag your AI agent uses to refer to it). Slugs are unique per tenant.
  3. Fill in the body, header, footer, and the kind-specific fields (button labels, list rows, URL, contact details).
  4. Click Save. The message goes into your library, ready to be sent.

Slugs are how the AI knows what to send. Pick something descriptive: menu, book-now, share-location, sales-contact, main-services. Avoid generic names like buttons-1 — your AI does better with semantic slugs.

When to use which kind

Reply Buttons shine for short, low-friction decisions. "Want to confirm your booking? Yes / No / Reschedule." Customers tap rather than type, which dramatically reduces drop-off on mobile.

CTA Buttons are for one-tap exits to a known destination. "Tap to book" pointing at /book/your-slug, or "Pay invoice" pointing at a Stripe link. Use one CTA Button per moment of decision — stacking them confuses customers.

Lists are for catalogues. If you have five services, ten dishes, or a multi-section product menu, a List keeps the chat clean and avoids three-screen-tall message walls. Group rows under section headers ("Hair", "Nails", "Spa") so customers can scan.

Location Request is for any flow where you need a customer's GPS — delivery dispatch, "find my nearest branch", on-site service quotes. Customers tap once and the location bubble drops into chat.

vCard is for handoffs. When you escalate to a human or a specialist, send their vCard so the customer can save the contact and call directly. It also works well for "Save our office number" at the end of a successful booking.

How the AI uses your library

Once you have an interactive saved with a slug, your AI agent can send it on its own. Here is the high-level mechanism — without giving away the system-prompt internals:

  • Every interactive in your Library is exposed to the AI as an available tag — its slug, name, and a short description of when to use it.
  • When a customer message arrives, the AI auto-picks the most relevant interactive based on intent. A customer asking "what do you offer?" is likely to receive your menu Reply Buttons. A customer who says "where are you?" might receive your share-location Location Request.
  • You can nudge the AI by mentioning slugs in your AI System Prompt. For example: "When a customer asks about services, send the main-services list." The AI treats this as a strong hint without losing flexibility for off-script questions.

Practical example: a salon tenant builds a menu Reply Buttons interactive with three buttons — "See services", "Book now", "Talk to human". A customer messages "hi what do you do?". The AI recognises this as a discovery question, picks menu, and sends the buttons. The customer taps "Book now" and the AI handles the booking flow from there.

Test-send before going live

Every interactive in the Library has a Test send button. Click it, enter your own WhatsApp number (the one you have on your phone), and the message goes to you exactly as a customer would receive it.

Use this to verify:

  • Button labels render fully and are not truncated by Meta's character cap.
  • List sections and rows look right on mobile (you cannot see this from the dashboard preview alone).
  • CTA Button URLs open the correct destination.
  • vCard saves cleanly into your phone's contacts.

Never let a customer be the first one to see a brand-new interactive. Test send is free, takes seconds, and catches every "oops the button label was cut off" before it goes out at scale.

What it looks like on the customer side

When a customer taps a Reply Button or selects a List row, the choice comes back to your inbox as a regular reply message — the text content is the button label or row title they picked. Your AI agent sees it as if the customer had typed that text, and replies accordingly.

This means flows compose naturally: a customer taps "Book now", the AI receives the text "Book now", and routes them into the booking flow. CTA Buttons do not produce a reply (the customer just leaves to the URL), and Location Requests come back as a location bubble with lat/lon you can read in the conversation.

Pricing

Interactive messages are included in your existing Pro or Enterprise plan at no upcharge from Botline — no per-button fees, no per-list fees, no separate add-on. Author as many as you like in the Library and the AI uses them freely.

You pay Meta directly per WhatsApp Cloud API conversation rate (set on your Meta payment method during Cloud API setup). Interactive messages count as the same conversation type as text — there is no premium for tap-friendly UI.

Common pitfalls

  • Reply Button labels > 20 characters. Meta hard-caps Reply Button text at 20 characters. Anything longer is rejected at send time. Keep labels short and verb-led: "Book now", "Talk to human", "See menu".
  • More than three Reply Buttons. Three is the absolute max per message. If you need more options, use a List instead.
  • More than 10 rows per List section. Each List section is capped at 10 rows. Split long catalogues across multiple sections with clear headers.
  • Generic slugs. A slug like buttons-1 gives the AI no signal about when to use it. Use menu, book-now, share-location, sales-contact.
  • Forgetting to test on mobile. The dashboard preview is approximate — Meta renders the real thing. Test send to your own phone before any new interactive goes live.
  • Stacking CTA Buttons. One CTA Button per message. If the customer needs two destinations, send two messages or use Reply Buttons that map to URLs in your AI flow.

Build a small starter set — menu, book-now, share-location, sales-contact — and let your AI use them for a week. You will see which ones get tapped, which need rewording, and where to add the next one.

Ready to automate your WhatsApp?