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

# Flow starter templates: clone a working flow into your tenant

> Browse the built-in Flow Templates gallery in the Flows dashboard, clone a starter template into an editable draft, and pull the template catalog over the flows API.

# Flow Templates

Flow Templates are pre-built flow definitions the platform ships with every tenant. Clone one and it becomes an ordinary draft flow in your account — a working starting point you rename, edit, and publish like any flow you build yourself.

The catalog lives in two places that read the same data: the **Templates** tab in the dashboard, and the `GET /api/v1/flows/templates` endpoint.

## Where the catalog appears

Open the Templates tab either way:

* **Flows > Templates** — the third tab on the Flows hub.
* Deep-link — `…/flows?tab=templates`. The legacy `/flows/templates` path redirects to the tab URL, so existing bookmarks keep working.

The same catalog also surfaces inside the Flow Builder when you open it from a template card — covered in [What a template gives you](#what-a-template-gives-you).

## The gallery anatomy

The Templates tab header reads "Pre-built workflow templates to get you started quickly", with a **Create Blank Flow** button beside it. Under the header:

* **Search box** — matches against template name, description, and channel labels, so `survey`, `24h`, and `whatsapp` are all valid queries.
* **Category chips** — **All**, then the six categories the catalog uses: **Welcome**, **Reminder**, **Survey**, **Nurture**, **Escalation**, **Custom**.
* **Template cards** — each card shows the template's name and description, its category badge, a channel badge per channel it spans, its node count, and a schematic preview of the flow graph.
* **Incremental reveal** — the gallery renders nine cards at a time; **Show more** grows the list toward the full catalog, and narrowing the search or category resets the window.

If the catalog fails to load, the tab offers a **Retry** action. Filtering to nothing offers **Clear filters**, which resets both search and category.

## Clicking a template: what happens to the draft

**Use Template** on a card opens the Flow Builder with `?template=<id>` in the URL. The builder fetches the template's definition and drops its graph — canvas positions, node labels, and placeholder copy included — onto a fresh canvas as a new, unsaved draft.

A few specifics that matter when you edit it:

* **Nothing is wired to your account yet.** The trigger node carries a placeholder **Trigger Source** (for example "Schedule" on the reminder template); set it to a real number, sender, or schedule before you deploy.
* **The message copy is placeholder text.** Bodys and subjects ship with `{{...}}` placeholders such as `{{phone}}` and `{{otp}}`; replace the sample copy with your own wording.
* **Save creates a new flow.** The draft has no name or flow of its own until you save — at which point it is an ordinary flow that shares the template's shape but no longer references it. Editing the draft later never writes back to the catalog.
* **API parity for this path:** seeding a draft over the API is `GET /api/v1/flows/templates` (pick your template), then `POST /api/v1/flows` with the template's `definition` as your starting graph.

If the template id doesn't resolve (a mismatched or removed id), the builder shows a load-error state with a retry instead of a blank canvas.

## API parity

```bash theme={null}
curl -H "X-API-Key: dv_live_sk_..." \
  https://api.orbit.devotel.io/api/v1/flows/templates
```

The response is the standard envelope — a `data` array of templates, plus the usual `meta` (request id and timestamp). Each template object:

| Field          | Description                                                                                              |
| -------------- | -------------------------------------------------------------------------------------------------------- |
| `id`           | Stable `tpl_…` identifier — pass it as `?template=` to open the builder pre-seeded                       |
| `name`         | Display name, e.g. `Welcome SMS`                                                                         |
| `description`  | One-paragraph pitch shown on the card                                                                    |
| `trigger_type` | Coarse trigger (`event`, `webhook`, `schedule`); the fine-grained trigger kind lives inside `definition` |
| `category`     | One of the six gallery categories                                                                        |
| `channels`     | Channels the flow spans, e.g. `["SMS", "WhatsApp"]`                                                      |
| `nodeCount`    | Number of nodes in the graph                                                                             |
| `definition`   | A ready-to-clone flow graph (`nodes` + `edges`) in the same shape `POST /api/v1/flows` accepts           |

Reads are rate-limited like the rest of the flows read surface: **60 requests per minute** per API key. Callers need the `flows:read` scope.

## One example per category

Every category has a built-in starter. One representative per category, with the id you'd pass to clone it:

| Category   | Template id                | `trigger_type` | Channels      | What it does                                                                        |
| ---------- | -------------------------- | -------------- | ------------- | ----------------------------------------------------------------------------------- |
| Welcome    | `tpl_welcome_sms`          | `event`        | SMS           | Sends a welcome SMS when a new contact is created                                   |
| Reminder   | `tpl_appointment_reminder` | `event`        | SMS, WhatsApp | Two-stage reminder: 24-hour confirmation, then a 1-hour pre-appointment message     |
| Survey     | `tpl_customer_survey`      | `event`        | Email         | Emails a satisfaction survey 24 hours after a ticket resolves                       |
| Nurture    | `tpl_lead_nurture`         | `event`        | SMS, Email    | Multi-step nurture sequence over seven days for new leads                           |
| Escalation | `tpl_escalation`           | `webhook`      | SMS           | SMS-alerts the on-call team when a support issue goes unresolved                    |
| Custom     | `tpl_otp_verification`     | `webhook`      | SMS, WhatsApp | Sends a one-time password after a webhook fires, with a short delay before the send |

Other cataloged starters follow the same pattern — an abandoned-cart reminder, a lead-qualification score, a support FAQ deflector, and a few more.

## Known limits

The catalog is platform-shipped. Three consequences:

* **No per-tenant authoring** — you cannot register or save a template back into the gallery.
* **No versioning or deletion** — templates don't carry versions, and the catalog is not tenant-editable.
* **Clone, don't upload** — the supported way to keep a reusable flow shape is to own a draft shaped like it. Clone a starter with **Use Template** and save, or duplicate-define from a flow you already have: `GET` the flow, then `POST /api/v1/flows` with the same `definition` under a new name.

## Next steps

* [Flow Builder](/flows/builder) — edit the cloned draft
* [Flows overview](/flows/overview) — trigger catalog and node taxonomy
* [Flow Executions](/flows/executions) — inspect how a published flow runs
* [Flows API](/api-reference/endpoints/flows) — clone a template and manage flows over the API
