White-label embed portal
The embed lets your customers connect their own integrations, under your brand, inside your app. You issue a short-lived session for each end user, and they see a branded "Integrations" surface where they connect their own Shopify or other platforms. Manage it under Embed.
Activate the embed
On the Embed page, choose a slug (like my-company) and click
Create. Add every customer application origin under Embed → Settings,
choose the permitted bridge types and features, and then activate Embed.
Embed it in your app
The setup card provides ready-to-copy snippets for React, JavaScript, and
your server. Your authenticated backend mints a session and the SDK supplies
its client secret to the iframe through a postMessage handshake.
See the Orderly Embed SDK guide for package installation, complete options, events, and Java support.
-
On your server, create a session for the signed-in customer:
import { Orderly } from '@orderly/node'const orderly = new Orderly(process.env.ORDERLY_API_KEY)app.post('/api/orderly/embed-session', requireUser, async (req, res) => {const session = await orderly.embeds.createSession({externalId: req.user.id,name: req.user.companyName,scopes: ['bridges:read', 'bridges:write'],ttlSeconds: 900,})res.set('Cache-Control', 'no-store')res.json({ clientSecret: session.clientSecret })}) -
In your frontend, render the embed with that secret:
import { OrderlyEmbed } from '@orderly/embed-react'export function Integrations() {return (<OrderlyEmbedfetchClientSecret={() =>fetch('/api/orderly/embed-session', {method: 'POST',credentials: 'same-origin',}).then((response) => response.json()).then((data) => data.clientSecret)}/>)}
Never accept the end-user identifier from the session-creation request body. Derive it from your authenticated application session. Orderly secret API keys remain server-only, and client secrets must not be logged, persisted, or placed in URLs.
The ek_ publishable key can identify public branding configuration, but it
cannot create an embed session or authorize access to an end user's data.
You do not invite embed users by hand. An end user is provisioned automatically
the first time your server calls createSession for their externalId. The
Users page lists them and the bridges each has connected.
Brand it
Under Embed → Branding, set your Primary, Background, and Text colors, Font Family, Border Radius, and an HTTPS Logo URL. The preview updates as you edit. Click Save Changes before testing through your SDK integration.
Configure what customers can do
Under Embed → Settings:
- Feature Modules toggles what the embed exposes: Bridges (always on), Live Data Room, Action Requests, Smart Alerts, End User Webhooks, and Branded Tracking.
- Allowed Origins is mandatory for active embeds. Enter exact origins such
as
https://app.example.com; paths and wildcard domains are not accepted. - Allowed Bridge Types limits which platforms customers can connect.
- Default Dispatcher auto-routes orders from embed-created bridges.
- Limits caps bridges per user.
Handle action requests
If you enable Action Requests, your customers can submit requests against their orders (cancel, hold, expedite). They land in Embed → Action Requests as a review queue. Filter by status, then Approve or Deny each, with an optional resolution note.
The Events page is an audit log of embed activity: sessions created and revoked, bridges connected, and users removed.
Security model
- Each
est_client secret is short-lived, belongs to one organization and one end user, and contains only server-approved scopes and bridge types. - Disabled end users, revoked sessions, expired sessions, inactive embed configurations, and unlisted parent origins fail closed.
- The browser cannot exchange a publishable key or choose an
externalIdto create a session. - Use a dedicated API key with the
embed:managescope for session issuance. - Issue a new client secret when
fetchClientSecretis called. Do not reuse one client secret between users or browser sessions.
Next steps
- Install an Embed SDK: create secure sessions and render the customer experience.
- Create an API key: you need one to mint embed sessions.
- Route orders with dispatchers