OpenAgentOpenAgent

Workflows overview

Trigger → steps automations and routed conversation flows: one graph model that answers calls, chases quotes, texts back missed calls, and files tickets — siloed per door, versioned, testable.

View as Markdown

A workflow is a graph of steps the AI follows. The same builder covers two jobs:

  • Conversation flows — routed into live conversations on a door: "use this flow when the caller wants to order", "use this one for booking". The AI walks the graph during the call or chat: asking, extracting, branching, using tools.
  • Event automations — fired by a trigger: a call goes unanswered → send a text; a form is submitted → email the owner and put a card on the board.

One workflow can be both — a flow that runs on calls and listens for an event. Under the hood they're the same graph with the same steps.

The anatomy of a workflow

Workflow "Order line"                    (belongs to: the receptionist door)
  Starts when:  routed — "the caller wants to place an order"
  ┌ Step 1  Dialogue    take items, sizes, changes        → extracts {items}
  ├ Step 2  Knowledge   tonight's wait time, pinned       → answers from it
  ├ Step 3  Dialogue    collection or delivery + address  → extracts {address}
  ├ Step 4  Webhook     POST the order to the POS          → routes on result
  ├ Step 5  Notify      SMS the confirmation
  └ End     repeat the order back, thank them
  Global:   "talk to a person" → transfer to the counter   (catches anywhere)

Three rules that shape everything

  • Channels are siloed. A flow belongs to the door it was written for. The phone script and the Instagram script are different flows on the same agent, routed by "use this when…" conditions — because the right wording differs per door.
  • Versions, not live edits. You edit a draft (staging) version, test it, then publish. Production keeps running the published version until you promote.
  • Everything is logged. Every run records which node fired, which route was chosen, what was extracted, and what each webhook returned — so "did the customer get the text?" has an answer.

Where to go next