Automation Templates for n8n, Kestra and Apache Airflow
Six workflow files, two for each tool. Free, MIT licensed, and downloadable without a signup.
Published , Last updated
What Are These Automation Templates?
Each template is a single file you import into your own n8n, Kestra or Apache Airflow instance: two n8n workflows as JSON, two Kestra flows as YAML, and two Airflow DAGs as Python. They solve problems every engineering team eventually hits, such as routing inbound leads, digesting CI failures, rolling up yesterday's data, watching an endpoint, and running the slow test suite on a schedule.
They are starting points, not finished production jobs. Every file has been written against its tool's current documented schema and checked to parse: the n8n JSON parses with no dangling node connections, the Kestra YAML parses with valid plugin types, and both DAGs compile. None have been run against a live instance, so read one before you schedule it. Each file names the credentials and secrets it needs, inside the file itself: a sticky note in the n8n workflows, the description field in the Kestra flows, and the module docstring in the Airflow DAGs. No template ships a credential, a token or a reference to an account you do not own.
Which Templates Are Available?
n8n
Event-driven glue. Webhooks in, SaaS APIs out, branching in a visual editor. The right tool when the work is reacting to something that just happened.
- n8nConsulting
Lead router
Contact-form submissions land in an inbox nobody owns, so the urgent ones wait behind the rest.
Trigger
A POST to an n8n webhook from your contact form.
- 1
Step 1
Normalize the submission into a flat record with a timestamp
- 2
Step 2
Branch on the enquiry type
- 3
Step 3
Post consultation requests to a priority Slack channel, everything else to the general inbox
- 4
Step 4
Email the sender an acknowledgement, then answer the webhook
Outcome
Every enquiry is visible in Slack within seconds, sorted, and the sender knows it arrived.
- Trigger
- A POST to an n8n webhook from your contact form.
- Steps
- 1.Normalize the submission into a flat record with a timestamp
- 2.Branch on the enquiry type
- 3.Post consultation requests to a priority Slack channel, everything else to the general inbox
- 4.Email the sender an acknowledgement, then answer the webhook
- Outcome
- Every enquiry is visible in Slack within seconds, sorted, and the sender knows it arrived.
- You supply
Slack credential with chat:write SMTP credential for the acknowledgement email
Download n8n workflow (JSON) - n8nCloud Solutions
Pipeline failure digest
CI notifications are either off, or so constant that nobody reads them.
Trigger
A schedule, every weekday at 09:00.
- 1
Step 1
Fetch the last 24 hours of GitLab CI pipelines for one project
- 2
Step 2
Count them by status and compute a pass rate
- 3
Step 3
Branch on whether anything failed
- 4
Step 4
Post a digest with the failing branches and their URLs, or stay silent
Outcome
One message on the mornings that need one, and nothing on the mornings that do not.
- Trigger
- A schedule, every weekday at 09:00.
- Steps
- 1.Fetch the last 24 hours of GitLab CI pipelines for one project
- 2.Count them by status and compute a pass rate
- 3.Branch on whether anything failed
- 4.Post a digest with the failing branches and their URLs, or stay silent
- Outcome
- One message on the mornings that need one, and nothing on the mornings that do not.
- You supply
GitLab API credential with read_api Slack credential with chat:write
Download n8n workflow (JSON)
Kestra
Declarative orchestration in YAML. Flows are plain files you can review in a merge request, which makes them the right shape for scheduled data work that has to be auditable.
- KestraCloud Solutions
Nightly Postgres rollup
Reporting queries run against the live orders table at whatever hour someone opens a dashboard.
Trigger
A schedule, 02:00 UTC every night.
- 1
Step 1
Aggregate yesterday's orders per customer in SQL, where the grouping is cheapest
- 2
Step 2
Render the result to a CSV in a Python task and log the headline numbers
- 3
Step 3
Expose the CSV as a flow output anyone can download from the execution
- 4
Step 4
Alert Slack if any step fails
Outcome
A dated rollup file every morning, and one alert instead of a silent gap when it breaks.
- Trigger
- A schedule, 02:00 UTC every night.
- Steps
- 1.Aggregate yesterday's orders per customer in SQL, where the grouping is cheapest
- 2.Render the result to a CSV in a Python task and log the headline numbers
- 3.Expose the CSV as a flow output anyone can download from the execution
- 4.Alert Slack if any step fails
- Outcome
- A dated rollup file every morning, and one alert instead of a silent gap when it breaks.
- You supply
POSTGRES_URL, POSTGRES_USERNAME and POSTGRES_PASSWORD secrets SLACK_WEBHOOK secret A Docker task runner for the Python step
Download Kestra flow (YAML) - KestraQuality Assurance
API uptime and latency check
An endpoint degrades on a Friday evening and the first report comes from a customer on Monday.
Trigger
A schedule, hourly.
- 1
Step 1
Call the endpoint with the latency budget enforced as the task timeout
- 2
Step 2
Compare the status code against the expected one
- 3
Step 3
Log a healthy result, or alert Slack and fail the execution
- 4
Step 4
Catch a timeout or an unreachable host in the error handler and alert on that too
Outcome
A degraded endpoint pages you within the hour instead of within the week.
- Trigger
- A schedule, hourly.
- Steps
- 1.Call the endpoint with the latency budget enforced as the task timeout
- 2.Compare the status code against the expected one
- 3.Log a healthy result, or alert Slack and fail the execution
- 4.Catch a timeout or an unreachable host in the error handler and alert on that too
- Outcome
- A degraded endpoint pages you within the hour instead of within the week.
- You supply
SLACK_WEBHOOK secret Network access from the Kestra worker
Download Kestra flow (YAML)
Apache Airflow
Python DAGs for pipelines with real dependencies, backfills and retries. Heavier than the other two, and worth it once a schedule has to be correct rather than merely regular.
- Apache AirflowCloud Solutions
Daily metrics rollup
A reporting job written as a cron script has no retries, no history and no way to backfill a missed day.
Trigger
A DAG schedule, 03:00 UTC daily.
- 1
Step 1
Extract the interval's raw events from an internal HTTP API
- 2
Step 2
Group them per channel and round the totals
- 3
Step 3
Publish the summary to a reporting endpoint
- 4
Step 4
Retry twice on a transient failure before the run goes red
Outcome
A rollup with a run history, a retry policy and a backfill you can trigger for any past day.
- Trigger
- A DAG schedule, 03:00 UTC daily.
- Steps
- 1.Extract the interval's raw events from an internal HTTP API
- 2.Group them per channel and round the totals
- 3.Publish the summary to a reporting endpoint
- 4.Retry twice on a transient failure before the run goes red
- Outcome
- A rollup with a run history, a retry policy and a backfill you can trigger for any past day.
- You supply
metrics_source_url, metrics_sink_url and metrics_api_token Airflow Variables requests on the worker, no provider packages
Download Airflow DAG (Python) - Apache AirflowQuality Assurance
Regression suite and report
The full regression suite is too slow for every commit, so it stops running at all.
Trigger
A DAG schedule, weekday mornings at 01:00 UTC.
- 1
Step 1
Run the suite in its checkout and keep the JUnit XML it writes
- 2
Step 2
Sum failures, errors and skips across every test suite in the report
- 3
Step 3
Publish a one-line summary to the task log and the run output
- 4
Step 4
Post to an alert webhook only when the suite is red
Outcome
The slow suite runs every weekday, and only interrupts anyone when it finds something.
- Trigger
- A DAG schedule, weekday mornings at 01:00 UTC.
- Steps
- 1.Run the suite in its checkout and keep the JUnit XML it writes
- 2.Sum failures, errors and skips across every test suite in the report
- 3.Publish a one-line summary to the task log and the run output
- 4.Post to an alert webhook only when the suite is red
- Outcome
- The slow suite runs every weekday, and only interrupts anyone when it finds something.
- You supply
regression_working_dir, regression_command and regression_alert_webhook Airflow Variables A worker that can run the suite: checkout, interpreter and dependencies
Download Airflow DAG (Python)
How Do I Run These Templates?
One import step per tool. Each links to that project's own documentation rather than paraphrasing it, because the import UI is the thing most likely to have moved since this page was written.
- 1
n8n
Open the workflow list, choose Import from File, and pick the downloaded .json. Every node arrives ready to configure. Attach your own credentials before activating.
According to n8n's export and import documentation, that is the supported path. Check it if your version's UI differs.
- 2
Kestra
Paste the YAML into Flows then Create in the UI, or commit it to the namespace directory your Git sync watches. Add the secrets named in the flow description first.
According to Kestra's flow documentation, that is the supported path. Check it if your version's UI differs.
- 3
Apache Airflow
Drop the .py file into your dags/ folder and wait for the scheduler to parse it. Set the Airflow Variables listed in the module docstring, then unpause.
According to Apache Airflow's TaskFlow documentation, that is the supported path. Check it if your version's UI differs.
Frequently Asked Questions
Are the CodeBrewerz automation templates free to use?
Yes. All six templates are MIT licensed and downloadable from codebrewerz.com/automations with no signup. Two are n8n workflows, two are Kestra flows and two are Apache Airflow DAGs. Use them, change them, ship them in commercial work. Attribution is welcome but not required.
Have the automation templates been tested on a live instance?
No. Each template is written against the current documented schema for its tool and is checked to parse: the n8n JSON parses with no dangling node connections, the Kestra YAML parses with valid plugin types, and the Airflow DAGs compile. None have been executed against a running n8n, Kestra or Airflow instance, so treat each one as a reviewed starting point rather than a finished production job. Every file lists the credentials and secrets it needs before it will run.
Which automation tool should I choose, n8n, Kestra or Airflow?
Choose n8n when the work is reacting to an event, such as a webhook or a new record in a SaaS tool, and the value is in the integrations rather than the logic. Choose Kestra when the work is scheduled, declarative and needs to be reviewable as YAML in a merge request. Choose Apache Airflow when the pipeline has real dependencies between steps and you need backfills, retries and run history. CodeBrewerz builds on all three and will say plainly when a cron entry would have done.
Want One of These Built Around Your Stack?
CodeBrewerz builds automations on n8n, Kestra and Apache Airflow, and will say plainly when a cron entry would have done.