Skip to content

Blueprints & Templates

Blueprints & Templates

Blueprints are pre-built flow definitions that can be instantiated to create new flows. They serve as templates for common automation patterns.

What Blueprints Are

A blueprint is a flow marked as a template. It defines the full structure — steps, modules, argument patterns — but is not executed directly. Teams create blueprints for patterns they reuse across projects or clients.

Common blueprint use cases:

  • Standard ETL pipeline (fetch → transform → load → notify)
  • Client onboarding workflow (create accounts → send welcome email → set up integrations)
  • Invoice processing template (receive → extract → validate → approve → pay)
  • Scheduled report distribution (query → format → send)

Creating a Blueprint

Mark any flow as a blueprint:

Terminal window
PUT /api/flows/{flowId}
{
"isBlueprint": true,
"name": "Standard Invoice Processor"
}

Instantiating from a Blueprint

Create a new flow from a blueprint:

Terminal window
POST /api/flows/{blueprintId}/instantiate
{
"name": "ACME Corp Invoice Processor",
"category": "Finance"
}

The resulting flow is a full copy of the blueprint with its own independent lifecycle. Changes to the blueprint do not affect existing instances.

Blueprint Variables

Use placeholder expressions in blueprints that the instantiator fills in:

{
"args": {
"recipientEmail": "{{ $blueprint.defaultRecipient }}",
"sourceUrl": "{{ $blueprint.dataSourceUrl }}"
}
}

When instantiating, provide values for these blueprint variables:

{
"name": "ACME Report Flow",
"blueprintVars": {
"defaultRecipient": "finance@acme.com",
"dataSourceUrl": "https://api.acme.com/reports"
}
}

Managing Blueprints

Terminal window
# List all blueprints
GET /api/flows?isBlueprint=true
# Get blueprint details
GET /api/flows/{blueprintId}
# Update blueprint (doesn't affect existing instances)
PUT /api/flows/{blueprintId}
# Delete blueprint
DELETE /api/flows/{blueprintId}