Skip to content
CodeBrewerz logoCodeBrewerz
Automations

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.

    1. Trigger

      A POST to an n8n webhook from your contact form.

    2. 1

      Step 1

      Normalize the submission into a flat record with a timestamp

    3. 2

      Step 2

      Branch on the enquiry type

    4. 3

      Step 3

      Post consultation requests to a priority Slack channel, everything else to the general inbox

    5. 4

      Step 4

      Email the sender an acknowledgement, then answer the webhook

    6. 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. 1.Normalize the submission into a flat record with a timestamp
    2. 2.Branch on the enquiry type
    3. 3.Post consultation requests to a priority Slack channel, everything else to the general inbox
    4. 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.

    1. Trigger

      A schedule, every weekday at 09:00.

    2. 1

      Step 1

      Fetch the last 24 hours of GitLab CI pipelines for one project

    3. 2

      Step 2

      Count them by status and compute a pass rate

    4. 3

      Step 3

      Branch on whether anything failed

    5. 4

      Step 4

      Post a digest with the failing branches and their URLs, or stay silent

    6. 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. 1.Fetch the last 24 hours of GitLab CI pipelines for one project
    2. 2.Count them by status and compute a pass rate
    3. 3.Branch on whether anything failed
    4. 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.

    1. Trigger

      A schedule, 02:00 UTC every night.

    2. 1

      Step 1

      Aggregate yesterday's orders per customer in SQL, where the grouping is cheapest

    3. 2

      Step 2

      Render the result to a CSV in a Python task and log the headline numbers

    4. 3

      Step 3

      Expose the CSV as a flow output anyone can download from the execution

    5. 4

      Step 4

      Alert Slack if any step fails

    6. 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. 1.Aggregate yesterday's orders per customer in SQL, where the grouping is cheapest
    2. 2.Render the result to a CSV in a Python task and log the headline numbers
    3. 3.Expose the CSV as a flow output anyone can download from the execution
    4. 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.

    1. Trigger

      A schedule, hourly.

    2. 1

      Step 1

      Call the endpoint with the latency budget enforced as the task timeout

    3. 2

      Step 2

      Compare the status code against the expected one

    4. 3

      Step 3

      Log a healthy result, or alert Slack and fail the execution

    5. 4

      Step 4

      Catch a timeout or an unreachable host in the error handler and alert on that too

    6. Outcome

      A degraded endpoint pages you within the hour instead of within the week.

    Trigger
    A schedule, hourly.
    Steps
    1. 1.Call the endpoint with the latency budget enforced as the task timeout
    2. 2.Compare the status code against the expected one
    3. 3.Log a healthy result, or alert Slack and fail the execution
    4. 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.

    1. Trigger

      A DAG schedule, 03:00 UTC daily.

    2. 1

      Step 1

      Extract the interval's raw events from an internal HTTP API

    3. 2

      Step 2

      Group them per channel and round the totals

    4. 3

      Step 3

      Publish the summary to a reporting endpoint

    5. 4

      Step 4

      Retry twice on a transient failure before the run goes red

    6. 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. 1.Extract the interval's raw events from an internal HTTP API
    2. 2.Group them per channel and round the totals
    3. 3.Publish the summary to a reporting endpoint
    4. 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.

    1. Trigger

      A DAG schedule, weekday mornings at 01:00 UTC.

    2. 1

      Step 1

      Run the suite in its checkout and keep the JUnit XML it writes

    3. 2

      Step 2

      Sum failures, errors and skips across every test suite in the report

    4. 3

      Step 3

      Publish a one-line summary to the task log and the run output

    5. 4

      Step 4

      Post to an alert webhook only when the suite is red

    6. 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. 1.Run the suite in its checkout and keep the JUnit XML it writes
    2. 2.Sum failures, errors and skips across every test suite in the report
    3. 3.Publish a one-line summary to the task log and the run output
    4. 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. 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. 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. 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.

Next step

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.

Talk to us about automation