airflow-hitl

Coordinate human approvals and inputs in Airflow 3.1+ workflows via UI or REST API using HITL operators.

Updated Feb 6, 2026
One-click install
npx skills add https://github.com/beauschwab/airflow-dbt-datahub --skill airflow-hitl-beauschwab
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: airflow-hitl
Source: https://github.com/beauschwab/airflow-dbt-datahub/tree/main/.agents/skills/airflow-hitl
Command: npx skills add https://github.com/beauschwab/airflow-dbt-datahub --skill airflow-hitl-beauschwab

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Provide human-in-the-loop capabilities in Airflow by offering deferrable HITL operators (ApprovalOperator, HITLOperator, HITLBranchOperator, HITLEntryOperator) that pause a DAG for a human decision via UI or API. Requires Airflow 3.1+ and does not cover AI/LLM calls (see airflow-ai).

Core Features & Use Cases

  • Deferrable HITL operators to pause DAGs for approvals, form inputs, and branching decisions
  • UI and REST API-based responses for human responders
  • Support for approval gates, multi-step forms, and conditional task branching
  • Production-grade deferrable workflow controls tailored for governance and data pipelines

Quick Start

Create a simple DAG that uses ApprovalOperator to pause until a human approves, then resume downstream tasks.

Frequently Asked Questions about airflow-hitl

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add human approval steps to an Airflow DAG?

Add human approval steps to an Airflow DAG by using deferrable HITL operators like ApprovalOperator that pause the workflow until a human responder approves or rejects the task via UI or REST API. This stops downstream tasks until a decision is made.

Can I pause an Airflow workflow to wait for manual data entry?

Yes, you can pause an Airflow workflow for manual data entry by using the HITLEntryOperator. It defers the DAG execution and collects form input from a human responder through the UI or REST API before resuming downstream tasks.

Does this human-in-the-loop approach work with older Airflow versions?

No, this human-in-the-loop approach requires Airflow 3.1 or newer. The deferrable HITL operators, including HITLBranchOperator and HITLEntryOperator, depend on features introduced in Airflow 3.1+ to properly pause and resume DAGs.

What is the best way to handle conditional task branching based on human input in Airflow?

The best way to handle conditional task branching based on human input in Airflow is using the HITLBranchOperator. It pauses the DAG to receive a human decision via UI or API and then routes the workflow to the appropriate downstream tasks.

Can I integrate human-in-the-loop Airflow approvals with an external REST API?

Yes, human-in-the-loop Airflow approvals support REST API integration. Responders can approve, reject, or provide data to paused DAGs through REST API calls, enabling automation of the response pipeline outside the Airflow UI.

Does this Skill support human-in-the-loop controls for AI or LLM calls in Airflow?

No, this Skill does not cover human-in-the-loop controls for AI or LLM calls in Airflow. It focuses on governance, approval gates, and manual data entry for data pipelines using deferrable operators, while a separate Skill addresses AI and LLM integrations.