For agents

Automate any business process. With business context.

Canopy Agentic Workflows chain triggers, agents, approvals and actions on top of Canopy, so every automated step knows the metric, the driver, the owner, the plan and the objective it serves.

CanopyCanopy Agents
Canopy Agentic Workflows

Automation with context. Not another cron job.

The metrics start the process. Business-aware triggers

Missed targets, thresholds, outliers and silent metrics fire workflows, and so does a briefing landing, alongside schedules and inbound webhooks when you want them.

Humans gate what matters. Approvals first-class

Named reviewers, explicit rejection paths, and escalation up the real org chart when nobody responds.

Fully agentic where you choose. Your agents as steps

Drop platform or custom agents into any flow and fan out across your systems with the HTTP action.

Triggers that watch the business, not the clock

Generic automation fires on schedules and webhooks; these workflows also fire on the business itself. A target missed at period end, a threshold crossed, an outlier detected, a metric gone silent, a RACI assignment made, a task created or overdue, a briefing landing. Schedules and inbound webhooks are there when you want them, but the point is that the metrics themselves can start the process.
Trigger
Trigger typeOn target missedMetrics
  • On a scheduleFire on a schedule you define.
  • Manually runRun on demand from the UI.
  • Inbound webhookFires when a signed HTTPS POST arrives at the workflow URL.
  • Metric thresholdFires when a metric value crosses a threshold you set.
  • Metric outlierFires when a metric is flagged as a statistical outlier.
  • On metric stalenessFires when a metric stops updating for the threshold you set.
  • On target missedFires when a metric misses its target at period close.
  • Task eventFires when a task is created, completed, or goes overdue.
  • RACI assignedFires when a user is assigned a RACI role on a metric.
  • When a briefing is readyFires when the company briefing is ready. The briefing's id and period are available to later steps.

Build it visually. Publish it live.

The full palette, exactly as it appears on the canvas. Ten triggers watch metrics, tasks, ownership, briefings, schedules and webhooks; steps run agents, query metrics, branch, delay and wait for approval; actions post to Slack, send email, create tasks, assign RACI, escalate ownership and call any external system. Chain them on the canvas and publish: live enrolments re-flow, and every run records the exact path taken.
Revenue target missed, find the driver and act on itPublished
Search nodes

Triggers

On a schedule
Manually run
Inbound webhook
Metric threshold
Metric outlier
On metric staleness
On target missed
Task event
RACI assigned
When a briefing is ready

Steps

Run agent
Query metric
Condition
Wait for approval
Delay

Actions

Send Slack
Send email
Create task
Assign RACI
Escalate
HTTP request
Trigger
On target missedRevenue, at period closeMetrics
Root-cause the missOpus 5.1Agents
Wait for Sarah’s approvalAccountable. Escalates in 24hUtilities
Approved
CRM

Re-score stalled opportunities

Finance

Reforecast deferred revenue

Slack

Brief the account owners

Wait 14 daysUtilities
Verify the impactAgainst the counterfactualMetrics

Start from a template

The gallery ships production-shaped starting points: the monthly RACI audit email, stale-data and missed-target escalation up the org chart, threshold-triggered RACI reassignment, webhook-to-partner-API fan-out, and an approval policy that walks up the reporting line on its own. Pick one, adjust the nodes, publish.

Monthly RACI audit email

First of each month, audits RACI assignments and emails a digest of the gaps.

ScheduleAgentEmail

Stale data: owner, then manager

Pings the metric owner when their data goes stale; if nothing changes, escalates to their manager via the org chart.

StalenessEscalateSlack

Target missed: escalate up the chain

Fires at period close when a metric misses its target. Notifies the Responsible owner, then their manager.

TargetEscalateEmail

Threshold breach: reassign Accountable

When a metric crosses a threshold, moves the Accountable RACI to the manager of whoever currently owns it.

ThresholdRACIOrg chart

Approval with escalation

