What are Flows?
Flows is Connie’s product name for the combined Tables + Workflows system. Tables hold your structured data; Workflows orchestrate logic and AI on top of that data. Together they let you build anything from a one-off enrichment pipeline to a long-running multi-agent system — without writing infrastructure code. If you’ve used Airtable or Notion databases, Tables will feel familiar. If you’ve used n8n, Zapier, or LangGraph, Workflows will feel familiar. Connie folds both into one product so you don’t have to wire two systems together.Tables
A Table is a typed grid of rows. Columns are called properties; rows are called items.Typed columns
Text, number, select, date, relation, formula, JSON, and more. Each property has a type that determines how cells render and validate.
Filtering & sorting
Client-side filters, sorts, column visibility, and pagination powered by TanStack Table. Save filter sets as views.
Relations
Link rows across tables — a contact belongs to a company, a deal belongs to an account. Relations render as clickable chips.
Formulas
prop("Column Name")-style expressions with math, string, and logic operators. Includes an AI formula assistant that writes formulas from a prompt.Importing data
Tables ship with first-class importers:- CSV upload — drag-and-drop with auto-detected column types, a mapping step, and dedup modes (skip / overwrite / allow duplicates)
- Apollo — pull contacts directly from an Apollo search
- Pipe0 — connect a Pipe0 pipeline as a source
- People — bring Apollo contacts into a Contacts-shaped table
Transforms
Once data is in, the column menu surfaces transforms that would normally require SQL:- Text to columns — split a single column into multiple by delimiter
- Split name — turn
Full Nameintofirst_name+last_name - Run formula — evaluate a formula across the whole column
- Duplicate column — copy a property with all its data
- Bulk delete / bulk duplicate / bulk empty — apply across thousands of rows
Workflows
A Workflow is a directed acyclic graph (DAG) of nodes. You build it visually in the Flow Builder — drag nodes onto a canvas, wire them with edges, configure each node inline.Node types
Triggers
Three ways a workflow starts:- Manual — hit the Run button in the Flow Builder
- Scheduled — cron expression on a trigger node, evaluated server-side
- Data event — when a row is created or updated in a watched table, Supabase Realtime fires the workflow with the row payload
is_trigger_enabled toggle to pause a flow while you debug it, then re-enable.
The Flow Builder
The builder is a Reactflow-powered visual editor:- Drag-drop nodes from the side panel onto the canvas
- Inline config — click a node, edit its inputs in a side panel
- Live test — run a single node with mocked input to verify its config before wiring it in
- Live execution status — when the workflow runs, each node lights up (
running/completed/error) in real time as state streams via Supabase Realtime
Live runs
When a workflow runs — whether triggered manually, by data, or by a schedule — its state streams back to every open tab.- Per-node status badges update as nodes start and finish
- Run history is browsable: pick any past run and replay its state, inputs, and outputs node-by-node
Tables ↔ Workflows
The two halves connect at the trigger and write layers:- Data triggers —
table_row_created/table_row_updatedtriggers fire a workflow when rows change. Used for “on add, enrich” or “on update, sync to CRM”-style automations. - Write-back — the
spreadsheet_writenode persists a row back into a table. Closes the loop on enrichment, scoring, and tagging flows. - Query nodes — read rows from a table mid-flow to make routing decisions or feed AI nodes.
Common workflows
Enrich every new contact
- Add a workflow with a
table_row_createdtrigger watching the Contacts table - Add a LinkedIn-enrich node, wired from the trigger
- Add a
spreadsheet_writenode to update the row with enriched fields - Save and arm — every new contact gets enriched within seconds
Outbound sequence
- Build a list table with one row per prospect
- Create a workflow with a manual trigger that iterates over the list
- Per-prospect: draft a personalised email with an LLM node, send it via an email action, wait N days, send a follow-up
- Run once — Connie processes the whole list in parallel batches
Inbound triage
- Build a workflow with a
table_row_createdtrigger watching your Inbox messages table - Add a router node that classifies inbound messages by content
- Branch into per-category sub-flows —
sales,support,partnerships— each handling its own response or routing logic
API reference
Tables
CRUD tables, properties, items, and cells.
Workflows
Create, run, and inspect workflow definitions.
Workflow Builder
Configure and test individual nodes from your own client.
Jobs
Inspect and manage workflow runs.