> ## Documentation Index
> Fetch the complete documentation index at: https://docs.levios.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a carousel with an agent

> Plan image cards and a following CTA, validate the complete configuration, and create the automation through MCP.

Ask your connected agent to send a collection of image cards in an Instagram
DM. Give it the card titles, image URLs, button labels, destinations, and the
order you want. Mention any message you want after the cards.

For example: “When someone comments CATALOG, ask if they want to see my
collection. After they click, send my product cards, then invite them to my
group five seconds later. Help me review the messages before activating.”
Provide your actual images and links before saving. The agent can propose copy
but must not invent product facts or destinations.

## Use this agent skill

Copy the following instructions into `SKILL.md` in a folder named
`levios-carousel`, then use your client's supported skill mechanism. You can
also provide the text as task instructions. This does not install a connector,
grant permissions, or enable tools. The shared skill is in English and asks the
agent to answer in your language.

<Accordion title="SKILL.md">
  ```markdown theme={null}
  ---
  name: levios-carousel
  description: Plan, validate, and create an Instagram DM carousel with image cards and URL buttons through the levios MCP.
  ---

  Answer in the user's language. Use the current tools and schemas, not inferred
  fields. Start with get_automation_guide topic start to learn the connection's
  activation route. Resolve the accessible Instagram account.

  Collect missing card titles, public image URLs, optional subtitles, button
  labels and destinations. Keep the requested card/button order. There are 1 to 10
  cards and 1 to 3 URL buttons per card. Do not invent products, prices, images or
  links. Ask only for missing choices and preserve agreed copy.

  Read get_automation_schema section follow_up. Build send_carousel with an
  explicit delay_seconds and cards inside the complete configuration. Use the
  public shape, not a raw Meta generic template. For a comment-triggered sequence,
  keep the opening start_follow_up button. Explain that the eligible click starts
  the continuation; URL buttons do not resume the flow or renew the DM window.

  If the user wants a message after the cards, add a separate send_message action
  with its own delay_seconds. Do not assume that the recipient viewed a card,
  clicked a link or joined a group before this action. Keep gates before delivery.

  Call validate_automation_configuration with configuration_json and language.
  For an edit, also supply previous_configuration_json. Show the complete returned
  preview_markdown, then add the verified account, name, desired state and actual
  activation route. Fix only invalid fields and revalidate after changes.
  Validation does not check account eligibility, image retrieval or delivery.

  Use create_automation with the configuration object and the user's authorized
  status. Live creation still requires the connection's supported confirmation
  flow. If that route is unavailable, explain it and offer a draft or dashboard
  route without silently changing the request. Never fabricate confirmation.
  For updates, preserve the complete configuration and use expected_updated_at
  from a fresh get_automation read. Read back after writes. Distinguish saved,
  active, unpublished changes and actual provider delivery. Do not retry an
  uncertain creation blindly. There is no media upload tool.
  ```
</Accordion>

## Review the cards and the following action

The [carousel API guide](/guides/carousels) contains the field limits and a
complete configuration example. MCP uses that same public action shape.
`get_automation_schema` with `section: "follow_up"` exposes its current schema
when your client displays nested fields as unknown.

The action accepts 1 to 10 image cards and 1 to 3 URL buttons per card. Images
must be publicly accessible. There is no MCP upload tool; use an existing image
URL. The agent preserves the card order, optional subtitles, and every button.

For a comment-triggered continuation, the opening `start_follow_up` click
starts the sequence and opens or refreshes the applicable messaging window.
A card's URL button only opens its destination. A later `send_message` runs
according to its own delay after the preceding send succeeds; it does not wait
for the person to click a card or join a group. Follow requests and other gates
must remain in their supported position before delivery.

## Validate before writing

Call `validate_automation_configuration` with the complete configuration
encoded in `configuration_json` and the requested `language`. Include
`previous_configuration_json` when revising an agreed configuration. The agent
shows the full `preview_markdown`, including all cards, copy, buttons, URLs,
pauses, gates, and repeat policy. It adds the account, automation name, requested
status, and supported activation route separately.

Validation is read-only and checks structure and semantics. It does not check
account or plan eligibility, fetch images, test links, or send messages.
Invalid configurations have no preview. Correct the reported fields and
validate again without dropping unrelated choices.

## Save the requested state and read back

`create_automation` receives a `configuration` object, not the validator's JSON
string. Use the authorized `status: "draft"` or `status: "live"`. Live creation
requires the connection's permissions and supported confirmation flow. When
that route is unavailable, the agent explains the reason and offers the
available alternative. A planning answer does not replace activation
confirmation.

For changes, read `get_automation` first and use its `updated_at` as
`expected_updated_at`. Send a complete configuration through `update_automation`.
Read the automation again after writing and distinguish stored changes,
`has_unpublished_changes`, active status, and delivery. A successful save does
not prove the carousel arrived. Do not retry an uncertain create blindly.

See [Create your first automation in chat](/mcp/first-automation) for the full
planning workflow and [Instagram limits](/mcp/instagram-limits) for delivery
windows and pauses.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.