Skip to main content

What are Workflow Nodes and How Do I Connect Them?

A complete reference to every node type; what they do, and how they interconnect

Written by Michael Whyle

What is a node?

A node is a single building block on the workflow canvas. Each node represents one instruction or process: supplying a text prompt, generating an image, or delivering finished work. Nodes connect together to form a workflow. The output of one node becomes the input of the next, and the platform runs each step in sequence.

Open the node picker by double-clicking anywhere on the canvas, or with the Add content control in the toolbar at the bottom of the screen. Choosing a node places it on the canvas and opens its settings panel. Connect nodes by dragging from an output pin on one node to an input pin on another.

Every step's output stays on the canvas after a run, so you can open any intermediate node and see what it produced rather than judging a workflow on its final file alone.


How connections work: the pin system

Every node exposes its data contract as pins: the small circles on its edges. Pins define what a node can send and receive, and you can only connect an output pin to an input pin that accepts the same type of data. Incompatible nodes will not connect at all.

Pin

Colour

What it carries

Green

Prompt or text. Written content passed to the next node.

Pink

Context. Text, images or brand assets used as background reference.

Blue

Attachment. Character or product reference images.

Orange

Audio. A voiceover, music or other audio track.

Purple

Work. A reference to a specific output, asset or deliverable.

Colour applies to input pins only. Output pins render as a plain white ring whatever they carry, and every pin carries a text label, so read the label rather than the colour to tell what a pin does. Output labels are numbered, for example Work 1, Text 1 or Score 1, because a single node can emit more than one output.

A Generate image node shows the pattern: three input pins, green Prompt, pink Context and blue Attachment, and one white output pin labelled Work 1.

A few things to note:

  • Text input nodes feed naturally into generation, agent and skill nodes, since those expect a prompt.

  • Generate image nodes output a work, so they cannot pipe directly into nodes that expect plain text, such as Split text.

  • Terminal nodes like Export, Send to canvas and Email sit at the end of a chain. Nothing connects downstream of them.


Node categories

The node picker sits on the left of the canvas, with a Search field above six tabs: All, Generate, Agents, Input / Output, Data and Utilities. The All tab opens on Quick access, six shortcuts to the nodes most workflows start with, then lists every node grouped under its category heading.

Search is scoped to the tab you are on. Searching for "email" with the Generate tab active returns no results, even though the Email node lives under Input / Output. Switch to All before searching.

Generate and Agents

Generate nodes are the creative engines of a workflow: each one takes inputs and produces new work. The Agents tab holds the agents published in your workspace alongside the individual skills they draw on.

Node

What it does

Input pins

Output

Generate text

Writes copy, scripts or descriptions from a prompt.

Prompt

Text 1

Generate image

Generates an image, with optional context and reference attachments.

Prompt, Context, Attachment

Work 1

Generate video

Generates a video, with optional context and reference attachments.

Prompt, Context, Attachment

Work 1

Generate voiceover

Generates a spoken-word audio track from a script.

Script

Audio

Agents

Runs an agent from your workspace, carrying its own instructions, model and tools.

Varies by agent

Varies by agent

Skills

Runs a single named capability, such as add_supers_and_captions.

Prompt, Context, Attachment, Audio

Varies by skill

Model dropdowns on the four Generate nodes list only the models enabled for that modality in AI governance, under Settings. If a model you expect is missing from a node, that is where to look, and it is also where the generation cost of each model is shown.

An agent node brings its own instructions, model and tools with it, so a specialist you have already built becomes a reusable building block across workflows. A workflow depends on the agents it references: if the underlying agent changes or is removed, later runs can be affected.

Skill names appear in lower case with underscores, for example analyze_media_performance, matching how they are registered rather than how they read.

A skill node carries every input pin type: green, pink, blue and orange, whichever ones that particular skill actually uses. Connect only the pins the skill needs.

Input and output

This category covers everything that feeds data into a workflow and everything that delivers finished work out of it.

Node

What it does

Input pins

Output

