Skip to main content

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 PipelineCreate Activation.


Creating an Activation Pipeline

To start:

  1. Navigate to Pipelines in the sidebar
  2. Click Create Pipeline dropdown → Create Activation
  3. 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

SettingDescriptionOptions
Ingestion ModeHow 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 ModeHow 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 FrequencyHow 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 FrequencyHow 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

SettingDescriptionOptions
Load ModeHow data should be loaded into the destination• Merge (default) - Insert new and update existing records
• Append - Add new records only
Perform Hard DeletesPermanently delete records from destination when deleted from source• No (default) - Keep all records
• Yes - Delete records
Data Validation LevelLevel 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

  1. Browse your warehouse catalogs → schemas → tables
  2. Check boxes to select tables containing enriched data
  3. Click Refresh Schema if a newly created table doesn't appear
  4. 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:

  1. Verify the destination object is correct (e.g., Salesforce Lead)
  2. Click Auto Map to automatically match fields
  3. Review the mappings - ensure merge key is set (e.g., SALESFORCE_IDId)
  4. Set a cursor key on the source side (see below)
  5. Click Unmapped tab to verify no required fields are missing
  6. 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:

  1. In the mapping pane, find the timestamp column in the source fields list (left panel)
  2. Click the Set Cursor button next to the field -- it turns blue and shows Cursor Key
  3. Only one source field can be the cursor key per table (single selection)
  4. 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., SystemModstamp for Salesforce), it is pre-selected and locked -- you cannot change it
  • Objects with CONNECTOR_MANAGED or UNSUPPORTED incremental strategy also have cursor selection disabled
Objects without a cursor key

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:

  1. Navigate to Pipelines in the sidebar
  2. Find your activation pipeline
  3. 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_IDId). 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).



Support

Need help? Contact us at support@supa-flow.io