An approval that walks up the org chart on its own: notify the manager, reassign, then auto-decline if nobody acts.

ApprovalOrg chartEscalate

Inbound webhook to partner API

Forwards an inbound webhook to a partner system over authenticated HTTP, with the body templated from the payload.

WebhookHTTPAuth profile

One-off investigation

Manually triggered agent run with a Slack summary. Useful for ad-hoc deep dives.

ManualAgentSlack

Rich business context at every step

Steps read Canopy as they run: the driver behind the move, the Accountable owner, the verified outcome history, the plan, and the objective and initiative the metric serves. Workflows understand your org chart natively, so you can escalate to a user's manager, assign RACI by job title, or find the common manager of a team without hardcoding a single name.
Send SlackMessaging

Channel

#revenue

Body

{{ trigger.metric.name }} missed target: {{ trigger.metric.value }} vs {{ trigger.metric.target }}

Plan: {{ steps['action-plan'].output_markdown }}

Owner: {{ metric.accountable.name }}

Live values from the trigger, upstream steps and Canopy context.

Humans stay in the loop, by design

Approvals are first-class: the next action only runs if the named reviewer approves, rejections branch to their own explicit path, and approvals can escalate up the org chart automatically when nobody responds, with the policy visible on the run itself. You decide which steps need a person and which do not.
Trigger
Fired
On target missedMetrics
Completed
Generate Action PlanOpus 5.1Agents
Waiting
Wait for Sarah's approvalUtilities
Escalate to managerWorkdayOwnership

Then let agents run it end to end

The same plan a person would approve can fan out across your systems: re-score stalled opportunities in your CRM, reforecast deferred revenue, brief the account owners in Slack. Deploy your own agents and drop them in as steps alongside the platform ones, so the whole process can be fully agentic where you choose. And the HTTP action calls any external system with saved auth profiles and tunable retries, so the workflow's reach is your stack, not our integration list.
Running
Coordinate the agent teamAgents
CRM

Re-score stalled opportunities

Finance

Reforecast deferred revenue

Slack

Brief account owners

Every action traced back to the run.

Every run tells you exactly what happened

Workflows keep their own run history: every fire shows the path taken through the graph, the inputs at each step and the outputs produced. When a run is waiting on someone, the run page says who and what happens next. No piecing it together from logs.
Run #482 · Revenue target missedtoday, 09:00
Trigger
Completed
On target missedMetrics
Completed
Run action-plan agentAgents
Pending
Wait for Sarah's approvalUtilities
Waiting on Sarah. If nobody responds, this escalates to her manager automatically.

Common questions

Do Canopy Agentic Workflows work without the context layer?

The builder works standalone, but the point is the context: driver edges, RACI, verified outcomes, plans and the objectives and initiatives targeting each metric are what make an automated step safe and specific. Without context you have generic automation; with Canopy the workflow knows the business it is acting on.

Can a workflow call systems outside KPI Tree?

Yes. The HTTP request action calls your own services, dashboards or webhooks using saved auth profiles, with retry behaviour you can tune per step. Inbound webhooks can also trigger workflows from outside.

What happens when an approval is rejected?

Rejections branch to their own explicit path, so you handle both outcomes deliberately rather than the workflow silently stopping.

What can start a workflow?

A schedule, a metric crossing a threshold, an outlier, a silent metric, a missed target at period end, a RACI assignment, a task being created or becoming overdue (including tasks inside the initiatives that deliver your strategy), the company briefing being ready, or an inbound webhook.

What do agent steps cost to run?

Less than the same agent on raw tables. Steps read Canopy's precomputed context, one call per metric instead of roughly ten warehouse queries, so agent steps burn an order of magnitude fewer tokens and the warehouse sees one query per metric, not one per question. Workspace spend caps and per-agent cost tracking in AI Usage cover workflow runs too.

Can we see why a run did what it did?

Every run records the exact path taken, the inputs at each step and the outputs produced, including which branch an approval took and any escalations along the way.

See it on your own metrics.