Activation Pipelines
Push enriched data from your warehouse back to SaaS applications to operationalize your analytics.
Overview
Activation Pipelines (Reverse ETL) sync enriched or modeled data from your warehouse to operational tools like CRM platforms, marketing automation, and customer success applications.
Unlike Ingestion Pipelines that bring data into your warehouse, Activation Pipelines push data that's already been transformed in your warehouse back to SaaS applications where it drives business actions.
Common use cases:
- Calculate lead scores in Snowflake and sync to Salesforce
- Push unified customer profiles to support and marketing tools
- Sync product usage data to your CRM
- Activate churn risk scores to customer success platforms
Prerequisites: At least one active warehouse datasource and one active SaaS destination.
To access: Navigate to Pipelines in the sidebar, then click Create Pipeline → Create Activation.
Creating an Activation Pipeline
To start:
- Navigate to Pipelines in the sidebar
- Click Create Pipeline dropdown → Create Activation
- The activation pipeline wizard opens with 4 steps:
Step 1: Configure Activation
The warehouse source is pre-selected based on your project. Configure your pipeline settings below.
Pipeline Settings
Availability Note
Not every pipeline setting or option is available for every connector. Supaflow reads source and destination capabilities and only enables supported options. Options shown in the UI reflect what your selected source and destination can actually do.
UI Note
To keep the wizard focused, Supaflow shows only 4 core settings by default in this step. All other supported settings are under Advanced Settings.
Sync Settings
| Setting | Description | Options |
|---|---|---|
| Ingestion Mode | How data should be synced from source | • Historical + Incremental (default) - Full sync first, then ongoing changes • Historical Only - Full data sync every run • Incremental Only - Only new and changed data |
| Error Handling Mode | How to handle errors during sync | • Continue with Warnings (default) - Log errors but keep processing • Abort on Any Error - Stop when errors occur |
| Full Sync Object Refresh Frequency | How often objects that do not support incremental ingestion are synced. Disabled when Ingestion Mode is Historical Only. | • Every Run - Resync on every pipeline execution • Daily - Resync every day • Weekly (default) - Resync every 7 days • Monthly - Resync every 30 days • Never - Only run once (initial sync), then skip |
| Full Resync Frequency | How often all objects are forced into a complete resync, regardless of incremental support. Disabled when Ingestion Mode is Historical Only. | • Never (default) - No scheduled full resync; only incremental syncs after initial load • Daily - Force full resync every day • Weekly - Force full resync every 7 days • Monthly - Force full resync every 30 days |
Load Settings
| Setting | Description | Options |
|---|---|---|
| Load Mode | How data should be loaded into the destination | • Merge (default) - Insert new and update existing records • Append - Add new records only |
| Perform Hard Deletes | Permanently delete records from destination when deleted from source | • No (default) - Keep all records • Yes - Delete records |
| Data Validation Level | Level of data integrity validation during sync | • None (default) - No validation • Row Count - Validate row counts • Schema and Count • Column Statistics • Full Integrity |
To proceed: Click Continue.
Step 2: Choose Destination
Select the SaaS application where enriched data will be activated.
Only active SaaS destinations are available (Salesforce, HubSpot, etc.). Warehouse destinations are not shown since they're the source in activation pipelines.
To proceed: Click Continue.
Step 3: Configure Activation
Select warehouse tables and map fields to destination objects.
Select Tables
- Browse your warehouse catalogs → schemas → tables
- Check boxes to select tables containing enriched data
- Click Refresh Schema if a newly created table doesn't appear
- Click Done to finalize table selection
Map Fields
After selecting tables, click the X fields Mapped link to configure field mappings.
Mapping Screen:
- Source Table: Shows your warehouse table columns (left panel)
- Destination Object: Auto-detected SaaS object with dropdown to change (top right)
- Field Tabs: All, Unmapped, Mapped
- Auto Map button: Automatically match fields using names and data types
- Clear Mapping button: Remove all mappings to start over
To map fields:
- Verify the destination object is correct (e.g., Salesforce Lead)
- Click Auto Map to automatically match fields
- Review the mappings - ensure merge key is set (e.g.,
SALESFORCE_ID→Id) - Set a cursor key on the source side (see below)
- Click Unmapped tab to verify no required fields are missing
- Click Apply Mapping to save
Note: The merge key is required for Merge load mode. It's typically the SaaS record ID that matches warehouse rows to existing destination records.
Cursor Key Selection
In the mapping pane, each source field has a Set Cursor button. Clicking it designates that field as the cursor key for incremental sync tracking.
Why this matters: The cursor key tells Supaflow which field to use for tracking changes between runs (typically a LAST_MODIFIED_DATE or UPDATED_AT timestamp column). Without a cursor key, the object cannot run incrementally. It runs in historical mode only when historical sync is due (or when a full resync is forced), and may be skipped on runs where a historical sync is not due.
How to set a cursor key:
- In the mapping pane, find the timestamp column in the source fields list (left panel)
- Click the Set Cursor button next to the field -- it turns blue and shows Cursor Key
- Only one source field can be the cursor key per table (single selection)
- Click the button again to unset it if you need to change your selection
When cursor key selection is locked:
- If the source connector already defines a cursor field (e.g.,
SystemModstampfor Salesforce), it is pre-selected and locked -- you cannot change it - Objects with
CONNECTOR_MANAGEDorUNSUPPORTEDincremental strategy also have cursor selection disabled
If a source table has no cursor key set and the connector does not provide one automatically, the object cannot run incrementally. It runs historical syncs based on your historical cadence (for example, Full Sync Object Refresh Frequency) and can be skipped on non-due runs. Always set a cursor key on a timestamp or monotonically increasing column when one is available.
To proceed: Click Continue after mapping all tables.
Step 4: Review & Save
Review pipeline settings and field mappings.
Pipeline Name: Auto-generated from source/destination names. Click the pencil icon to edit, then click the green checkmark to save.
To create: Click Create Activation.
You'll be redirected to the pipeline detail page where you can view settings, schema, and run the pipeline.
Notification Preferences
The Settings tab also includes Notification Preferences, which controls email notifications for this specific pipeline. You can enable or disable notifications for failures, warnings, and successes independently.
These settings override your workspace-wide notification defaults. To revert to workspace defaults, click Use workspace defaults.
When you create a pipeline, Supaflow automatically subscribes you to failure and warning notifications.
Running an Activation Pipeline
To run manually:
- Navigate to Pipelines in the sidebar
- Find your activation pipeline
- Click the ... menu → Sync Now
Or from the pipeline detail page, click the Sync Now button.
What happens next:
- A success message appears: "Sync request was successfully submitted"
- Click the View activity link to monitor the activation run
- The activity begins processing immediately
Monitoring Activation Runs
After clicking Sync Now, navigate to Activities in the sidebar to monitor activation execution.
Each activity shows status (Queued → Running → Completed or Failed), object counts, and row metrics. Click an Activation Run to view detailed per-object breakdowns with stage-level metrics.
For comprehensive monitoring details: See the Activities documentation.
Managing Activation Pipelines
Access pipeline management options from the three-dot menu (•••) on the pipeline detail page.
Resync Data
Force a full data resync from the warehouse, ignoring incremental state.
When to use:
- Source data changed and needs complete refresh
- Need to re-sync all historical data
- Recovering from data quality issues
To resync: Click ••• → Resync Data
Disable Pipeline
Pause the pipeline to prevent it from running.
When to use:
- Temporarily stop syncing without deleting the pipeline
- Destination credentials expired and need updating
- Maintenance or troubleshooting
To disable: Click ••• → Disable Pipeline
Note: Disabled pipelines won't run on schedule. Re-enable by clicking ••• → Enable Pipeline.
Edit Pipeline
Modify pipeline settings or field mappings.
What you can edit:
- Pipeline name and description
- Sync settings (ingestion mode, error handling)
- Load settings (load mode, validation level)
- Field mappings
To edit: Click ••• → Edit Pipeline
You'll be redirected to the pipeline wizard to make changes.
Delete Pipeline
Permanently remove the pipeline and its configuration.
To delete: Click ••• → Delete Pipeline
⚠️ Warning:
- Deletion is permanent and cannot be undone
- Activity history is preserved for audit purposes
- Data already loaded in the destination is not deleted
Troubleshooting
Pipeline Won't Create
Problem: Error about missing datasources.
Solution: Ensure at least one warehouse datasource and one SaaS destination have status Active.
Table Not Showing in Object Selection
Problem: Just created a warehouse table but it doesn't appear.
Solution: Click Refresh Schema in Step 3, confirm "Yes, Refresh", and wait for schema discovery to complete. Verify the table exists and Supaflow has permissions to read it.
Auto-Mapping Selected Wrong Object
Problem: Auto-mapper picked incorrect destination object or fields.
Solution: Click the destination object dropdown to change it, or click Clear Mapping then Auto Map again. Manually adjust any incorrect field mappings.
Activation Completes but No Data in Destination
Problem: Activity shows Completed but destination has no updated records.
Solution: Check activity detail row counts. If 0 rows loaded, verify the merge key is mapped correctly (e.g., SALESFORCE_ID → Id). Without a merge key in Merge mode, records may not update. Check for API errors in the expanded object view.
Merge Creates Duplicates Instead of Updating
Problem: Activation creates duplicate records instead of updating existing ones.
Solution: Verify the merge key field is mapped correctly (source ID → destination ID). Without a merge key, Merge mode defaults to append behavior.
Object Always Runs Full Sync Instead of Incremental
Problem: A table re-reads all rows on every run even though the pipeline is set to Historical + Incremental mode.
Solution: Open the mapping pane for that table and check whether a cursor key is set on a source field. If no field shows the blue Cursor Key badge, click Set Cursor on a timestamp column (e.g., UPDATED_AT, LAST_MODIFIED_DATE). Without a cursor key, Supaflow cannot track changes incrementally and will use historical runs based on cadence (or skip when not due).
Related Pages
- Activities - Monitor activation execution
- Schedules - Automate activation runs
- Ingestion Pipelines - Bring data into your warehouse first
- Orchestrations - Chain ingestion → transformation → activation workflows
Support
Need help? Contact us at support@supa-flow.io