Visual Automations

DynamicWorkflows

Wire a trigger to a handful of typed steps and let Plexon run it. Build on a node canvas or describe the flow in chat. A local engine runs it, remembers every run, and never sends the same message twice.

A visual builder for automations

A visual builder for automations

Open the Workflows panel and lay out a flow on the canvas. A trigger sits on the left, typed steps run to the right, and branches drop below for conditions and approvals. Click any node to set it up in a side drawer: pick a connector tool, write an AI instruction, choose an agent or persona, or set a wait. Save it, flip the switch, and the engine takes over.

  • Drag-and-drop canvas with a live status ring on each step
  • Side drawer to configure every step: tools, AI, agents, waits
  • Global or per-project scope. Nothing leaves your machine
  • Test run any time, or enable it to run on real events
  • Missing a connector? Run or Enable opens the install wizard in place

Seven ways to start a flow

Every workflow begins with one trigger. Pick the one that fits the job.

  • Schedule: a cron expression or a simple interval
  • App poll: watch a connector and fire on each new item, like a new Gmail message or WhatsApp chat
  • RSS feed: poll a feed URL and fire once per new item, with the item fields on {{trigger.item.*}}
  • Inbound message: a Telegram or WhatsApp message that matches a filter
  • Webhook: a local POST endpoint with a minted secret
  • Plexon event: run the flow when a reply finishes or a tool runs, matched on the text you care about
  • Manual: a Run now button, also used for test runs. Add typed inputs and Run now collects them first

Automate the work that follows the conversation

A workflow can start from what just happened in Plexon. When a reply finishes and its text matches what you are watching for, the flow takes it from there: read the session, write the notes, print the PDF, tell you it is done.

  • Trigger on a finished reply, a tool call, a tool failure, or a settings change
  • A matcher keeps it precise: only the replies that carry your phrase start a run
  • Or ride a hook you already have, including one a persona installed. It borrows the hook's matchers, so there is nothing to keep in step
  • Run it after that hook finishes, when the flow needs what the hook produced: the notes are filed, then the letter is drafted
  • The event arrives as the trigger, so the flow reads the session id, the tool name, the project
  • The chat never waits on it. The run happens alongside your work
  • From the Hooks panel, a hook can pick a workflow as its action. Same machinery, either door

Typed steps for every part of a flow

Connect typed steps with edges. Connector steps run with zero AI tokens; the AI shows up only where you put it.

  • Tool: call any connector or MCP tool directly
  • AI: one structured call to extract, classify, or generate, with a typed result
  • Agent: hand the step to a headless sub-agent
  • Persona: run the step as a whole persona, with its skills and connected tools
  • Condition: branch on a rule group, a one-line expression, or a yes/no question put to the AI
  • Loop: repeat a body once per item in a list, or while a condition holds
  • Transform: reshape data with expressions, no AI and no tokens
  • Wait: pause for a set time, or until a matching reply arrives
  • Approval: stop and ask you to approve or reject
  • Notify: post to your inbox, with an optional desktop alert
  • Note: a sticky note that documents the flow and never runs

Loops, expressions, and a built-in test

Walk a list, compute values, and check a step before you ship it, all without leaving the canvas.

  • For-each loops expose the current item as {{loop.item}} and its position as {{loop.index}}
  • A small expression language filters, sums, and reshapes: len(items) > 0, filter(items, .price > 100)
  • Expression fields are a code editor: syntax colours, a path menu, examples, and a sparkle that writes the expression from a plain description
  • Expressions are checked when you save, so a typo shows up in the editor, not at 3am
  • The {} menu on every field lists what the step can read: the trigger, the output of every step wired before it, and the run details. Search narrows the list
  • A path that points at a step running later, or a typo in a variable name, is flagged under the field as you type
  • Test step runs one step on sample data and shows its output. A send reports what it would send, never for real
  • Typed inputs on a manual trigger: Run now asks for them first, so the flow reads {{trigger.<name>}}. A file or folder opens the system picker, a colour opens a palette, a secret is typed each run and never saved
  • Plexon paths are variables too: write a report to {{plexon.downloads}} instead of a path from your own machine, and the flow still works when you share it
  • Undo, redo, and copy or paste a step on the canvas

Track who you reached out to, and follow up

An outreach flow can remember its own contacts. Two built-in tools read and write a small local store: one records a lead and the channel you reached them on, the other lists leads by status. A multi-step flow logs who it messaged, marks the ones who replied, and pulls the leads that never answered so a later run sends a second touch.

  • plexon_outreach_upsert records a lead, the channel, and a message, and sets the status
  • plexon_outreach_list reads leads back, filtered by status: contacted, replied, or pursued
  • Each lead keeps its channel and a running message log
  • Find the no-reply leads on the next run and follow up
  • Backed by a local JSON file. Nothing leaves your machine

Watch a run, then clean up after it

The Runs tab keeps the history grouped by workflow, one section each, whatever ran last on top. Open a run to follow it step by step, with the input, output, timing, and cost of each one. When the history gets noisy, delete what you no longer care about.

  • One collapsible section per workflow, so a five-minute schedule cannot bury everything else
  • A section opens itself when a run inside it is still moving, or waiting on your approval
  • Opens on the last 24 hours. Widen it to 7 days or the whole history in a click
  • Searching by name looks through the whole history, whatever window is on screen
  • Delete a single run, clear the finished runs of one workflow, or clear everything past 7 or 30 days
  • An unfinished run is never deleted, whatever you clear. Cancel it first

