Read Account Activity
What happened to your workflows and agents? The account feed shows selected changes and runs, newest first. It covers your own workflows, connections, and agents. Only member additions are organization-wide. The feed is not an audit of every command.
Find activity for the digest
Section titled “Find activity for the digest”In the app: open Workflows → Daily invoice digest → Run history for executions, or Version history for definitions. There is no account-wide Activity menu.
With an assistant: list your workflows:
cai workflow list --limit 100 --jsonNote the digest’s id in data.items as <workflowId>, then check data.hasMore. The default limit is 25. Neither CLI nor MCP exposes a next-page cursor, and MCP workflow_list caps limit at 100. If the target is missing with hasMore: true, use app search and copy its ID from /workflows/<workflowId>/....
This page pins CLI context once, so later scoped commands can omit --workflow. Pin it, then read the account feed:
cai use <workflowId> --jsoncai events --since 7d --limit 50 --jsonPinning provides routing context, not an event filter. MCP uses event_list, and you omit workflowId for account activity. To narrow the feed to the digest:
cai events --for-workflow <workflowId> --type workflow.updated,workflow.published,workflow.run --since '2026-09-01T00:00:00Z' --limit 50 --jsonMCP event_list uses workflowId for this filter and an array for type. A workflow filter silently drops non-workflow kinds. If you request only connection, agent, or member events, you get an empty page and no error. An unknown type is rejected, and the response names the valid set.
Read older events
Section titled “Read older events”Event pages default to 50 rows, maximum 200. Note data.nextCursor as <cursor>, then repeat the same filters while it is non-null:
cai events --for-workflow <workflowId> --type workflow.updated,workflow.published,workflow.run --since '2026-09-01T00:00:00Z' --limit 50 --cursor '<cursor>' --jsonEach page contains strictly older events. A full page offers a cursor even when the next page is empty. Keep the since timestamp fixed while you page.
Which events exist?
Section titled “Which events exist?”| Event kind | Evidence | App destination |
|---|---|---|
connection.created | Connected account | Connections |
workflow.created, workflow.deleted | Workflow identity | Workflows |
workflow.updated | Saves; detail.stateCount counts grouped saves | Workflow → Version history |
workflow.published | Released version and state | Workflow → Version history |
workflow.run | Creation time and current detail.status | Workflow → Run history |
agent.created, agent.published | Creation or publication | Agents → agent |
org.member_added | Member, role, join details | Settings → Organization → Members |
Match an event’s connectionId to data.items[].id from the connection list, then use the matching follow-up below. From data.events, note agentId as <agentId>, executionId as <workflowExecutionId>, detail.groupId as <groupId>, and detail.stateId or detail.workflowVersionStateId as <workflowVersionStateId>. To follow an event on another workflow, re-pin with cai use <workflowId> --json. The commands below read those objects and the workflow history:
cai connection list --jsoncai workflow history --jsoncai workflow history --group <groupId> --jsoncai workflow state --state <workflowVersionStateId> --jsoncai exec get <workflowExecutionId> --jsoncai agent get <agentId> --jsoncai agent versions <agentId> --jsonMCP uses connection_list, workflow_history (group), workflow_state_get (stateId), execution_get (workflowExecutionId), agent_get, and agent_version_list. Scoped workflow reads require workflowId.
Why can an event mislead me?
Section titled “Why can an event mislead me?”The feed is rebuilt from current records. A rename changes older summaries, and deleting a connection removes its creation entry. A deleted workflow no longer opens. A deleted agent keeps its create and publish entries even though agent reads fail.
For workflow.deleted, at uses the previous updatedAt, not the deletion time. detail.timestampSource identifies workflow.updatedAt. A recent deletion can sort earlier than you expect, or fall outside --since.
actor identifies an available account user, sometimes the owner. It cannot tell you whether a change came from the app, the CLI, MCP, or an assistant. When populated, detail.executorType is user, trigger, agent, workflow, or mpp_agent. Unpopulated rows return null, and some runs have no actor.
Events have no run-history cutoff. An old run event can stay visible while its execution read fails with This workflow execution is outside your plan run history limit.
Label edits, settings changes, member removals, connection revocations, and agent draft edits have no event kind. Captured trigger events are separate.
If the account has no available workflow for routing, MCP returns an empty result and a warning, even when other resources exist. The returned routingWorkflowId is transport context, not event ownership.
Next: Debug a Run.