Context
Tell the agent who is using the app, where they are, and which customer or tenant they are in.

Use Demoloop inside enterprise software, customer portals, and SDK showcases. Pass the current user and product context so every demo starts with the evaluator's real question—not a generic tour.
Install the SDKThe SDK gives the product demo structured knowledge about the host app and lets the host approve exactly which actions can run. Demoloop remains the demo layer; your application remains in control.
Tell the agent who is using the app, where they are, and which customer or tenant they are in.
Pass screens, workflows, account-specific capabilities, and the purpose of the custom software.
Expose approved host actions like opening a report, modal, or guided setup path.
Launch the product demo first, then offer an expert video call when the visitor needs a person.
Use the framework-neutral package in any browser app. Identity, context, events, actions, and modules stay synchronized with the hosted demo experience.
npm install demoloop-widgetimport {
init, identify, setContext, track, open
} from "demoloop-widget";
await init({
key: "dl_xxx",
actions: {
visitors: "/app?tab=visitors",
analytics: "/app?tab=analytics"
},
modules: [
{ id: "product-demo", experience: "demo", presentation: "modal" },
{ id: "video-call", experience: "video-call", presentation: "modal" }
]
});
identify({ id: user.id, email: user.email, company: account.name });
setContext({ section: "Analytics", software: { tenant: account.name } });
track("viewed_feature", { feature: "conversion-report" });
open({ module: "product-demo" });The React entry point provides a provider, a hook, and lifecycle subscriptions while keeping the underlying SDK available for advanced integrations.
View demoloop-widget on npmimport {
DemoloopProvider, useDemoloop
} from "demoloop-widget/react";
function App() {
return (
<DemoloopProvider options={{ key: "dl_xxx" }}>
<ProductDemoButton />
</DemoloopProvider>
);
}
function ProductDemoButton() {
const demoloop = useDemoloop();
return (
<button onClick={() => demoloop.open({ module: "product-demo" })}>
Show me how it works
</button>
);
}
Keep a website demo, an in-product SDK assistant, and an optional expert video call on separate surface keys. Teams manage them together without mixing visitor context or configuration.
Read the SDK referenceAnswer from approved knowledge, understand runtime software context, open registered host actions, and guide the relevant product workflow.
A video-call module can hand the visitor to an expert without changing the SDK contract. Browser permissions remain explicit and media is peer-to-peer.