Skip to content
Novalink

AI agent workflows you can watch run

Describe a workflow or wire it on a canvas, connect your apps, APIs and MCP servers, and watch every node report its status live. Any run can be replayed afterwards.

Runsucceededf2a9c4d1Ticket triage
NodeStatus
Ticket InSucceeded
Customer LookupSucceeded
ClassifierSucceeded
Urgent?Succeeded
Escalation NoteSucceeded
Customer ReplySkipped
MergeSucceeded
ResultSucceeded
Run succeeded in 2.41s
An illustrative run of the Ticket triage workflow, replayed on a loop.

Connect the apps you already use, plus any HTTP API and any MCP server.

GitHubSlackSlackNotionLinearTavilyTavily

Watch it run

Scroll, and the demo workflow runs beside you.

Ticket triageIdleDemo data
Ticket In
triggerManual Trigger
Customer Lookup
lookupHTTP Request
Classifier
classifyAgent
Urgent?
is_urgentIf
Escalation Note
escalateAgent
Customer Reply
replyAgent
Merge
mergeMerge
Result
resultOutput
Step 1 of 5
  1. Start with a graph you can read

    A workflow is a versioned JSON graph; the canvas is only its editor. Templates such as {{ nodes.classify.output.urgency }} may reference upstream nodes only.

  2. The agent is the core node

    A tool edge attaches any capable node to an agent, and the agent decides when to call it. Here the classifier looks the customer up before it answers.

  3. Structured output picks the branch

    The agent returns JSON matching your schema. The If node reads urgency and routes the run; the branch it did not take is marked skipped.

  4. Every run can be replayed

    Each run stores the graph it executed, so any past run reopens on a read-only canvas with every input and output intact.

  5. Your keys stay yours

    Keys and tokens are encrypted at rest, never returned to the browser, and scrubbed from what a run records.

Demo workflow: Idle

An agent, its tools, and a path you can follow

Three ideas carry the whole system.

Classifier
Customer Lookup

Agents call tools

A tool edge attaches any capable node to an agent, and the agent decides when to call it.

Building workflows
Urgent?
Escalate
Reply

Structured output picks the branch

The agent returns JSON matching your schema. The If node reads a field and routes the run.

Templates and expressions
Trigger
Classify
Result

Every run can be replayed

Each run stores the graph it executed, so any past run reopens on a read-only canvas.

Execution controls

Describe it. Get a graph you can run.

Write what should happen in a sentence. You see the draft before anything is created.

  • Every node and field comes from the live schema, not a guess
  • The editor's own checks run on the draft; problems go back for a fix
  • Your connected apps and APIs are picked by their real ids
Generate with AISonnet 5
Describe the workflow

When an urgent GitHub issue comes in, check it against open issues, summarise it, and post the summary to #support in Slack.

Issue In
issueManual Trigger
Triage
triageAgent
Post Summary
slackPost message
Result
resultOutput
Open Issues
githubList issues
Validated, 5 nodes

Your apps, your APIs and any MCP server

Connect the apps you use, any HTTP API, or any MCP server. Agents call them by name.

Tokens and keys are encrypted, never sent to the browser, and scrubbed from run records.

GitHub

Create issue · Comment on issue · List issues · Get repository

Slack

Slack

Post message · List channels

Notion

Search · Create page in database · Append text to page

Linear

Create issue · Search issues

Tavily

Tavily

Web search · Extract page content

Every published workflow is an API

Publishing freezes a version, so editing never changes what production runs.

  • Post input, read the output from the response
  • Wait for the result, poll a run, or stream it over SSE
  • Scope a key to chosen workflows; shown once, stored as a hash
curl https://api.novalink.live/v1/workflows/WORKFLOW_ID/runs \
  -H "Authorization: Bearer $NOVALINK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": {
      "message": "Refund the double charge on my renewal"
    }
  }'
Response200
{
  "run_id": "f2a9c4d1-6b3e-4a52-9c77-0e1d8b5a3f42",
  "status": "succeeded",
  "output": { "note": "Refund issued and confirmed with the customer." },
  "total_tokens": 1183,
  "duration_ms": 2410
}

14 node types, plus every API and tool server you use

Each one works as a step, or as a tool an agent can call.

Read the node reference

Questions, answered

What Novalink does, what it runs on, and what happens to your keys.

Build the first workflow

Describe it or start from a blank canvas. Logic-only workflows run without any key; add an Anthropic credential when you reach for an agent.