Instagram DM Quick Replies, Ice Breakers, and Generic Template: The Limits That Break Chatbots (2026)
Three different Instagram Messaging API objects power almost every DM chatbot and scheduler screen — and each one caps out at a different, easy-to-miss number. Get one wrong and nothing errors. The button, the question, or the carousel card just silently doesn’t show up.
Three objects, three separate limits
Ice Breakers, Quick Replies, and the Generic Template all live inside the same Instagram conversation, but Meta documents each one separately, with its own endpoint, its own character cap, and its own failure behaviour. A chatbot or automation SaaS build that treats them as one thing tends to stall the first time a limit is hit quietly.
Ice Breakers
Preset starter questions shown before a user sends their first message. Managed through the /messenger_profile endpoint — not the messages endpoint — and can be localized per locale. Not available on desktop.
Quick Replies
Preset reply buttons attached to a message. Text options truncate at 20 characters. Phone-number and email quick replies only render if the user’s profile actually has that field — otherwise the button is silently omitted, not shown as disabled.
Generic Template
A horizontally scrollable carousel of image + text + button cards. Titles and subtitles cap at 80 characters. Each card supports a maximum of 3 buttons, and only postback and web_url button types are supported — not phone-call buttons.
The access-level split that catches solo developers
Ice Breakers, Quick Replies, and the Generic Template all sit behind the same base requirement: the instagram_business_basic and instagram_business_manage_messages permissions, plus messages and messaging_postbacks webhook subscriptions. But the access tier those permissions need depends entirely on whose account the app is messaging on behalf of.
- Standard Access covers an app that only serves Instagram professional accounts the developer already owns or manages and has added directly in the App Dashboard — no Meta App Review needed for that use case.
- Advanced Access is required the moment the app serves Instagram professional accounts it does not own or manage — which is the normal case for any scheduler, chatbot platform, or agency tool built for other businesses — and that tier only comes through Meta App Review.
- The professional account itself has to be correctly connected before any of these objects can be set: a personal Instagram account cannot receive Ice Breakers, Quick Replies, or a Generic Template through this API at all.
The part that breaks builds silently: none of these three limits throw an error when exceeded in the obvious way. A 21-character quick reply is truncated, not rejected. A 5th ice breaker question is simply not accepted into the array Meta stores. A generic-template button reused from a Messenger bot build — like a phone-call button — is dropped because Instagram only accepts postback and web_url types on this object.
Where scheduler and chatbot builds commonly stall
- Reusing a Facebook Messenger button template directly for Instagram, assuming button-type support is identical between the two platforms — it is not.
- Assuming a phone-number or email quick reply will always render, then building a flow that breaks when a user profile is missing that field.
- Requesting Standard Access permissions for a multi-tenant scheduler that actually needs Advanced Access, because the app serves client accounts rather than the developer’s own.
- Sending Ice Breakers to the wrong endpoint — they are set via
/messenger_profile, while the actual conversation messages go through the separate/messagesendpoint. - Missing the
messaging_postbackswebhook subscription, so ice breaker and button taps never reach the app even though outbound sending works fine.
Getting the access tier, the permission set, and the App Review use-case description aligned with how the app actually messages Instagram users is the part that determines whether these objects work in production at all — not just in a single test conversation with an account the developer already owns.
The professional-account, permission, and access-tier requirements referenced above follow the same gate covered in Instagram Messaging API Approval: Getting instagram_business_manage_messages and What Is Meta Advanced Access. For help getting a chatbot, scheduler, or messaging SaaS through Meta App Review with these permissions in place, see the Instagram App Review service.