Creating Workflows
A workflow is a set of blocks you arrange on a visual canvas. One block starts the run, the blocks after it do the work, and the arrows between them decide the order.
This page walks you through building one: opening the editor, adding blocks, connecting them, configuring each one, and saving your work. For the full list of what each block does, see Blocks.
By default Workflows is open to Admins; your organization can also give it to other people through a custom role. Creating, editing, running and deleting workflows are separate permissions, so a button you can't use is hidden or disabled. If you don't see Workflows in the sidebar, ask an administrator in your organization.
Start a New Workflow
- Open Workflows and stay on the Workflows tab.
- Click New workflow at the top right.
- Give it a name — for example, Weekly report generator.
- Optionally write a short Description of what it should do and when it should run.
- Click Create.
You land straight in the editor with an empty canvas.
The description is worth the ten seconds. It is shown on the workflow's card, and it is the first thing the Copilot and the next person to open the workflow read.
You can also open an existing workflow at any time by clicking its card, or bring one in from a file with Import. See Workflows Overview for the card list, statuses, search, and importing.
:::note The editor needs a desktop-size screen On a phone-size screen the editor does not open; you see a Workflow Editor notice asking you to use a desktop browser. On a tablet-size screen the editor opens with a banner — "Tablet experience is limited — for the full canvas, use a desktop browser (≥1024px)." — which you can dismiss. :::
The Editor at a Glance
| Area | Where | What it's for |
|---|---|---|
| Canvas | Center | Where your blocks live and connect |
| Side panel | Right | Switches between Copilot and Toolbar (the block palette) |
| Title | Top-left | Shows which workflow you're editing — click it to rename. On an active workflow with saved edits that aren't live yet, an amber Unpublished changes strip appears beside it |
| Canvas controls | Bottom-left | Canvas mode, undo, redo, fit to view |
| Logs | Bottom | A dock that shows the latest run: its status, each block that ran, and each block's input and output. Click its header to open or collapse it |
The side panel can be resized by dragging its left edge. Its header also holds Back, Workflow settings, Variables, Save and Run — see Editor Toolbar for every control in detail.
Step 1 — Add Your First Block
An empty canvas shows a short launcher with two commands. Click one:
| Command | What it does |
|---|---|
| New Agent | Drops an AI Agent block on the canvas |
| Search Blocks | Opens block search so you can type what you need. Ctrl/Cmd + K opens the same search |
Once the canvas has blocks, you can add more in any of these ways:
| Way to add | How |
|---|---|
| Drag | Drag a block from the palette onto the canvas and drop it where you want it |
| Click | Click a block in the palette — it drops in the center of the view |
| Right-click | Right-click a block in the palette and choose Add to canvas |
| Search | Press Ctrl/Cmd + K, type a name, and pick a result |
Step 2 — Find Blocks in the Palette
Open the Toolbar tab in the side panel. The palette has two parts:
- Triggers at the top — the blocks that start a run. You can drag the divider to make this section taller or shorter.
- Blocks below it — everything else, grouped into collapsible categories.
There's a Search… box at the top. While you're searching, both sections show flat results so you can grab anything by name.
Categories
| Category | What it's for | Examples |
|---|---|---|
| Triggers | How a run starts | Start, API Trigger, Webhook, Form Trigger, Shared Folder Trigger, Gmail Trigger, Chat Trigger, Error Trigger |
| AI | AI-powered work | Agent, Router, Evaluator, Knowledge, Image Generator, Vision, Speech to Text, Text to Speech |
| Logic | Direct the flow | Condition, For Loop, While Loop, For Each, Wait, Parallel, Function, Approval, Form Page |
| Data | Shape and move data | API, Response, Variables, Shared Folder, Table steps |
| Arketic | Arketic-native actions that need no connection | Knowledge base search, document search, web search, create/update tasks, start a Blueprint, send a notification |
| Integrations | External services | Slack, Gmail, Notion, Google Sheets, GitHub, Linear, and more |
| Notes | Annotate the canvas | Note |
:::tip Integrations open as provider cards Under Integrations, each service is a single card — click one (for example Google) to see its individual steps, and use the back row at the top of the list to return. :::

