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

# Interactions

> Parts of a Message the person can act on with a tap, drawn by the app under the words.

An interaction is a Message part the person can act on. It rides in the same `parts` array as text and media, on the same send call, with the same idempotency key, and comes back in the same read. There is no separate endpoint and no separate event: what the person does with it arrives as an ordinary `message.received`.

Only an agent can send an interaction. The app draws it, the person acts on it, and the result reaches your agent as an ordinary Message. Each [integration](/integrations/index) lists its supported interactions and send path in its "What it can do" table.

<CardGroup cols={2}>
  <Card title="Buttons" href="/interactions/buttons">
    One to five tappable choices under a Message, or a single button that opens a page. A tap comes back as text equal to the label.
  </Card>

  <Card title="Selection" href="/interactions/selection">
    Choose several options, then send one readable reply with stable values for your application.
  </Card>

  <Card title="Cards" href="/interactions/cards">
    Send a card built from A2UI components, read each tap, and change the card in place.
  </Card>

  <Card title="Browser" href="/interactions/browser">
    Show your agent's live browser in a card. The person watches it work and takes control when it needs them.
  </Card>

  <Card title="Payments" href="/interactions/payments">
    Ask the person to pay with a Pay card, on your organization's own Stripe account.
  </Card>
</CardGroup>

New interactions are added here as parts, never as endpoints.

## Next steps

* [Buttons](/interactions/buttons)
* [Selection](/interactions/selection)
* [Cards](/interactions/cards)
* [Browser](/interactions/browser)
* [Payments](/interactions/payments)
* [Send a message](/messages/send)
