MESSAGING task on the Pagepages_messaging permissioneligible_platforms to include instagram, your app will also need:POST request to the graph.facebook.com/v25.0/PAGE_ID/welcome_message_flows endpoint.
curl -X POST \
-F 'welcome_message_flow=[
{"message":
{
"text":"This is a welcome message authored in a 3P tool",
"quick_replies":[
{
"content_type":"text",
"title":"Quick reply 1",
"payload":"Payload 1"
},
{
"content_type":"text",
"title":"Quick reply 2",
"payload":"Payload 2"
},
{
"content_type":"text",
"title":"Quick reply 3",
"payload":"Payload 3"
}
]
}
}
]' \
-F 'eligible_platforms=["messenger"]' \
-F 'name="Driver sign up"' \
"https://graph.facebook.com/v25.0/<PAGE_ID>/welcome_message_flows?access_token=<ACCESS-TOKEN>"
{"flow_id":"123456789"}
| Parameter | Type | Required? | Description |
|---|---|---|---|
name | string | yes | Name of the flow |
welcome_message_flow | JSON | yes | The welcome message JSON that will be sent upon clicking the ad |
eligible_platforms | Array of strings | yes | The platforms that the welcome message can be shown on ( ["instagram", "messenger"])Note: Each Welcome Message will be validated against the platform(s) specified and will only be accepted if the message type in the welcome message is supported on the specified platform(s). |
POST request to the graph.facebook.com/v14.0/PAGE_ID/welcome_message_flows endpoint with:flow_id parameter set to the ID of the flow being updatedname, welcome_message, platforms) that need to be updatedis_used_in_ad field to determine whether a flow is connected to an advertisement.curl -X POST\ -F 'flow_id="123456789"'\ -F 'eligible_platforms=["messenger", "instagram"]' \ -F 'name="Driver sign up - updated"' \ "https://graph.facebook.com/v14.0/{PAGE-ID}/welcome_message_flows?access_token={ACCESS-TOKEN}"
{"success":true}
| Parameter | Type | Required? | Description |
|---|---|---|---|
flow_id | string | yes | The identifier of the flow to update |
name | string | no | Name of the flow |
welcome_message_flow | JSON | no | The welcome message that will be sent upon clicking the ad |
eligible_platforms | Array of strings | no | The platforms that the flow can be applied to ( ["instagram", "messenger"]) |
GET request to graph.facebook.com/v14.0/PAGE-ID/welcome_message_flowscurl -X GET \ "https://graph.facebook.com/v14.0/{PAGE-ID}/welcome_message_flows?access_token={ACCESS-TOKEN}"
[ { "id":"123456789", "name":"Driver Sign up", "welcome_message":"<JSON String>", "eligible_platforms": ["instagram", "messenger"], "last_update_time":"2023-09-01T05:20:38+0000", "is_used_in_ad": false // indicates whether or not a flow is used in an ad }, { "id":"4362", "name":"Basic Triage", "welcome_message":"<JSON String>", "eligible_platforms": ["instagram"], "last_update_time":"2023-08-25T08:21:48+0000", "is_used_in_ad": true }, { "id":"234564", "name":"Appointment Schedule", "welcome_message":"<JSON String>", "eligible_platforms": ["messenger"], "last_update_time":"2023-08-20T07:43:00+0000", "is_used_in_ad": true } ... ... ..., { "id":"6987565", "name":"Car Leads", "welcome_message":"<JSON String>", "eligible_platforms": ["instagram", "messenger"], "last_update_time":"2023-07-21T05:21:48+0000", "is_used_in_ad": false }, ]
GET request to graph.facebook.com/v14.0/PAGE-ID/welcome_message_flows with the flow_id parameter set to the flow_id being queried.curl -X GET \ -F 'flow_id="123456789"' "https://graph.facebook.com/v14.0/{PAGE-ID}/welcome_message_flows?access_token={ACCESS-TOKEN}"
[ { "id":"123456789", "name":"Driver Sign up", "welcome_message":"<JSON String>", "eligible_platforms": ["instagram", "messenger"], "last_update_time":"2023-09-01T05:20:38+0000", "is_used_in_ad": false }, ]
| Parameter | Type | Required? | Description |
|---|---|---|---|
flow_id | string | no | The identifier of the flow to fetch |
limit | int | no | Maximum number of flows to fetch |
DELETE request to graph.facebook.com/v14.0/PAGE-ID/welcome_message_flows with the flow_id parameter set to the ID of the flow that is being deleted.is_used_in_ad field to determine whether a flow is connected to an advertisement.curl -X DELETE \ -F 'flow_id="1234567890"' "https://graph.facebook.com/v14.0/{PAGE-ID}/welcome_message_flows?access_token={ACCESS-TOKEN}"
{"success":true}
| Parameter | Type | Required? | Description |
|---|---|---|---|
flow_id | string | yes | The identifier of the flow to delete |




{ "name": "creative", "object_story_spec": {...}, "asset_feed_spec": { "additional_data": { "partner_app_welcome_message_flow_id": "<FLOW_ID_RETURNED_FROM_POST_REQUEST>" } } }