Step 3 — Start With a Trigger
Every workflow needs an entry point. Add one trigger block and build the rest of the flow after it.
| Trigger | Starts the workflow when… |
|---|---|
| Start | You click Run in the editor — the manual trigger |
| API Trigger | Another system calls the block's own address with its token |
| Webhook | Another service sends a signed request to the block's own address |
| Form Trigger | Someone fills in and sends the form you design in the block — see Forms |
| Shared Folder Trigger | A file arrives in a folder of your organization's shared folder — see Shared Folder |
| Gmail Trigger / Outlook Trigger / IMAP Trigger | New email arrives in the mailbox you connected |
| Telegram Trigger / Slack Trigger / WhatsApp Trigger | Your bot, app or business number receives a message or event |
| Chat Trigger | Someone starts it from a conversation with an AI assistant |
| Error Trigger | Another workflow that names this one as its error workflow fails |
There is no schedule block. To run a workflow on a recurring schedule, build it with any trigger and attach the schedule on the Schedules tab — see Schedules.
The Start block also lets you define Input fields (a name and a type each). Those fields are the starting data for a manual test run, and later blocks read them as <input.NAME>.
See Running Workflows for how each entry point behaves, and Blocks for their full settings.
Step 4 — Connect Blocks
Drag from one block's connection point to another block to link them. The arrow shows the direction the flow runs.
- To remove a link, select it and press Delete.
- To flip a block's connection points between horizontal and vertical, use Horizontal ports / Vertical ports in the block's hover tray.
:::info How the run follows your arrows Blocks run in dependency order — each one waits for what it needs. Logic blocks change that path: Condition and Router send the run down different branches, loops repeat a section, and Parallel runs branches at the same time and collects the results. :::
Loops and parallel containers
Loop and Parallel blocks are containers: the blocks you put inside them are the ones that repeat or run side by side.
- Put a block in by dragging it onto the container — an empty container reads "Drop blocks here to run them inside this container." You see "Block moved into the container."
- Take a block out by dragging it back onto the canvas, or with Remove from container in its hover tray. You see "Block moved out of the container."
- Containers cannot be nested. Dropping one container onto another is refused with "Containers cannot be nested inside each other."
- Deleting a container deletes what is inside it. A Delete container? dialog tells you how many blocks go with it; Ctrl/Cmd + Z brings them back.
The Agent's Knowledge port
An Agent block has a second input, the Knowledge port. It accepts only a Website Scraper or a Document block, and those two blocks connect only to that port. Any other connection there snaps back with a message: "The Knowledge port accepts only a Website Scraper or a Document source." or "A knowledge source connects only to an Agent's Knowledge port."
Step 5 — Configure a Block
Double-click a block — or hover it and choose Open details — to open its details view. You can also toggle this view with Ctrl/Cmd + \ (or Ctrl/Cmd + I) while the block is selected, and close it with Escape.
The view has three columns:
| Column | Shows |
|---|---|
| Input | The data coming into this block. Switch between Upstream (what earlier blocks produced) and Resolved (what this block actually received in the last run) |
| Center | The block's own settings |
| Output | The result this block produced in the last run |
While you're in there:
- Fill in the settings. Every block has its own fields — a prompt, a URL, a table, an operation, and so on.
- Show more options. Blocks with advanced settings hide them behind a Show additional fields toggle (it becomes Hide additional fields once open).
- Rename the block. Double-click its name at the top of the center column, or click the pencil. Press Enter to save, Escape to cancel. A name must be unique on the canvas, and
loop,parallel,variableandinputare reserved. - Pick a connection where one is needed. Blocks that reach an external service have an Authentication (or Credential) field where you choose a stored connection. See Connections.
- Run from here. The view has its own Run button, so you can run the workflow and watch this block's input and output fill in without leaving it.
Close the view when you're done — your changes stay on the canvas until you save. The view is described in full under The block details view.
Arketic-native blocks and the Arketic AI model option need no connection at all, so they're the quickest way to get a first version working.
Reusing Data Between Blocks
Blocks don't just run in order — later blocks can read what earlier ones produced. You do that with a reference written in angle brackets.
| Reference | Reads | Example |
|---|---|---|
<input.NAME> | A field from the trigger's input | <input.email> |
<blockName.field> | An earlier block's output | <agent.content>, <start.input> |
<variable.NAME> | A workflow variable | <variable.threshold> |
There are three ways to put a reference into a field:
| Way | How |
|---|---|
| Type it | Write the reference straight into the field — for example, put <agent.content> in a message body to send whatever the Agent block wrote |
| Drag it | In the block details view, switch the Input column to Upstream. Every earlier block is listed with its output fields; drag a field into a setting and the reference is written for you. Hover a field first to see exactly what will be inserted |
| Pick it | Type @ in a text field. A list of the earlier blocks' fields opens; keep typing to narrow it, move with the arrow keys, and press Enter or Tab to insert. Escape closes the list |
Under a field that holds a reference, a small line tells you what it points at — the value from the last run, "run once to preview" when there is no run yet, or a warning such as "No block named … — will be sent as plain text" when the reference doesn't match anything.
:::caution Most run problems are data problems When a run fails, it's usually a reference pointing at something that isn't there — a renamed block, a missing input field, or an empty result. Open the run in Logs and check the failed step's Input and Output to see exactly what arrived. :::
A reference can also be reshaped on the way — taking the first item of a list, changing the case, formatting a date. That, and creating workflow variables, is covered in Variables.
Step 6 — Name and Save
- Rename the workflow — click the title at the top-left, type the new name, then press Enter or click away. Escape cancels.
- Save — click Save in the side panel header, or press Ctrl/Cmd + S.
The Save button tells you where you stand: Save when there are unsaved changes, Saving... while it works, and Saved when there's nothing left to save.
Saving matters for more than safekeeping: Run stays disabled until your changes are saved.
:::info Saving is not the same as going live Saving stores your work. A workflow starts running on its own only once you switch it on from the Workflows page — and switching it on is what publishes it. If the workflow is already on, saved edits wait as a draft until you click Publish changes in the editor. See Running Workflows. :::
What the editor asks before you lose work
| You do this | The editor asks |
|---|---|
| Click Back with unsaved edits | Discard unsaved changes? — choose Discard to leave, or Keep editing to stay and save first |
| Save after removing every block from a workflow that had blocks | Save with no blocks? — "All existing blocks and connections will be removed." Choose Save anyway only if that is what you mean |
| Close or reload the browser tab with unsaved edits | Your browser shows its own "leave this page?" warning |
| Keep unsaved edits while the Copilot changes the same workflow | Copilot updated this workflow — choose Apply Copilot version (your unsaved edits are discarded) or Keep my edits |
:::tip Save before you ask the Copilot The Copilot works on the saved workflow. Saving first means its changes and yours never have to be weighed against each other. :::
Keeping the Canvas Readable
As a flow grows, a few habits keep it easy to follow:
| Habit | How |
|---|---|
| Give blocks clear names | Rename them in the details view — the names show up in run logs and in your references |
| Explain tricky parts | Add a Note block; it takes markdown and sits on the canvas without joining the flow |
| Tidy the layout | Press Shift + L for auto-layout, or right-click the canvas and choose Auto-layout |
| See everything | Click Fit to view in the bottom-left controls, or right-click the canvas and choose Fit to View |
| Reuse a step | Hover a block and choose Duplicate, or right-click it and use Copy / Paste / Duplicate |
| Park a block without deleting it | Hover it and choose Disable — it stays on the canvas, dimmed, and is skipped |
Handy Shortcuts
| Shortcut | Action |
|---|---|
| Ctrl/Cmd + S | Save |
| Ctrl/Cmd + Enter | Run |
| Ctrl/Cmd + K | Search blocks |
| Ctrl/Cmd + Z | Undo |
| Ctrl/Cmd + Shift + Z | Redo |
| Ctrl/Cmd + C / V | Copy the selected block / paste |
| Ctrl/Cmd + D | Duplicate |
| Ctrl/Cmd + \ or Ctrl/Cmd + I | Open or close the selected block's details |
| Delete or Backspace | Delete what is selected |
| Shift + L | Auto-layout |
| V / H | Pointer (select) / Mover (pan) mode |
The full list lives on Editor Toolbar.
Try It Out
When your flow is ready, click Run in the side panel header (or press Ctrl/Cmd + Enter). Run becomes available once the workflow is saved and has at least one block — if it's greyed out, hover it and the button tells you what's missing.
The run continues in the background. The Logs dock at the bottom of the editor shows it block by block while it runs, and every step is recorded so you can inspect it afterwards.
Let the Copilot Build It
If you'd rather describe the flow than draw it, open the Copilot tab in the side panel and say what you want — for example, "Add a Slack node and connect it to the trigger." It adds, connects, and configures blocks on the canvas for you, lists each change it made, and lets you undo its last build from a one-click Undo card (it asks you to confirm before reverting).
See Copilot.
Related Pages
- Blocks — what every block does and its settings
- Variables — workflow-scoped values you can reuse
- Connections — sign-ins your blocks use to reach other services
- Tables — structured data your workflow can read and write
- Forms — forms people fill in to start or continue a workflow
- Approvals — steps that wait for someone's decision
- Shared Folder — files on your organization's server
- Running Workflows — manual runs, webhooks, and chat
- Schedules — run a workflow on a recurring schedule
- Logs — step-by-step detail of every run