Skip to content

Template Buttons

Also called: Template button · Template button types · BUTTONS component · WhatsApp template CTA buttons · Template quick replies

The tappable actions a WhatsApp template can carry — quick reply, URL, call, copy-code, OTP, Flow and catalogue buttons — up to 10 per template.

Reviewed

What is a template button?

Template buttons are the action component of a WhatsApp message template. A template can carry up to 10 buttons in total, chosen from several types: quick reply buttons that send a short reply back to the business, URL buttons that open a web page, a phone number button that opens the dialler, a voice call button that starts a WhatsApp call, a copy-code button that puts a coupon on the clipboard, an OTP button for authentication templates, and special-purpose buttons that open a WhatsApp Flow, a catalogue or a multi-product message.

Each type has its own limits. Quick replies: up to 10. URL buttons: up to 2, each URL up to 2,000 characters with at most one variable, at the end. Phone number: 1, the number up to 20 characters. Copy code: 1. Button text is capped at 25 characters, and the voice call button's label at 20. Buttons must also form two contiguous groups — all quick replies together, all other buttons together — so quick reply, quick reply, URL, phone is valid while URL, quick reply, URL is rejected.

How buttons display matters as much as the rules. With more than three buttons, WhatsApp shows two and puts the rest behind a “See all options” button, and templates with four or more buttons, or quick replies mixed with another type, cannot be viewed on WhatsApp desktop — recipients are asked to open their phone. Template buttons are defined at creation and approved with the template. They are not the same as the reply buttons of a non-template interactive message, which allows 3 buttons and can only be sent inside an open customer service window.

Key takeaways

  • Template buttons are the tappable actions a WhatsApp template carries, defined at creation and approved with the template.
  • A template can have up to 10 buttons: up to 10 quick replies, 2 URL buttons, 1 phone number button and 1 copy-code button.
  • Quick replies must form one contiguous group, separate from all other button types, or the template is rejected.
  • With more than three buttons, WhatsApp shows two and hides the rest behind "See all options"; desktop cannot show such templates.
  • Non-template interactive messages allow only 3 reply buttons and only inside an open customer service window.

See InfiQ pricing

Interactive stop

Every template button type, side by side

8 / 8
Every template button type, side by side. 8 rows by 3 columns. Each cell is a button: activate it to read its note, and use the arrow keys to move between cells.
LimitFilled at send timeOn tap
Quick reply
URL
Phone number
Voice call
Copy code
OTP (authentication)
Flow
Catalogue / multi-product

Hover, tap or arrow-key through the cells — a dot in the corner means there is a note.

Catalogue / multi-product by Limit

MPM: 30 items, 10 sectionsIn-chat experiences

Needs a catalogue connected to the WhatsApp Business Account.

Legend — press one to highlight its cells

Eight button types against their limits, what you fill in at send time and what a tap does. Select any cell for the detail, or use the legend to highlight one family of buttons.

Row 8 of 8. Catalogue / multi-product × Limit: MPM: 30 items, 10 sections. Needs a catalogue connected to the WhatsApp Business Account.

How does a template button work?

  1. Pick the action, then the type

    Answer in the chat: quick reply. Open a page: URL. Speak to someone: phone number or voice call. Use a code: copy code for a coupon, an OTP button for authentication. Fill in a form or book a slot: Flow.

  2. Define buttons at creation

    Add a BUTTONS component with a buttons array. Each entry has a type and text; URL buttons add url (plus an example when the URL has a variable), phone buttons phone_number, copy-code buttons an example code.

  3. Order them in two groups

    Keep all quick replies together and all other buttons together, and put the action most people need first, since only two may show inline.

  4. Fill dynamic parts at send time

    In the send request, add a button component per dynamic button with its sub_type (url, quick_reply, copy_code, flow) and zero-based index, then its parameter: a URL suffix, a quick-reply payload, a coupon_code or a Flow token.

  5. Handle the taps

    Quick-reply taps arrive on your webhook as inbound button messages carrying the payload you set; URL clicks appear in template analytics; Flow responses arrive as nfm_reply interactive messages.