Text input

Supplies a fixed or variable block of text at the head of a chain.

None

Text

Work

Pulls an existing work item from Files into the workflow.

None

Work

Asset

Adds a file from your computer or from Files.

None

Attachment

Template

Brings a saved template onto the canvas.

None

Template reference

Brand library

Pulls a specific brand asset in as context or an attachment.

None

Context or Attachment

List

Holds same-type items and passes them downstream one at a time.

Input

Iterable list

Collection

Holds mixed-type items and passes them downstream together as one batch.

Input

Iterable list

Table

Holds rows and columns. The workflow runs once per row.

Input

Iterable list

Stitch video

Concatenates video and audio inputs into one video.

Video and audio

Work

Send to canvas

Places finished work into a chosen section of a canvas.

Input

Terminal

Export

Makes the connected work available for download or onward delivery.

Input

Terminal

Email

Sends an email with a link to the connected work.

Work

Terminal

Text input has no input pins, so it always sits at the head of a chain. A useful pattern: keep the instructions that change between runs in your first Text input, and the fixed, rigorous instructions in a second Text input closer to the generation node.

Asset outputs on the blue attachment pin, so it connects to the attachment inputs of generation, agent and skill nodes. An asset cannot be scored directly: run it through a generation node first, then apply a Score node to that output.

Stitch video concatenates the video and audio it is fed. The order of the result follows the order of the input nodes, starting at the top and working down.

The scaling nodes: List, Collection and Table

These three nodes are how a workflow runs against many inputs instead of one.

A List holds a sequence of items that are all the same type, and passes them downstream one at a time in the order you set. The type can be anything Pencil accepts as an input: text strings, images, video clips or brand assets. Use it when each item needs its own full pass through the nodes that follow, such as a list of product names each generating its own hero image. A List node can also take the output of other List nodes, so you can merge several lists into one and work with the combined set downstream.

A Collection holds items of mixed types and passes them all together as a single batch. Use it when the items are different types but belong together for the same step: a packshot, a brand mood reference and a text prompt all feeding one generation.

A Table holds data in rows and columns, in the same shape as a spreadsheet. Each row is one record, each column holds one type of input, and the workflow runs once per row. Populate it by adding items individually, or by connecting a sheet or a CSV. Columns can act as connection points in their own right, so you can wire a single column into a downstream node.

Structured tables have column headers that map to named input pins, a Headline column to a text input or a Packshot column to an attachment pin, and suit data that is already organised as a feed-style dataset. Unstructured tables have no headers, and downstream nodes pick columns up positionally. Between them, a Table node gives you the breadth of Feed Variation work without leaving the workflow canvas.

All three emit an Iterable list pin, which carries its own icon rather than one of the coloured type rings. This is the workflow's iterator: connecting it into a downstream node tells the workflow to repeat, once per item for a List, once for the whole batch for a Collection, and once per row for a Table.

Send to canvas

Places finished work onto a canvas rather than exporting it. Pick a specific section of the target canvas as the destination, so output lands in the place you built for it instead of needing arranging by hand.

Choose whether the node adds to that section or replaces what it put there on the previous run. On replace, the earlier batch leaves the canvas and stays safe in Files, and you are asked to confirm before it happens. If the target section has been deleted, items drop onto open space on the canvas instead.

Can a workflow wait for approval?

No. There is no approval node, and a workflow cannot pause for a sign-off decision or branch on whether someone approved or rejected the work.

Use an Email node to put the work in front of a reviewer with a link to it. The node carries a recipients field, a message of up to 1,000 characters and a Copy link control. It has no output pin, so nothing downstream can depend on what the recipient does, and it records no approve or reject state of its own.

To send assets for approval or review, rather use Brief Mode, or select Send for Approval from the three-dots menu on each work or item in the Files Library.

Data

Data nodes handle scoring, transformation and routing. They do not generate new creative; they manipulate or direct work that is already moving through the canvas.

Node

What it does

Input pins

Output

Score

Applies a workspace score to the output of a generation node.

