Now in private beta

Build intelligent workflows. With real code.

Steering is the integration platform for teams who write code. Wire up APIs, enrich data with Claude AI, route on any condition, inspect every byte. One platform — from cron job to human approval.

AI built in, not bolted on.

Every step has access to await ai.prompt() for direct Claude answers and await ai.askWithTools() to give Claude your own workflows as live data tools — so it can query real state before responding. Define personas with system prompts, maintain conversation history, or call Claude raw. No SDK setup. No API key wiring.

Full visibility. Zero guesswork.

Every execution captures the exact input and output of each step, all console.log() output, the payload sent to and returned from every external API, and runtime in milliseconds. Filter by step, compare runs, and see exactly where an integration broke — without adding custom logging.

Built for teams. Secure by design.

Encrypted secrets are scoped per tenant and injected as secrets.API_KEY — never in plain text. Workflows are isolated per tenant with role-based access control. Expose workflows as authenticated REST endpoints or scheduled jobs. Set timeouts and control concurrency with max_parallel.

Why Steering

Real JavaScript execution

Every step runs in a secure isolated VM. Full async/await, fetch(), conditional returns, and fan-in joins — no proprietary DSL, no YAML gymnastics.

AI data enrichment

ai.prompt() for direct Claude responses. ai.askWithTools() to give Claude access to your own workflows as live data tools. ai.ask() for persona-driven, history-aware conversations.

Data tables & cache

Structured key-value tables with JSONPath queries and page-based cursors for sync state. A fast cache for cross-step reuse. No external Redis or DB required.

Human-in-the-loop

human.request() pauses a workflow and emails a form link to an approver. human.createFormUrl() generates a standalone form URL without halting execution. Set expiry, pre-fill fields, route to any address.

Built-in mail

Send transactional or batch emails from any step with mail.send(). Compose templates with mail.prepare(), then dispatch all at once with mail.sendAll(). No extra email orchestration.

XML & format parsing

xmlToJson() is available globally in every step — no npm install, no boilerplate. Handle legacy EDI feeds, SOAP responses, RSS, and vendor XML exports out of the box.

Conditional branching

Route to downstream steps based on success, error, or a custom condition set with $output.setCondition(). Fan out to parallel steps, fan in with join_mode: all.

100% observability

Every run logs inputs, outputs, console output, and timing per step. Nothing is a black box — inspect, compare, and debug any execution without touching the code.

Encrypted secrets

Secrets are stored encrypted, tenant-scoped, and injected as secrets.NAME at runtime. Never interpolated into source, never logged.

Built for integration-heavy teams

Whether you run your own stack or manage integrations for others, Steering gives you the runtime, the observability, and the AI tooling — without stitching together five separate services.

Ecommerce & ops teams

  • Sync orders, inventory, and fulfilment across Shopify, 3PLs, ERPs, and carriers
  • Enrich product data and classify support tickets with AI in the same pipeline
  • Get alerted when a run fails — with the exact payload that caused it

Tech consultancies

  • Manage integrations for multiple clients from a single multi-tenant platform
  • Each client gets isolated secrets, workflows, and execution logs
  • Expose client-facing REST endpoints or scheduled jobs without spinning up infrastructure

Small tech & platform teams

  • Replace a patchwork of cron jobs, Lambda functions, and webhook handlers
  • One place to see every data flow, every failure, every timing anomaly
  • AI-assisted step authoring so the team that owns the logic writes the integration

AI data enrichment

Call Claude directly from any step script. Use ai.prompt() for direct answers, or ai.askWithTools() to let Claude call your own workflows as tools — querying live data before it responds.

classify-ticket.js
// Fetch a support ticket, then classify it with Claude
const ticket = await fetch(
  `${secrets.API_BASE}/tickets/${input.id}`
).then(r => r.json())

const urgency = await ai.prompt(
  `Classify this ticket urgency:
low / medium / high / critical

${ticket.body}`,
  { maxTokens: 20 }
)

$output({ ticket, urgency: urgency.trim() })

Claude built in

Every tenant gets `ai.prompt()` and `ai.askWithTools()` in every step script. No API wiring, no SDK setup — it just works. Use `askWithTools()` to let Claude call your own workflows as tools to fetch live data.

Service Registry

Register your APIs with base URLs, documentation, and usage notes. The AI assistant learns your stack before writing a single line.

Agentic tool-use

Register any workflow as a callable tool. When you call ai.askWithTools(), Claude decides which tools to invoke, fetches live data from your own systems, and returns a grounded answer — all within a single step.

100% observability

Every byte that moves through your workflows is captured and inspectable — from the data entering each step, to API calls made to external systems, to the final output. Real operational insight, not just pass/fail status.

Step inputs and outputs

Inspect the exact data that entered and left every step in every run. No black boxes — every transformation is visible.

Integration data flows

See the payloads sent to and received from every external system your workflows touch. Spot integration failures instantly.

Console output per step

Every `console.log()` in your step scripts is captured against the run. Debug runtime behaviour without guessing.

Runtime metrics

Execution time is recorded per step and per run. Identify slow integrations and optimise with real data, not estimates.

How it works

01

Connect your services

Register APIs in the Service Registry with base URLs, documentation links, and usage notes. Add encrypted secrets. The AI assistant learns your stack.

02

Build steps with AI

Describe what a step should do. The AI writes JavaScript pre-wired with your services, secrets, and workflow data globals.

03

Trigger, monitor, iterate

Run workflows via API or schedule. Inspect every execution — inputs, outputs, console, and timing — in one focused view.

Ready to take control?

Request early access and we'll reach out when a spot opens.

Join the waitlist