How Wishfleet works.

Two separable components — a workflow service that holds state and enforces constraints, and a decision engine that determines what happens next. Together, they orchestrate real-world work with verifiable results and operational metrics built in.

Three strategic principles.

Real-world work, not only computation.

Most workflow engines orchestrate computation. Wishfleet orchestrates real-world work: a contractor scheduled, a document signed, a property inspected, a credit pulled. The substrate is built around evidence, exceptions, and human-or-agent decisioning — not durable code replay.

We reserve the right to get smarter.

Skills bundles describe goals, best practices, and judgment criteria — not procedure. The procedural reasoning lives in the LLM. As underlying models improve, your declared intent benefits automatically without rewrites.

Three-tier value ladder.

Bring your own decisioner at Tier 1. Encode obvious decisions as rules at Tier 2. Ship judgment as Skills at Tier 3. The same workflow can mix all three: deterministic for routine transitions, agentic for judgment-heavy ones, human escalation for the irreducible.

Two components, one control plane.

The workflow service is the data and constraint layer. It stores definitions, runs instances, enforces transition rules, tracks activities, and captures evidence. It is a managed state machine backed by your database — no separate runtime, no replay-based history. State is a row you can query.

The decision engine is the logic layer. It reads workflow state and determines what should happen next. In deterministic mode, it evaluates rules declared in the workflow definition. In agentic mode, it loads a Skills bundle and runs it against an LLM. Both modes write back through the workflow service’s control plane — no privileged path, same audit trail.

You can use the workflow service alone — bring your own decisioner, and the platform holds state, constraints, and audit. Or use both together and let the decision engine handle routine calls and judgment-heavy transitions.

Three-layer application object model.

Work items flow through three composable layers. Each layer serves a different purpose in modeling how real-world work actually proceeds.

Three-layer application object model Work Item Workflows Processes Activities work item workflow A workflow B concurrent process 1 process 2 process 3 sequential activity a activity b activity c concurrent

Workflows run concurrently against a work item — one for the physical turn, one for the financial reconciliation, one for compliance review. Processes run sequentially within a workflow — the instance is in exactly one process at a time, and re-entry on recovery is normal. Activities run concurrently within a process — an inspection, a phone call, a document request, each with its own lifecycle.

Message taxonomy.

The platform communicates through four message classes, organized along two axes: direction (inbound vs. outbound) and intent (event vs. request). This taxonomy defines the integration surface between Wishfleet and customer systems.

INBOUND OUTBOUND EVENT REQUEST Signal in External system pushes a fact or timer fires a deadline May satisfy conditions, fail deadlines, update context Control call in Caller has already decided via REST / MCP Engine enforces policy, persists audit, dispatches effects Workflow event out Engine made a state change May unblock transitions on this or other instances Side effect out Tasks dispatched, notifications sent Triggered by transitions and activity lifecycle events

Signals arrive from external systems or internal timers. The decision engine evaluates them, and the workflow service enforces constraints. Events flow outward when state changes, and control calls arrive when an external actor has already decided what should happen.

The decision engine controller loop.

When a signal arrives or a workflow event fires, the decision engine enters a tight loop: read state, enumerate legal moves, decide, apply, repeat. The loop exits when the engine decides to wait. Every decision is persisted as a reasoning trace in the activity log.

signal in / event read instance state enumerate legal moves decide (rule or LLM) wait decision = wait apply via control plane otherwise append decision_trace

Most decisions never reach an LLM. When only one transition is ready and the workflow declares it as deterministic, the engine auto-advances. Only genuinely ambiguous decisions — multiple legal transitions, judgment required — route to the agentic decider.

Verifiable results — every decision, every step.

Every transition, every activity, and every decision produces a persisted trace: who decided, why, what evidence informed it, what alternatives existed. The audit story is built into the data model, not bolted on after the fact.

The activity log is a read view over the rows the workflow service already records — transitions, activities with status history, evidence with validation state. When the decision engine makes a call, the reasoning trace captures the decider, the candidates considered, the selection, and an excerpt of the reasoning.

Operational metrics, free from the data model.

Because the platform tracks sequential processes, timestamps every state change, and records reasons for every closure, a full set of operational metrics is derivable with no separate analytics pipeline and no instrumentation work.

Funnel conversion

Per-stage and end-to-end completion rates.

Dwell time

Average and percentile time in each process and activity.

Work-in-progress depth

Real-time count of instances per process stage.

Throughput

Instances completing per unit time, by process and overall.

Error disposition

Breakdown of non-success closure reasons per stage.

Exception & recovery

How often instances block, how often they recover, and by which path.

The data underlying these metrics is fully captured in v1. A packaged metrics query API and pre-built dashboards are on the roadmap — today, query the workflow tables directly or feed them into your existing BI stack.

Dive deeper, or talk to us.

Explore the developer documentation for implementation details, or start a conversation about how Wishfleet fits your workflow.