Sea12Docs
Getting Started

Concepts Overview

High-level map of all core concepts — schemas, processes, nodes, execution, data flow — and how they relate.


The Big Picture

The platform is a visual workflow automation engine. You define what your data looks like (schemas), then define what happens to that data (processes). Processes are triggered by events (emails, webhooks, schedules), execute a graph of nodes, and produce outputs.

Schema (data shape)
  └── Data Block (entity)
        └── Data Point (field)

Process (workflow)
  ├── Input Node (trigger)
  ├── Processing Nodes (transform, extract, decide)
  ├── Output Node (deliver result)
  └── Edges (connections between nodes)

Execution (single run of a process)
  ├── Node States (status of each node)
  ├── Data Bucket (all intermediate results)
  └── Execution History (audit trail)

Schemas

A schema is a reusable data model. It defines the structure of information your workflows process.

Data Blocks

A schema contains one or more data blocks. Each data block represents an entity or message type — think of it as a table or a JSON object definition.

Example: A Steel Order schema might have two data blocks:

  • Order Request — the incoming request fields
  • Quote — the outgoing quote fields

Data Points

Each data block contains data points (fields). Every data point has:

PropertyDescription
Nameweight_lbs — field identifier
Typestring, number, boolean, date, date-time, time, enum, datablock
DescriptionWhat this field contains (used by the LLM during schematization)
ConfigType-specific settings (enum values, nested datablock reference, etc.)

Schema Edges

Edges connect data blocks within a schema. An edge can have coupling functions that define how data transforms from one block to another. This is used during schematization when extracting related data blocks from the same input.

See Schemas In-Depth for full details.


Processes

A process is a directed acyclic graph (DAG) of nodes connected by edges. It defines a workflow that transforms input data into output.

Nodes

Nodes are the building blocks of a process. Each node has:

  • A type (input, output, script, ML model, schematization, conditional, loop, etc.)
  • A label (display name, used in template references)
  • A config (type-specific settings stored as JSON)
  • A position (x, y coordinates on the canvas)

Edges

Edges connect one node's output port to another node's input port. Data flows along edges. A node can have multiple input edges (aggregating data from several upstream nodes) and multiple output edges (fanning out to several downstream nodes).

Process Lifecycle

Created → Editing → Locked → Running → Stopped
                  ↑                    │
                  └────────────────────┘
  • Editing: Add/remove/configure nodes and edges
  • Locked: Prevents accidental changes while running in production
  • Running: Input listeners are active, waiting for triggers
  • Stopped: Listeners shut down, no new executions start

See Processes In-Depth for full details.


Node Types

Nodes fall into five categories:

Input Nodes (Triggers)

Start a process execution when an event occurs.

NodeTrigger
Gmail InputNew email matching filters arrives
Outlook InputNew Outlook email matching filters arrives
API Input (Webhook)HTTP POST to the process webhook URL
Scheduled InputCron expression fires on schedule

Processing Nodes

Transform, analyze, or route data.

NodePurpose
SchematizationExtract structured data from unstructured text using LLM + schema
ML ModelSend a prompt to an LLM and get a response
ScriptRun Python code with access to input data
ConditionalBranch execution based on conditions or switch-case
LoopIterate over arrays or files
WaitPause execution for a duration
DatabaseQuery a connected SQL database
OCRExtract text from images and PDFs
Web AutomationControl a headless browser

Output Nodes

NodeDestination
Gmail OutputSend or reply to a Gmail message
Outlook OutputSend or reply to an Outlook message
Return to ClientReturn data synchronously to the webhook caller
Console OutputLog output for debugging

Integration Nodes

NodePurpose
API FetchMake HTTP requests to any REST API
SendGridSend transactional email via SendGrid
SFTPUpload/download files via SFTP

Flow Control Summary

NodeBehavior
ConditionalRoutes data to one of several output handles based on boolean conditions or switch-case matching
LoopIterates a subgraph over an array of data items or a set of files
WaitPauses for a configurable number of seconds before continuing

See Node Reference for the complete configuration reference.


Execution

An execution is a single run of a process. When a trigger fires, the execution engine:

  • Takes a snapshot of the process graph
  • Initializes all node states to pending
  • Starts executing nodes whose dependencies are satisfied
  • Propagates data along edges as nodes complete
  • Records the final status and all node outputs

Execution Statuses

StatusMeaning
runningExecution is in progress
completedAll nodes finished successfully
failedAt least one node failed
timeoutExecution exceeded the time limit
cancelledManually cancelled by a user

Node Statuses

StatusMeaning
pendingWaiting for parent nodes to complete
runningCurrently executing
completedFinished successfully
failedEncountered an error
skippedSkipped (no input data, or inactive conditional branch)

Data Bucket

During execution, every completed node's output is stored in a data bucket. Any downstream node can reference any upstream node's output through templates. This is what makes {{input["Node Label"]["field"]}} work.

See Execution Engine for the full execution model.


Templates

Templates are the glue between nodes. They let you reference upstream data in node configurations using the syntax:

{{input["Node Label"]["field_name"]}}

Templates are resolved just before a node executes. The engine scans the node's config JSON for {{...}} patterns and replaces them with actual values from the data bucket.

Built-in Functions

FunctionExampleResult
uuid(){{uuid()}}"a1b2c3d4-..."
now("format"){{now("2006-01-02")}}"2026-04-12"
lower("TEXT"){{lower(input["N"]["name"])}}"john"
upper("text"){{upper(input["N"]["name"])}}"JOHN"
length(arr){{length(input["N"]["items"])}}3
join(arr, sep){{join(input["N"]["tags"], ",")}}"a,b,c"
default(val, fb){{default(input["N"]["x"], "N/A")}}"N/A"
toJSON(obj){{toJSON(input["N"]["data"])}}"{\"key\":\"val\"}"

See Data Flow and Templates for the full template reference.


Organizations and Access

Every resource (schema, process, dashboard, etc.) belongs to an organization. Users can be members of multiple organizations and switch between them.

Permissions are controlled through access tags. Each tag grants read or write access to a system (e.g., process:write, schema:read).

API keys allow programmatic access to trigger processes. Each key has a rate limit, optional expiration, and optional restriction to specific process IDs.

See Authentication and Access for full details.


Collections

Collections are folders for organizing schemas and processes. Collections can be nested and a single schema or process can belong to multiple collections.


Versions

Process versions are named snapshots of a process at a point in time. A version captures the full graph (nodes, edges, configs) so you can restore to any previous state.

See Collections and Versions for details.


Testing

Test cases define expected inputs and outputs for a process. You can create test cases with predefined input data, define expected output schemas for validation, run tests individually or in batches, and track test run history with pass/fail status.

See Testing for details.


Concept Relationships

Organization
 ├── Users (with access tags)
 ├── API Keys
 ├── OAuth Accounts
 ├── Service Accounts
 │
 ├── Schemas
 │    ├── Data Blocks
 │    │    └── Data Points
 │    └── Schema Edges (with coupling functions)
 │
 ├── Processes
 │    ├── Nodes (typed, configured)
 │    ├── Edges (connections)
 │    ├── Versions (snapshots)
 │    ├── Test Cases
 │    └── Executions
 │         ├── Node States
 │         └── LLM Traces
 │
 ├── Schema Collections
 ├── Process Collections
 │
 └── Dashboards
      ├── Tabs
      ├── Grid Components
      └── Database Connections