Build it on the canvas, or just describe it

Lay the flow out by hand, or tell Plexon what you want and let it draft the whole thing. Either way you get the same definition, and you review it before anything runs.

  • Node canvas with a schema-driven config drawer
  • Describe a flow in chat and the AI drafts it for review
  • Chat-built and AI-drafted flows always land switched off, with a review link
  • Templating pulls trigger data and earlier step output into later steps with {{ ... }}

Edit a flow by describing the change

Select the whole workflow or a single step, say what you want different, and the AI rewrites the definition for you. Whole-flow edits hand the AI a screenshot of the canvas first. An active workflow keeps running while you edit it.

  • Edit the whole flow from the toolbar, or one step from its card
  • The toolbar edit saves first, then sends a picture of the canvas
  • The AI rewrites through the same authoring tool you would use
  • Editing a live workflow leaves it switched on

Share a flow like any other artifact

A workflow travels the way agents and skills do. Attach it to a persona so it arrives ready to run, or bundle it into a marketplace: linked, managed, or your own. Activation, sharing, and teardown all work the same.

  • Attach a workflow to a persona
  • Bundle one into a linked, managed, or consumer marketplace
  • Per-project or global activation, like agents and skills
  • Revoke a managed marketplace and its workflows come back out cleanly

The bundled example: Greet new contacts on WhatsApp

A complete flow you can read, then turn on.

Plexon ships one example so a real workflow is there to read end to end. It watches Gmail for a new email, reads the message, and asks the AI to pull out a mobile number. If there is no number, it replies in the thread to ask for one and waits for the answer. Once it has a number, it sends a hello over WhatsApp and posts a note to your inbox.

It arrives switched off, sitting on the canvas for review. Connect Gmail and WhatsApp, sign in to Google once, look over each step, and flip it on. It runs unattended by default. Switch on supervised first if you want to approve the WhatsApp send by hand.

The flow, step by step

  1. 1A new email arrives (Gmail poll)
  2. 2Read the message body
  3. 3AI extracts a mobile number
  4. 4No number? Reply in the thread and wait for the answer
  5. 5Send a hello over WhatsApp
  6. 6Post a note to your inbox

What you need first

  • The Gmail / Google Workspace connector, signed in once
  • WhatsApp, paired by QR scan
  • A quick read through each step on the canvas
  • The enable switch, when you are ready

Event-driven workflows run on real events, so this one is meant to be enabled rather than run by hand. A manual workflow can declare typed inputs instead, and Run now collects them before the flow starts.

Persona-bundled workflows: the Stock Trader set

Install a persona and its workflows arrive on the canvas, switched off.

A persona can carry its own workflows. The Stock Trader persona ships a set built on free, no-key market data, so you can turn on the parts of a trading routine that fit you. The alerts stay quiet until a condition actually fires, so a check that finds nothing notable sends nothing at all.

What ships

  • Pre-market briefing: indices, sectors, FX, and headlines before the open
  • Watchlist signal scan: RSI extremes, big moves, and moving-average crosses across your list
  • Volatility radar: a heads-up when the VIX climbs
  • Earnings and catalyst scan: the material news on your watch list
  • Weekly sector rotation digest: which sectors lead and which lag
  • Weekend crypto watch: a heads-up when a major coin makes a big move on a Saturday or Sunday
  • End-of-day journal: a recap plus a prompt to log the day, saved to a file
  • Single-symbol alert: an overbought or oversold read, a big move, or a 50/200-day cross
  • Watchlist sentiment scan: flags extreme bullish or bearish crowd sentiment on your list
  • This week's earnings: a dated digest of which watch-list names report in the next seven days

How they behave

  • Quiet until it matters: a check that finds nothing notable sends nothing
  • Free, no-key market data, computed on your machine
  • They land switched off; review each on the canvas and enable the ones you want
  • Edit the symbols and times, or attach the set to your own persona

Educational, not financial advice. The persona is read-only and never places orders.

Runs you can trust

Durable runs

Every run is a file on disk that snapshots its own steps. Edit or delete a workflow and any run already in flight keeps going on the version it started with.

At-most-once sends

If the app stops in the middle of a send, the run pauses and asks you what to do. Nothing goes out twice on its own.

Supervised or unattended

Run flows on their own, or switch on supervised to approve every send before it fires.

Local-first

Definitions, runs, and cursors live under your Plexon home, global or per project. No cloud component.

Outreach state on disk

Two bindable built-in tools, plexon_outreach_upsert and plexon_outreach_list, give a flow a memory of who it contacted. Upsert writes a lead, its channel, and a message and sets the status (contacted, replied, or pursued); list reads them back by status. The store is a local JSON file, so a multi-step flow marks replies and finds the no-reply leads to follow up across runs.

From draft to PDF

An agent step writes the draft, a tool step saves it as a Markdown file, and plexon_print_pdf prints that same file to a PDF, no AI tokens spent on the conversion and no HTML in between. Headings, bold, lists, and tables land as real typography on an A4 page. A notify step can open the finished PDF on click.