Custom & Template Blueprints in Kestra Enterprise – Private Templates
Available on:
How to create and manage Custom and Template Blueprints.
Custom blueprints – private templates
In addition to the publicly available Community Blueprints, Kestra allows you to create Custom Blueprints—private, reusable workflow templates tailored to your team. These blueprints help centralize orchestration patterns, document best practices, and streamline collaboration across your organization.
You can think of Custom Blueprints as your team's internal App Store, offering a wide range of integrations and validated workflow patterns tailored to your needs.
How to create a new Custom Blueprint
From the left navigation menu, go to Blueprints. Then, select the Custom Blueprints tab. Click on Create.
Add a title, description, and the contents of the flow. You can add as many tags as you want. Then click on the Create button.

You can edit Blueprints at any time, for example, to add new tasks or expand the documentation.
Templated Blueprints
Templated Blueprints allow you to create reusable, configurable workflows that users can instantiate without editing YAML. Instead of copying and modifying Blueprints, users fill in guided inputs and Kestra generates the complete flow automatically.
This approach democratizes workflow creation by letting platform teams build reusable templates once while enabling business users to generate production-ready workflows through a simple form interface.
How It Works: Templated Blueprints use Pebble templating, with custom delimiters to avoid conflicts with Kestra expressions.
Define Template Arguments
Template arguments define the inputs users must provide. To add them to your Blueprint, use the extend key with a templateArguments section:
extend:
templateArguments:
- id: values
displayName: An array of values
type: MULTISELECT
values:
- value1
- value2
- value3
All Kestra input types are supported. These arguments automatically generate a guided UI form.
Use Template Arguments
Use << >> delimiters to inject arguments into your flow:
message: Hello << arg.values >>
Loops & Conditions
For more advanced use cases, you can add logic using Pebble control blocks with <% %> syntax for:
- Conditions (
if/else) - Loops (
for) - Advanced templating logic
For example:
tasks:
<% for value in arg.values %>
- id: log_<< value >>
type: io.kestra.plugin.core.log.Log
message: Hello << value >>
<% endfor %>
This lets you dynamically generate tasks, conditionally include steps, and build complex workflows from simple inputs.
Solutions such as templatized Terraform configurations or using the Python SDK to make DAG factories are still valid ways to address similar templating needs. Templated Custom Blueprints offer a more direct, simpler and integrated approach within the Kestra platform.
Example: Data Ingestion Template
Here's an example showing a Templated Blueprint that generates data ingestion workflows based on user selections:
Was this page helpful?