Use this skill when the user wants to convert an Airflow task that uses FivetranOperator or FivetranSensor (apache-airflow-providers-fivetran) into an equivalent Orchestra pipeline task. Triggers: any mention of migrating or rewriting Fivetran Airflow tasks to Orchestra; Airflow DAG code containing FivetranOperator or FivetranSensor.
91%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Airflow's FivetranOperator triggers a Fivetran connector sync and optionally waits for it. FivetranSensor polls a running sync. In Orchestra the equivalent is a Sync task under the FIVETRAN integration — it triggers and waits in a single task.
| Airflow parameter | Orchestra YAML field | Notes |
|---|---|---|
fivetran_conn_id | connection: | The name of the Orchestra connection to Fivetran (stores API key + secret) |
connector_id | parameters.connector_id | Fivetran connector ID string — copy verbatim |
wait_for_completion=True | (always) | Orchestra always waits |
schedule_type / reschedule_for | (not needed) | Scheduling is handled by Orchestra pipeline schedule |
task_id | name: | Human-readable task name |
upstream >> chains | depends_on: | List upstream task names/UUIDs |
version: v1
name: <pipeline-name>
pipeline:
<stage-uuid>:
tasks:
<task-uuid>:
integration: FIVETRAN
integration_job: FIVETRAN_SYNC_ALL
name: <task_id value from Airflow>
connection: <orchestra-fivetran-connection-name>
parameters:
connector_id: <fivetran-connector-id>
depends_on: []
condition: null
tags: []FivetranOperator. Note connector_id and fivetran_conn_id.FivetranSensor — Orchestra's sync task already polls.>> chains to depends_on:.reschedule_for, schedule_type are Fivetran-scheduler concepts; Orchestra's pipeline schedule replaces them.from fivetran_provider_async.operators import FivetranOperator
sync_salesforce = FivetranOperator(
task_id="sync_salesforce",
fivetran_conn_id="fivetran_prod",
connector_id="bronzing_regularly",
wait_for_completion=True,
)version: v1
name: my-pipeline
pipeline:
stage-001:
tasks:
task-001:
integration: FIVETRAN
integration_job: FIVETRAN_SYNC_ALL
name: sync_salesforce
connection: fivetran_prod_12345
parameters:
connector_id: bronzing_regularly
depends_on: []
condition: null
tags: []bronzing_regularly), not UUIDs.FivetranOperator + FivetranSensor pattern: both collapse into a single Orchestra task.DBT_CORE task with depends_on pointing to the Fivetran task.If the Airflow DAG uses on_failure_callback or on_success_callback for Slack/email notifications, replace those with an alerts block in the pipeline YAML. Alerts fire based on overall pipeline status and support Slack, Email, PagerDuty, Microsoft Teams, and Webhook destinations.
version: v1
name: my-pipeline
alerts:
- name: on-failure
statuses:
- FAILED
destinations:
- integration: SLACK
destination: '#data-alerts'
custom_message: 'Optional context message.'
- name: on-success
statuses:
- SUCCEEDED
destinations:
- integration: SLACK
destination: '#data-alerts'
pipeline:
# ... tasks unchangedValid statuses: FAILED, SUCCEEDED, CANCELLED, WARNING, SKIPPED. Multiple alerts with different destinations are supported — each needs a unique name. See the slack-airflow-to-orchestra skill for full schema details.
orchestra-hq/orchestra-skills
a200887
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.