Schedule a mapping and watch its runs
A saved MapCraft mapping isn't a pipeline until it runs on its own. FlowBridge turns it into one: a schedule fires your published DAG on a cron or fixed interval, a webhook trigger lets an upstream system kick it off, the Runs tab shows every execution, and a failure webhook pings Slack or Teams the moment a run breaks.
By the end of this page you will have:
- Published a DAG and attached a cron or interval schedule.
- Seen scheduled runs land in the Runs history with their status.
- Wired an optional failure-alert webhook and confirmed the payload shape.
- Created an HMAC-signed webhook trigger for upstream-driven runs.
- A MapCraft project with a published DAG (open
/flowbridge/{projectId}— if you see "publish the DAG from the canvas", do that first). - For alerts: a Slack or Teams incoming-webhook URL (any endpoint that
accepts a JSON
{"text": ...}body works).
Step 1 — Add a schedule
Open FlowBridge → Schedule for your project. Click + Add schedule and pick a cadence:
| Cadence | Field | Example |
|---|---|---|
| Cron | 5-field expression | 0 6 * * * — every day at 06:00 |
| Fixed interval | seconds (≥ 30) | 900 — every 15 minutes |
The scheduler tick runs every 30 seconds, so interval cadences are honored to the nearest tick and cron cadences round to the minute boundary.
Step 2 — Add a failure-alert webhook (optional)
In the same form, paste a Failure webhook URL. When any run of this DAG fails, DataChord POSTs a compact, Slack/Teams-compatible payload:
{
"text": "❌ DataChord: DAG run failed — project Order Sync (run 1a2b3c4d): …",
"datachord": {
"event": "dag.run.failed",
"run_id": "…", "project_id": "…", "trigger": "scheduled",
"error": "…", "failed_at": "2026-06-13T06:00:12Z"
}
}
The URL is SSRF-checked when you save it (private/internal hosts are rejected
unless your deployment sets NOTIFY_WEBHOOK_ALLOW_PRIVATE_URLS=true).
Step 3 — Watch the runs
Open FlowBridge → Runs. Each execution shows a status badge (success / running / failure / partial), the trigger that started it (manual, scheduled, or webhook), the lane, and the record count. Click a failed row to expand the full error message.
Step 4 — Create a webhook trigger (upstream-driven)
If an upstream system should drive the pipeline instead of a clock, add a
webhook trigger on the Schedule page. DataChord returns a one-time secret
and a URL of the form /api/v1/execution/dags/{dagId}/webhook-trigger. The
caller signs the request body with HMAC-SHA256:
X-DataChord-Trigger-Id: <trigger id>
X-DataChord-Signature: sha256=<hex HMAC of the raw body>
A valid signature spawns a run with trigger="webhook", visible in the Runs
tab alongside scheduled runs.
Verify
- A schedule you created shows a
next_fire_attime and, after it fires, alast_fired_atand a new row in Runs. - Forcing a failing run delivers the JSON alert to your Slack/Teams webhook.