send_carousel in configuration.follow_up.actions to send image cards
in an Instagram DM. Each card has a title and link buttons. A message after the
cards is a separate action in the same sequence.
Card fields and limits
Card and button titles must not have leading or trailing whitespace. Character
limits count Unicode scalar values, which can differ from JavaScript string
length. Keep URLs valid, including their port and percent encoding.
Use the public
cards shape. Unknown properties such as elements and
default_action, or a card button with type: "postback", are rejected.
Prepare the images
Host each image at a URL that opens without login and keep it available until delivery. Cards accept images. The dashboard uploader accepts JPG, PNG, and GIF files up to 8 MiB. REST and MCP accept URLs and have no media upload operation. Configuration validation does not fetch an image or verify its file size; a saved configuration does not prove that Instagram can retrieve the media.Create a complete automation
This example sends an opening DM when a comment matches the keyword. Clicking itsstart_follow_up button begins the carousel sequence. Sending the opening
alone does not start it. Card URL clicks do not resume the sequence or refresh
the 24-hour messaging window.
Save this complete request body as carousel.json. Replace the example account
UUID with an accessible account ID and every example URL with your own URL.
The messages, keyword, five-second pause, disabled public replies, and cooldown
are illustrative choices. status: "draft" saves the example for review.
automations:write and account access:
status: "live" also requires automations:activate and account
eligibility. See Create an automation for the
response and uncertain-creation retry rules. Do not automatically repeat a
creation whose outcome is unknown.
Schedule the following message
Thesend_message action is separate from the card buttons. Its
delay_seconds is relative to the preceding action’s successful completion.
The example schedules the group invitation five seconds after the carousel
send succeeds. It does not wait for a card view, link click, or group join.
Configured waits must fit the applicable messaging window. Delays and retries
do not extend the window. Shared account pacing and provider cooldowns can
postpone a send beyond its configured pause. This is separate from the HTTP
API’s rate limits; creating an automation is not a
promise of immediate delivery or a fixed messages-per-hour quota.
Read, edit, and handle errors
Get the automation after writing and check its stored card order, buttons, following action, and status. When editing, send the full configuration and a freshexpected_updated_at through
Update an automation. Configuration replacement
is not a partial card patch. Follow that endpoint’s publication rules for live
automations with unpublished changes.
Invalid fields return 422 with api_automation_invalid_configuration and
issues in error.details.issues. Check the reported path: too many cards,
a fourth button, an invalid URL, or a missing required delay needs correction.
Preserve unrelated configuration when repairing an issue.
Clients that enumerate follow-up action types must handle send_carousel in
both requests and returned configurations. Read the current
OpenAPI document before building an exhaustive decoder.
For the same workflow through an agent, use Carousels with MCP.
