New to Kestra?
Use blueprints to kickstart your first workflows.
Run a staging Hightouch sync, notify Microsoft Teams, pause for human approval, then fire the production sync with a full reviewer audit trail in Kestra.
Promote a Hightouch reverse-ETL sync from staging to production behind a human approval gate, so no customer data lands in production tools until a reviewer signs off. This blueprint runs the staging sync, pages the data team in Microsoft Teams with the staging run details, pauses for review, and only then activates the production sync. It closes the gap between "the sync technically ran" and "someone confirmed the row counts are correct" before live audiences, CRMs, or ad platforms are touched.
run_staging (io.kestra.plugin.hightouch.Sync) runs the staging Hightouch sync identified by staging_sync_id and waits for completion, exposing the run ID and metrics.notify_approval (io.kestra.plugin.microsoft365.teams.TeamsIncomingWebhook) posts an Adaptive Card to Teams announcing that a production sync is awaiting approval, referencing the staging runId and the execution.id.approve_production (io.kestra.plugin.core.flow.Pause) halts the flow for up to approval_timeout (default PT4H) while a reviewer inspects the staging row counts.run_production (io.kestra.plugin.hightouch.Sync) fires the production sync identified by production_sync_id once the reviewer resumes the execution.notify_complete (io.kestra.plugin.slack.notifications.SlackIncomingWebhook) confirms in Slack that the approved production sync finished.Pause step that records the reviewer's identity and approval timestamp in execution history automatically.Hightouch's own scheduler can run a sync on a cron, but it cannot stop mid-pipeline, wait for a named human to approve, and then conditionally trigger a second sync. Kestra adds a real Pause approval gate, declarative YAML you can version control, automatic capture of reviewer identity and timestamp for lineage and audit, retries on transient API failures, and cross-tool coordination across Hightouch, Teams, and Slack in one execution.
HIGHTOUCH_API_TOKEN: API bearer token for Hightouch.TEAMS_WEBHOOK_URL: Microsoft Teams incoming webhook URL for the approval notification.SLACK_WEBHOOK_URL: Slack incoming webhook URL for the completion notification.You also need two Hightouch sync IDs: one pointing at a staging destination and one at the production destination.
Pause in the Kestra UI to fire the production sync.io.kestra.plugin.core.flow.If branch to auto-reject when staging row counts fall outside expected bounds.approval_timeout beyond four hours if your review process runs longer.