Skip to content

Workbench Pipelines

Workbench Pipelines let you chain enrichment steps into automated workflows that run whenever new data arrives. Instead of manually triggering AI extraction, waterfall enrichment, and formula columns one at a time, define a pipeline once and let it process every incoming row automatically.

Pipelines are configured per workbench table and trigger on specific ingest events — email PDF uploads, webhook payloads, scraper bot results, or manual imports.

How It Works

  1. Open a workbench table and click the Pipeline tab
  2. Click New Pipeline or choose a pre-built template
  3. Configure the start event — what triggers this pipeline (email PDF, webhook, scraper bot, or import)
  4. Add steps to the pipeline — AI extraction, waterfall enrichment, formula evaluation, branching, or export to list
  5. Drag steps to reorder them, or add branch conditions to route data through different paths
  6. Click Save — the pipeline runs automatically whenever matching data arrives

Pipeline Builder

The visual pipeline builder shows your workflow as a connected chain of steps. Each step card displays its type, name, and a summary of its configuration.

Start Events

Every pipeline begins with a start event that determines when it triggers:

Start TypeWhen It TriggersUse Case
Email PDFA PDF is received via email ingestProcessing resumes, invoices, or inbound documents
WebhookData arrives via the table’s webhook endpointIntegrating with external tools or APIs
Scraper BotA scraper bot delivers resultsProcessing web-scraped company or contact data
ImportRows are added via CSV, paste, CRM import, or searchEnriching newly imported batches automatically

For email PDF and webhook start events, you can configure expected source types and fields so the pipeline knows what data to extract.

Step Types

Add steps in any order. Each step runs after the previous one completes.

StepWhat It DoesConfiguration
AI GroupRuns AI extraction using a saved column groupSelect an existing AI column group or create one inline
WaterfallRuns waterfall enrichment on a columnSelect a waterfall-configured column
FormulaEvaluates a formula expression and writes the resultUses the G8X expression engine — see formula syntax
BranchRoutes rows through different paths based on a conditionConfigure field, operator, and value — rows go to “if true” or “else” path
Export to ListSends the row to a contact or company listChoose destination list and map fields

Branching

Branch steps split the pipeline into two paths based on a condition. Configure the condition using a field name, an operator, and a value:

OperatorExample
Equalsstatus equals qualified
Not equalstier not equals disqualified
Containstitle contains VP
Greater thanscore greater than 70
Less thanscore less than 30
Is emptyemail is empty
Is not emptyphone is not empty

Rows matching the condition follow the “if true” path. All others follow the “else” path. Each path can have its own steps.

Templates

The pipeline builder includes pre-built templates to get started quickly:

TemplateStepsUse Case
Email PDF ExtractionAI extraction → formula scoring → exportProcessing inbound resumes or documents
Webhook RoutingAI classification → branch → exportRouting webhook data based on content
Import ClassificationAI analysis → formula tagging → exportCategorizing newly imported contacts
SDR Candidate GradingResume extraction → location detection → scoring → tier mapping → narrative → exportFull candidate evaluation pipeline

Click a template to scaffold the pipeline with pre-configured steps. You can then customize each step’s settings.

Formula Expressions

Pipeline formula steps use the G8X expression engine — a safe, deterministic formula language. Formulas can reference any field in the row using dot notation.

Common Functions

CategoryFunctions
StringUPPER, LOWER, TRIM, CONCAT, SPLIT, JOIN, REPLACE, SUBSTRING, LEFT, RIGHT
MathADD, SUB, MUL, DIV, MOD, MIN, MAX, FLOOR, CEIL, ROUND, ABS
LogicIF, AND, OR, NOT, EQ, GT, GTE, LT, LTE
TypeTO_NUMBER, TO_STRING, IS_EMPTY, COALESCE, DEFAULT
JSONGET, KEYS, VALUES, LENGTH, INCLUDES, FIND

Examples

Score a contact based on title and location:

IF(INCLUDES(LOWER(title), "vp"), 90, IF(INCLUDES(LOWER(title), "director"), 70, 50))

Classify a row by source:

IF(IS_EMPTY(email), "no-email", IF(INCLUDES(email, "@company.com"), "internal", "external"))

Combine first and last name:

CONCAT(TRIM(first_name), " ", TRIM(last_name))

Async Processing

Pipelines process data asynchronously. When rows arrive, graph8 evaluates which pipelines match the start event and enqueues each step for background processing. This means:

  • No timeouts — large batches process reliably without blocking the UI
  • Retry on failure — failed steps retry automatically with exponential backoff
  • Progress tracking — the grid updates in real time as each step completes

AI and waterfall steps are distributed across multiple workers for throughput. Formula steps execute immediately since they require no external calls.