A template button: key facts and limits

Buttons per template
Up to 10
Quick reply
Up to 10
URL
Up to 2; 2,000 characters; 1 variable at the end
Phone number
1; number up to 20 characters
Copy code
1; code up to 20 characters
Button text
25 characters (voice call label 20)
Shown inline
Up to 3; more puts the rest behind “See all options”
Non-template reply buttons
3, inside the service window only

A template button in code

{
"type": "BUTTONS",
"buttons": [
{ "type": "QUICK_REPLY", "text": "Confirm" },
{ "type": "QUICK_REPLY", "text": "Reschedule" },
{ "type": "URL", "text": "View booking",
"url": "https://book.example.in/b/{{1}}",
"example": ["https://book.example.in/b/APPT-8812"] },
{ "type": "PHONE_NUMBER", "text": "Call the salon", "phone_number": "+912240001234" }
]
}

Quick replies first, then the other buttons: two contiguous groups. Four buttons means two show inline.

Common mistakes with a template button

  • Breaking the two groups

    URL, quick reply, URL is rejected because quick replies must sit together. Order buttons as all quick replies, then all other types (or the reverse).

  • Hiding the main action

    With four or more buttons only two show inline and desktop users cannot view the message at all. Keep important templates to three buttons, with the main action first.

  • Putting the variable mid-URL

    A URL button allows one variable and only at the end. Use a short path on your own domain, such as /b/{{1}}, and resolve query parameters on your server.

  • Confusing template buttons with reply buttons

    Non-template interactive messages allow 3 reply buttons and work only inside the customer service window; templates allow 10 and can start a conversation. Pick the format for the situation, not the button count.

  • Sending quick replies without payloads

    Without a payload you only get the button text back, which cannot tell you which booking or order was meant. Set a payload per send that identifies the record.

Best practices for a template button

  • Start labels with a verb and keep them well under 25 characters so they never truncate.
  • Use payloads that carry the record ID (CONFIRM_APPT_8812), not just the choice.
  • Add UTM tags to URL-button links so clicks can be attributed beyond template analytics.
  • Test every template with four or more buttons on a phone, because desktop recipients cannot view it.

Example: A salon reminder with three taps

A Mumbai salon's appointment reminder carries quick replies “Confirm” and “Reschedule” and a phone number button “Call the salon”. Confirm taps arrive on the webhook with the payload CONFIRM_APPT_8812 and mark the booking confirmed; Reschedule taps route the chat to the front desk, where staff reply inside the service window the tap has just opened. With three buttons nothing hides behind “See all options”, but because quick replies are mixed with a call button, desktop users are asked to open their phone — a trade-off the salon accepts for a reminder most people read on mobile anyway.

— A salon reminder with three taps

Why does a template button matter?

Buttons turn a message into an action — tracking an order, paying, confirming an appointment, copying a code — and they are where most measurable engagement happens, since template analytics count clicks per button. Choosing the right type and the right number decides whether the customer acts in one tap or has to hunt behind “See all options” or switch devices. For developers, button payloads and indexes are what connect a tap back to the right record.

Template Buttons FAQs

How many buttons can a WhatsApp template have?+
Up to 10 in total, within per-type limits: 10 quick replies, 2 URL buttons, 1 phone number button and 1 copy-code button.
Can I mix quick replies and URL buttons?+
Yes, as long as the quick replies form one group and the other buttons another. Mixed templates cannot be viewed on WhatsApp desktop, so recipients there are asked to use their phone.
Why does my template show only two buttons?+
When a template has more than three buttons, WhatsApp shows two and moves the rest behind a “See all options” button.
Does a quick-reply tap open the customer service window?+
Yes. The tap arrives as an inbound message from the customer, which opens a 24-hour window for free-form replies.

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.