Skip to main content

Your first workflow

Tutorial

Walk through building a real end-to-end workflow: read rows from PostgreSQL, transform them, and load into Snowflake. Same shape as most production integrations.

Prerequisites

This walkthrough assumes you've finished Quickstart (account + first connection + first run). It also assumes you have a Snowflake account; if you don't, the Library Project labs let you exercise the same flow against shipped sample data without external systems.

Step 1: Create the project

From Projects, click New Project, choose Starter Project (creates a Start, Source, Target, Decision, two Target template), and name it CRM Lead Sync (or similar). The starter graph is a good base; we'll customise it next.

Step 2: Register the source connection (PostgreSQL)

  1. Connections page
    Click New Connection. Pick PostgreSQL.
  2. Fill the basics
    Host, port (5432), database, user, password. Mark the connection scope (Project or Global).
  3. Add an environment override
    Add an Environment Setting so DEV/QA/Prod can point at different databases without changing the connection.
  4. Test Connection
    Verifies the credentials and lets the wizard save.
  5. Save
    The connection appears in the list under the project's scope.

Step 3: Register the target connection (Snowflake)

Same wizard, pick Snowflake. Snowflake supports two auth modes:

  • Password -- username + password + account + warehouse + database + schema + role.
  • Keypair -- username + account + warehouse + database + schema + role + private key (+ optional passphrase). Recommended for service-account use.

Test Connection. Save.

Step 4: Wire the flow

On the canvas:

  1. Source
    Configure with the Postgres connection. Pick the table or write a SELECT in script mode.
  2. Transform
    Open the Map Fields modal. Drag source columns to target columns. Use expressions for derived fields, lookups, or coalesce.
  3. Load
    Configure with the Snowflake connection. Pick the destination table. Choose mode: Append, Replace, or Merge by key.
  4. Wire them
    Click and drag from each node's output port to the next node's input port. Source -> Transform -> Load.

Step 5: Quick Debug Run

Click Quick Debug Run (10 rows) in the canvas header. The runtime pulls 10 rows from Postgres, walks them through Transform, and dry-runs the Load. The right-rail Inspector shows per-node row counts and payload samples. Iterate on the mapping until the Load preview looks right.

Step 6: Deploy as a Job

Open Jobs, click New Job, pick the project + workflow + environment, set a cron schedule (e.g. hourly), and save. The Runtime Executions page picks up the next scheduled run.

Step 7: Watch it run

Open Monitor -> Runtime Executions. The latest run shows status, duration, per-node row counts, and logs. Click into a run to expand per-node detail; the payload sample shows the actual rows that moved.

Where to go next