Work

Score 1

Split text

Splits a block of text into individual items across downstream branches.

Text

Multiple text outputs

Split document

Splits a document into separate parts across downstream branches.

Document

Multiple document outputs

If else

Evaluates a condition and routes work down one of two branches.

Input

True, False

Router

Passes an input straight through, unchanged, to keep the canvas tidy.

Input

Output

Score applies AI-powered quality scoring to work generated on the canvas. Scoring runs on the output of generation nodes only, not on files brought in through an Asset node. The scores available vary by workspace, and an admin can turn individual scores off and choose whether each one runs automatically or on a manual trigger.

Score is at its most useful feeding an If else node, routing low-scoring work back for regeneration or forward for a human to look at.

Split text breaks a text block into individual items and fans them out into separate branches. The classic use: a Generate text node produces three headline options, Split text separates them, and three parallel Generate image nodes each produce a key visual for their own headline. Choose how to divide the text by sentence, paragraph, list item, character, or a custom delimiter you supply. Split document does the same for a whole document.

If else

Evaluates a condition and routes work down a True or a False branch. It works on numbers and on text.

For a numeric input, such as a score, the operators are is equal to, is not equal to, is greater than, is less than, is greater than or equal to, and is less than or equal to. For a text input, the operators are equals, does not equal, contains, does not contain, starts with, and ends with. Add more than one condition to the same node with Add another condition.

This is how you build a decision tree without hard-coding a separate workflow for every scenario: pair it with a Score node for automated quality routing, or point it at any text value from an upstream node to branch on what that text says.

Router passes a single input straight through to an output without changing the data. It is purely a quality-of-life node: use it to route a connection around the canvas and avoid the crossed-wire tangle that long-distance connections create in large workflows.

Utilities

Utilities nodes carry no pins at all. They organise and annotate the canvas rather than carrying data, and the same three appear in the Canvas surface's own Add content menu.

Node

What it does

Section

Groups and labels an area of the canvas.

Sticky note

Adds a free-text annotation to the canvas.

Text area

Adds a larger free-text block to the canvas.


Managing nodes on the canvas

Two separate interactions sit on every node card, and they are easy to confuse.

Click the node's body to open its settings panel on the right of the screen: the model dropdown, the mode selector, the condition builder, and so on. Adding a node from the picker opens its settings panel straight away.

Click the three dots on the node card for its context menu, which is the same on every node type and carries five items:

  • Rename node changes the node's name on the canvas.

  • Add to assets pushes the node's output into Files, with a count of the items it will add.

  • View provenance shows which prompts and models produced that node's output.

  • Duplicate copies the node, and is also available with Command and D.

  • Delete removes the node, and is also available with the Delete key.

Deleting asks you to confirm first, so a stray keystroke will not cost you a node.


Tips for working with nodes in workflows

Start with your inputs. Decide what data your workflow needs, whether text prompts, assets or brand context, before placing any processing or generation nodes. Clean inputs make everything downstream easier.

Keep each node focused on one job. Overloaded nodes are harder to debug and harder for colleagues to follow. If a single node is trying to do three things, break it into three nodes.

Connect only the pins you need. A skill node shows every input pin type whether that skill uses them or not, so wire up the ones that are relevant to the job and leave the rest alone.

Use Split text to fan out variations. When you need parallel outputs, generate them as a list in one node and split them into branches rather than duplicating your whole generation chain.

Check the work before you export. A quick human look before Export catches issues that automated scoring misses. Open each node's output on the canvas after a run rather than judging the workflow on its final file alone.

Connect brand and reference nodes early. The earlier in a chain that brand context enters, the more consistently it propagates through the generations that follow.

Test nodes in isolation as you build. Run a single node with This node only, or a node and everything after it with Run from here, before running the whole workflow. A broken step halfway through wastes every step that preceded it.

Iterate without losing work. Re-running a node keeps its earlier outputs. Click Run history next to Run to compare them or restore one. Read more about run history.

Did this answer your question?