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

# Channel-native nodes

> Emitting Apple Messages primitives from inside a flow — and the three that can't be configured yet.

A flow is not limited to text. The `send_amb_primitive` node emits a native [Apple Messages for Business](/channels/apple-messages) primitive — a real list picker or time picker rendered by the Messages app, not a numbered list the customer has to type a reply to.

This is what separates a flow on AMB from a flow on SMS. The customer taps; the reply comes back structured.

## All eight primitives appear in the picker

| Primitive | Use it for |
| - | - |
| **Simple Message** | Text, quick replies and attachments |
| **Rich Link** | A tappable card with an image or video |
| **List Picker** | A native list — the only primitive with dependable identifiers on return |
| **Time Picker** | Appointment slots picked natively |
| **Form** | Multi-page guided input collected inside Messages |
| **Apple Pay** | Coming soon |
| **OAuth** | Coming soon |
| **iMessage Extension** | Coming soon |

Each is configured on the node with a `primitive_type` and the primitive's own payload. For the first
five, the payload shape is exactly the one documented in [Rich Feature Messages](/channels/apple-messages/rich-feature-messages) — a flow does not use a different schema.

<Warning>
  **Apple Pay, OAuth, and iMessage Extension are coming soon.** All eight primitives have a backend
  builder, so a node set to any of them is technically valid — but these three have no configuration
  modal. A node you can't configure sends nothing at runtime, silently. Build with the other five until a
  modal ships for these three.

  That gap tracks a reasonable boundary rather than an oversight: taking a payment, authenticating
  someone, or handing off to a custom app surface are decisions that want context and judgement. Until
  these three are configurable, reach a point like that with `assign_to_agent` and let the [AI
  agent](/agents) — or a human — take it from there.
</Warning>

## Use List Picker where the answer matters

Worth repeating here because it bites in flows specifically.

Quick replies on Simple Message return **only their label text** — the `key` you set does not come back. A `branch_on_reply` node matching those branches is effectively matching on visible copy.

So a copy change to a quick reply can silently break the branch that depends on it, and localisation multiplies the problem.

<Tip>
  **If a `branch_on_reply` depends on the choice, send a List Picker rather than quick replies.** It
  returns dependable identifiers, so the branch survives a copy change. Reserve quick replies for
  low-stakes two-or-three-option prompts.
</Tip>

See [Known limitations](/channels/apple-messages/limitations).

## Other channels

`send_amb_primitive` is Apple-specific. On other channels a flow sends text via `send_message`, and the channel renders whatever it renders.

<Note>
  **Design the fallback, not just the best case.** A flow that only makes sense with a rendered List
  Picker degrades badly on SMS. If the same flow can trigger on more than one channel, put the essential
  information in text and let the rich primitive enhance it.
</Note>

## Next

<CardGroup cols={2}>
  <Card title="Rich Feature Messages" icon="sparkles" href="/channels/apple-messages/rich-feature-messages">
    All eight primitives, their payloads and constraints.
  </Card>

  <Card title="Node types" icon="boxes" href="/chatbot/nodes">
    The full node set, including what is not yet available.
  </Card>

  <Card title="Branching and variables" icon="split" href="/chatbot/branching">
    Matching on a reply, and what survives a copy change.
  </Card>

  <Card title="Testing and simulation" icon="flask-conical" href="/chatbot/testing">
    Verifying a primitive renders before a customer sees it.
  </Card>
</CardGroup>


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