Apache Airflow Provider for DingDing

raw JSON →
3.9.4 verified Fri May 01 auth: no python

A provider package for Apache Airflow that integrates with DingDing (DingTalk), allowing users to send notifications, trigger alerts, and interact with DingDing chatbot via Airflow operators and hooks. Current version 3.9.4, released as part of the Airflow provider ecosystem with regular updates aligned with Airflow release cadence.

pip install apache-airflow-providers-dingding
error ModuleNotFoundError: No module named 'airflow.providers.dingding'
cause Provider package not installed.
fix
Run pip install apache-airflow-providers-dingding or pip install apache-airflow[dingding].
error AirflowException: The conn_id `dingding_default` isn't defined
cause DingDing connection not configured in Airflow UI or environment.
fix
Add a connection with conn_id='dingding_default', conn_type='dingding', and extra={'access_token': 'your_token'}.
error AttributeError: module 'airflow.providers.dingding.hooks.dingding' has no attribute 'DingdingHook'
cause Old import path used.
fix
Use from airflow.providers.dingding.hooks.dingding import DingdingHook.
breaking Minimum Python version raised to 3.10; Python 3.8/3.9 no longer supported.
fix Use Python >=3.10, or pin to provider version <3.9.0 for Python 3.8/3.9.
deprecated DingdingHook.send_message() method is deprecated; use DingdingOperator or call hook with new API.
fix Switch to DingdingOperator or use DingdingHook.send() with keyword arguments.
gotcha Connection secret token must be exactly the 'access_token' field; do not include the entire webhook URL.
fix Set 'extra' JSON as {"access_token": "your_token"}, not the full URL.
pip install apache-airflow[dingding]

Minimal DAG using DingdingOperator to send a text message. Requires a DingDing connection configured in Airflow.

from airflow import DAG
from airflow.providers.dingding.operators.dingding import DingdingOperator
from datetime import datetime

with DAG('dingding_test', start_date=datetime(2024,1,1), schedule_interval=None, catchup=False) as dag:
    notify = DingdingOperator(
        task_id='send_dingding',
        dingding_conn_id='dingding_default',
        message_type='text',
        message='Hello from Airflow!',
    )