Skip to content
CapitalSourceThe CapitalOps platform
Flows

Draw how the work
actually moves.

A flow is your procedure, drawn: what starts it, which capabilities run, where a person decides, and what gets posted where. Your manager builds it on a canvas, publishes a version, and the worker executes that version — with every step recorded.

In the portal today
A procedure, drawnExample flow
  1. Trigger

    Application created

    Start with an application event

  2. Decision

    Human approval

    A named reviewer makes the call

  3. Action

    Post to Slack

    Share the approved update

Every step is recorded. A human decision is part of the procedure.

CapitalSource Agent Harness

Saved progress. Explicit approvals.

The execution layer that keeps agent work moving—with scoped permissions, spending limits, and a record of the task. Starting with the Processor application-readiness pilot in Flows.

Preview before deliveryStart in shadow mode to inspect readiness evidence and proposed operations follow-ups without sending a message.

Approve the exact actionEach Slack delivery requires approval of the message and destination. Permissions and supporting evidence are checked again before dispatch.

Follow the same taskSee progress and model spending as application information changes. Reassess or cancel a task from its run detail.

Workspace setup is required. Broader fleet support is planned; the pilot assesses readiness and prepares operations follow-ups. Financing decisions remain with people.

What is built

Authored by the manager, not by us

Flows is one of the few things on this site that is finished rather than designed. It is in the portal, it is covered by tests, and the list below is what it does.

Working

The builder and the runner

  • A canvas with a typed palette — drag a node in, wire it up, configure it in a side panel
  • Drafts autosave as you work; publishing freezes a numbered version you can roll back to
  • Validation runs against the graph, so a flow that cannot execute will not publish
  • Runs are recorded step by step: what each node received, returned, and how long it took
  • An approvals inbox where a named reviewer sees exactly the data the flow is asking about
  • Templates to start from, rather than a blank canvas
Not yet

What a flow cannot do

  • Event triggers other than application events and manual start — uploads, Slack matches, schedules, and inbound webhooks are in the palette and refuse to run
  • Outbound sends on anything but Slack — Telegram, WhatsApp, and Google Chat connect but cannot be posted to from a flow yet
  • Handing a step to a deployed agent, which waits on hosted deployment existing at all
  • Five of the seven capability nodes return a contract-locked pending envelope instead of real analysis
The palette

Every node says whether it runs

A node marked coming soon is visible in the builder and refuses to execute, so a flow that depends on one cannot publish. These labels come from the same catalog the palette reads. End to end today that means: a trigger, logic, a human approval, and a Slack message — the other connectors are defined and not connectable.

Triggers

1 of 5 run today

Manual start

runs

Someone presses Run and optionally types a note that the flow can read.

trigger.manual

Documents uploaded

coming soon

Fires when files land from the portal, a secure link, or a website form.

trigger.documents_uploaded

Slack message matched

coming soon

Fires on a message in a connected workspace that matches a pattern.

trigger.slack.message_matched

Schedule

coming soon

Runs the flow on a recurring clock rather than an event.

trigger.schedule

Inbound webhook

coming soon

Another system posts a payload and the flow starts from it.

trigger.webhook

Capabilities

2 of 2 run today

Score CSG-1003 completeness

runs

Percent complete, missing field ids, and gating status for an application.

capability.score_csg_1003_completeness

Generate credit memo

runs

A risk-scored memo in markdown, with structured signals and a PDF.

capability.generate_credit_memo

Logic

3 of 3 run today

If / else

runs

Two branches from one condition over anything upstream produced.

logic.if

Switch

runs

Many branches keyed off a value, with a default arm.

logic.switch

Wait

runs

Pause the run and pick it up later without losing state.

logic.wait

People

1 of 1 run today

Human approval

runs

Stops the run, shows a named reviewer exactly the data it is asking about, and records who decided what and when.

human.approval

Connectors

1 of 4 run today

Post to Slack

runs

Posts into a channel or thread in a connected workspace.

connector.slack.post_message

Send Telegram message

coming soon

The Telegram connection exists; the outbound send step does not yet.

connector.telegram.send_message

Send WhatsApp message

coming soon

The WhatsApp connection exists; the outbound send step does not yet.

connector.whatsapp.send_message

Post to Google Chat

coming soon

The Google Chat connection exists; the outbound post step does not yet.

connector.google_chat.post_message

Agents

1 of 2 run today

Processor: application readiness

runs

Pilot: assess application readiness, propose an operations Slack follow-up for approval, and resume as the application changes. Requires workspace setup.

agent_step.core_agent

Hand off to agent

coming soon

Passes a task to a deployed agent — waiting on hosted deployment itself.

agent_step.hosted_agent

Application-event triggers — created, qualified, certified — are available too. Capability nodes appear in the palette for all seven registered capabilities; five of them return a contract-locked pending envelope, which the builder tells you before you wire one in.

Where a person fits

Approval is a node, not a convention

The point of drawing the procedure is that the handoff to a human is part of it. An approval node stops the run, shows a named reviewer the data the decision turns on, and records the decision against the run.

It stops, it does not guess

Approved, rejected, and timed out are three separate branches. A flow that wants to act on a rejection has to say so on the canvas.

The reviewer sees the inputs

The node carries the data it is asking about, so approval is not a rubber stamp on a summary somebody else wrote.

Who decided is on the run

User, timestamp, choice, and comment land on the run record next to everything the flow did before and after.

What the agent knows before it acts — the knowledge layer.