Stacklink
Workflows

Usage and analytics

See what’s being built, what’s running, and what it costs.

Open Workflows → Analytics to answer four questions:

QuestionWhere to look
What’s been built?Workflows by state: draft, live, paused
Is it being used?From first opening the builder to the first successful run
Is it working?Runs, failures and anything waiting for a person
What did it use?AI, app and compute usage

A few counting rules

  • Retry with the same key and an unchanged request, and you get the same run back, so it counts once. A retried step stays inside its run.
  • Simulations, live tests and ordinary runs are counted separately. Live-test usage still counts toward consumption.
  • A child workflow is shown on its own, but its usage is counted once, under the workflow that started it.
  • “Pending” means credits set aside, not a final charge. It can remain after a run finishes.
  • A money field you can’t see is null, not zero. In an embedded app it needs viewUsage and billing:read on your key.
  • A workflow with no AI isn’t free: app actions and code can still use credits.

Show reports in your own app

From your server:

// customerId comes from your authenticated host session.
const customer = stacklink.workflows.forCustomer(customerId);
const inventory = await customer.list({ limit: 50 });
const recent = await customer.activity({ purpose: 'operational', limit: 50 });
const report = await customer.analytics({ days: 30 });
console.log({ inventory, recent, report });
customer = stacklink.workflows.for_customer(customer_id)
inventory = customer.list(limit=50)
recent = customer.activity(purpose="operational", limit=50)
report = customer.analytics(days=30)
print({"inventory": inventory, "recent": recent, "report": report})

Check the signed-in user is allowed to see this customer before you return it. A server key scoped with forCustomer doesn’t act as that person.

Finding problems, and how the report is counted

Use attention.failures to group failures by customer, workflow, step and app. One run with several failing parallel paths can appear in several groups. Open the run to inspect and recover.

The response includes its UTC reporting window, how fresh it is, and how each number is defined. Adoption stages count distinct customers over all time; opening the builder isn’t the same as receiving access. Paused workflows still count as published. Usage without a reliable workflow link shows as unattributed.

Use signed workflow notifications to refresh your own screens. Browser callbacks are only UI signals, not accounting records. Analytics doesn’t create invoices or replace budgets and billing.

Next: All calls and limits →

On this page