Skip to content

Embedded · inside your product

Workflows inside your SaaS.

Your customers build, run, and approve workflows without leaving your product. Orch8 keeps each customer's runs separate, meters them for your invoices, and renders under your brand.

$299/month with 100 active customers included, then $2 per active customer. See pricing →

What your customers see

An interactive mock of the embed kit inside a vendor's app. Switch customers, change the brand color, resolve an approval, and hide the badge. The data is made up and nothing is sent anywhere.

Your app · customer workspace

Demo · sample data

Theme: --orch8-accent

<orch8-runs>

  • new_patient_intakemanager_approvalwaiting
  • invoice_remindersend_emailcompleted
  • invoice_reminderwait_3_daysrunning

Only Acme Dental's runs are visible. The token is scoped to one sub-tenant.

<orch8-approvals>

Approve a 15% discount on invoice #4411?

<orch8-badge> Workflows by Orch8

Built for multi-customer products

Sub-tenants, not new tenants

Send X-Orch8-Sub-Tenant with each request. Runs and sequences are scoped to that customer inside your tenant, list endpoints filter by it, and requests without the header behave exactly as before.

Per-customer limits

Cap monthly executions and concurrent runs per sub-tenant. Admission rejects over-quota starts with HTTP 429 and sub_tenant_quota_exceeded, so one noisy customer cannot starve the rest.

Scoped embed tokens

Your backend mints a short-lived token (one hour at most) for one sub-tenant, a set of scopes, and optionally a list of sequences. The browser never sees your API key. Step outputs stay hidden unless a sequence opts them in.

Embed kit widgets

Framework-free web components for a run timeline, run list, approvals inbox, and a sequence builder. Shadow DOM keeps your CSS and ours apart; theming uses --orch8-* custom properties. React wrappers are included.

Metering you can rebill

One call returns executions started, completed, steps executed, and last activity per sub-tenant for any window, plus the count of active sub-tenants. Feed it into your own invoices or usage-based pricing.

Staged rollouts per customer

Release a new sequence version to named sub-tenants or a percentage of them, bucketed by a stable hash. Everyone else stays on the default release until you widen it.

Three pieces of integration

1. Mint a token on your server

Scopes are runs:read, runs:start, approvals:resolve, sequences:read, and builder:edit. A builder token may only change sequences owned by its sub-tenant.

terminal
# Your backend, after it authenticates the user
curl -X POST https://orch8.internal.example.com/api/v1/embed/tokens \
  -H "x-api-key: $ORCH8_API_KEY" \
  -H "content-type: application/json" \
  -d '{ "sub_tenant": "acme-dental",
        "scopes": ["runs:read", "approvals:resolve"],
        "sequences": null,
        "ttl_seconds": 900 }'
# → { "token": "o8e1.…", "expires_at": "…" }

2. Drop the widgets into your page

Set a tokenProvider property instead of the attribute to refresh tokens before they expire. Allowed origins are configured on the engine.

customer-workflows.html
<!-- npm install @orch8/embed, then import "@orch8/embed" once -->
<orch8-runs
  token="o8e1.…"
  base-url="https://orch8.example.com"></orch8-runs>

<orch8-approvals
  token="o8e1.…"
  base-url="https://orch8.example.com"></orch8-approvals>

<style>
  orch8-runs, orch8-approvals {
    --orch8-accent: #0b7285;
    --orch8-radius: 8px;
  }
</style>

3. Meter and rebill

A sub-tenant is active in a window when it starts at least one execution. The same number drives the Embedded plan, so your cost and your customers' usage come from one source.

terminal
curl "https://orch8.internal.example.com/api/v1/usage/sub-tenants?from=2026-09-01T00:00:00Z&to=2026-10-01T00:00:00Z" \
  -H "x-api-key: $ORCH8_API_KEY"
# → { "items": [{ "sub_tenant": "acme-dental", "executions_started": 412, … }],
#     "active_sub_tenants": 37 }

White-label and licensing

The engine is BUSL-1.1. Embedding it in a product you offer to third parties can fall outside the free grant when that offering competes with Orch8, and the license does not define “competitive”. The Embedded plan includes a commercial license key with white-label rights: the engine verifies it offline, and a valid white_label feature lets you hide the Orch8 badge. Without a key, widgets show the badge and the engine never blocks executions; above three active sub-tenants it adds a license warning header.

OEM founder licence: $4,800/year

Annual prepay for up to 3 design partners who embed or redistribute Orch8 in a product they sell. Includes the commercial embedding licence and white-label rights, and a direct line to the maintainer while the Embedded roadmap is shaped with you.

Reserve a founder seat →

Status and limits

  • • Sub-tenants, embed tokens, license keys, and the embed kit are new. Check the changelog for the engine release that ships them before you plan a launch date.
  • • Embed routes are off until you configure a token secret, and they respond only to the origins you allow.
  • • You still own authentication in your product: mint tokens only after you know which customer the user belongs to.
  • • Need workflows for your own users' lifecycle rather than a product feature? See SaaS lifecycle workflows.

Show us where it goes in your product

Tell us how many customers you have, what they need to automate, and whether you ship SaaS, on-premises, or both. We will reply with an integration plan and the license terms that fit.