Skip to main content

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. 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 chipsAll, 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

The response is the standard envelope — a data array of templates, plus the usual meta (request id and timestamp). Each template object: 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: 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