Appearance
Fresh 2026
Ice Breakers
Ice Breakers provide a way for your app users to start a conversation with a business with a list of frequently asked questions. A maximum of 4 questions can be set via the Ice Breaker API.<br>This feature is currently not available on desktop.<br>## Requirements<br>This guide assumes you have read the Instagram Platform Overview and implemented the needed components for using this API, such as a Meta login flow and a webhooks server to receive notifications.<br>You will need the following:<br>#### Access Level<br>- Advanced Access if your app serves Instagram professional accounts you don't own or manage<br>- Standard Access if your app serves Instagram professional accounts you own or manage and have added to your app in the App Dashboard<br>#### Access tokens<br>- An Instagram User access token requested from a person who can manage comments on the Instagram professional account<br>#### Base URL<br>All endpoints can be accessed via the graph.instagram.com host.<br>#### Endpoints<br>- GET /<YOUR_APP_USERS_YOUR_APP_USERS_IG_ID>/messenger_profile<br>- POST /<YOUR_APP_USERS_YOUR_APP_USERS_IG_ID>/messenger_profile<br>- DELETE /<YOUR_APP_USERS_YOUR_APP_USERS_IG_ID>/messenger_profile<br>You can also use the /me/messenger_profile endpoints. | ! |
IDs
- The ID for your app user's Instagram professional account
Permissions
instagram_business_basicinstagram_business_manage_messages
Webhook event subscriptions
messagesmessaging_postbacks
Create Ice Breakers
To create ice breakers, send a POST request to the /<YOUR_APP_USERS_IG_ID>/messenger_profile endpoint, where <YOUR_APP_USERS_IG_ID> is the ID for your app user's Instagram professional account, and include the platform property set to instagram and the ice_breakers property with a call_to_actions array of question and payload objects.
Sample request
Formatted for readability.
curl
curl -X POST -H "Content-Type: application/json"
-d '{
"platform": "instagram",
"ice_breakers":[\
{\
"call_to_actions":[\
{\
"question":"<QUESTION_1>",\
"payload":"<PAYLOAD_FOR_QUESTION_1>"\
},\
{\
"question":"<QUESTION_2>",\
"payload":"<PAYLOAD_FOR_QUESTION_2>"\
}\
],\
},\
]
}' "https://graph.instagram.com/v25.0/<YOUR_APP_USERS_IG_ID>/messenger_profile?access_token=<INSTAGRAM_USER_ACCESS_TOKEN>"You can set a call_to_actions array for each locale you include.
On success your app receives a JSON response with success set to true.
Sample request with multiple locales
To create ice breakers for multiple locales, include the locale property and call_to_actions array for each locale.
Formatted for readability.
curl
curl -X POST -H "Content-Type: application/json"
-d '{
"platform": "instagram",
"ice_breakers":[\
{\
"call_to_actions":[\
{\
"question":"<QUESTION_1>",\
"payload":"<PAYLOAD_FOR_QUESTION_1>"\
},\
{\
"question":"<QUESTION_2>",\
"payload":"<PAYLOAD_FOR_QUESTION_2>"\
}\
],\
"locale": "zh_CN",\
"call_to_actions":[\
{\
"question":"<QUESTION_1_zh_CN>",\
"payload":"<PAYLOAD_FOR_QUESTION_1_zh_CN>"\
},\
{\
"question":"<QUESTION_2_zh_CN>",\
"payload":"<PAYLOAD_FOR_QUESTION_2_zh_CN>"\
}\
]\
}\
]
}' "https://graph.instagram.com/v25.0/<YOUR_APP_USERS_IG_ID>/messenger_profile?access_token=<INSTAGRAM_USER_ACCESS_TOKEN>"List Ice Breakers
To get a list of your ice breakers, send a GET request to the /me/messenger_profile endpoint, where me is the ID for your app user's Instagram professional account, with the fields parameter set to ice_breakers.
Sample request
Formatted for readability.
curl
curl -X GET "https://graph.instagram.com/v25.0/me/messenger_profile
?fields=ice_breakers
&access_token=<INSTAGRAM_USER_ACCESS_TOKEN>"On success your app receives a JSON response with an array of call_to_actions properties that include questions and payloads and locales, if applicable.
json
{
"data": [\
{\
"call_to_actions" : [\
{\
"question": "<QUESTION_1>",\
"payload": "<PAYLOAD_1>",\
\
},\
{\
"question": "<QUESTION_2>",\
"payload": "<PAYLOAD_2>",\
\
},\
],\
"locale": "<LOCALE_1>",\
},\
{\
"call_to_actions" : [\
{\
"question": "<QUESTION_3>",\
"payload": "<PAYLOAD_3>",\
\
},\
{\
"question": "<QUESTION_4>",\
"payload": "<PAYLOAD_4>",\
\
},\
],\
"locale": "<LOCALE_2>",\
}\
]
}Delete ice breakers
To delete ice breakers, send a DELETE request to the /<YOUR_APP_USERS_IG_ID>/messenger_profile endpoint, where <YOUR_APP_USERS_IG_ID> is the ID for your app user's Instagram professional account, with the fields parameter set to an array that includes ice_breakers.
Sample request
Formatted for readability.
curl
curl -X DELETE -H "Content-Type: application/json" -d '{
"fields": [\
"ice_breakers",\
]
}' "https://graph.instagram.com/v25.0/me/messenger_profile?access_token=<INSTAGRAM_USER_ACCESS_TOKEN>"On success your app receives a JSON response with success set to true.
Webhook Notifications
When the messaging_postback event webhook is triggered, we will send your webhook server a notification with a JSON object that includes the following:
idset to your app user's Instagram professional accounttimeset to when the notification was sentmessaging.sender.idset to the Instagram-scoped ID for the Instagram user who click a questionmessaging.recipient.idset to our app user's Instagram professional account who is receiving the notificationmessaging.timestampset to when the user clicked on the questionmessaging.postback.titleset to the question the Instagram user selectedmessaging.postback.payloadset to the content associated with the question that was chosen
json
{
"object": "instagram",
"entry": [\
{\
"id": "<YOUR_APP_USERS_IG_ID>",\
"time": <UNIX_TIMESTAMP>,\
"messaging": [\
{\
"sender": {\
"id": "<IGSID>"\
},\
"recipient": {\
"id": "<YOUR_APP_USERS_IG_ID>"\
},\
"timestamp": <UNIX_TIMESTAMP>,\
"postback": {\
"title": "<USER_SELECTED_ICEBREAKER_QUESTION>",\
"payload": "<QUESTION_PAYLOAD>",\
}\
}\
]\
}\
]
}Next steps
You've received a notification that an Instagram user clicked on an ice breaker, now send the user a response.