Building a white-label chat widget: what tenants actually need
A white-label chat widget is not just "remove our logo." It is full brand control, custom domain, and seamless embedding on any website or native app. Here is how we approached it.
What "white-label" actually means
When a tenant asks for white-label, they mean: their customers should not know they are using Orqelo. This has several layers:
Branding. Custom colours, fonts, logo, avatar, launcher icon. The widget should look like it was built by the tenant, not a third party.
Domain. The widget script should be served from the tenant's own domain or a CNAME, not from orqelo.com. (This also avoids some ad blockers that block third-party domains.)
No "Powered by" badge. The footer attribution is removed on plans that include white-label.
Custom bot name and persona. The AI agent should introduce itself by the tenant's chosen name ("Hi, I'm Aria from Nour Boutique") rather than a generic name.
The embedding model
We ship two bundle formats: - UMD (Universal Module Definition) for simple script-tag embedding on any website - ES module for integration into a React/Vue/Angular app that manages its own bundler
The UMD bundle is designed to be loaded async — it does not block page rendering. The loader script is under 1 KB. The widget itself lazy-loads after the page is interactive.
Customisation without deployment
Brand customisation (colours, name, persona, welcome message) is configured in the Orqelo dashboard and applied server-side at render time. The tenant does not need to redeploy their website to change widget colours — they update in Orqelo and the change propagates immediately.
This is important for agency customers who manage widgets for multiple clients. Updating brand colours for 20 clients should not require 20 deployments.
Security on custom domains
When a tenant uses a custom domain for the widget, we verify domain ownership before activating it (a DNS TXT record check). This prevents a tenant from claiming a competitor's domain as their widget origin.
What actually ships differently for Enterprise
Enterprise tenants get a few additional controls: per-page widget overrides (different bot personas on different pages), iframe embedding with CSP compatibility, and a private CDN endpoint for the widget assets. These are edge cases for most SMB tenants but table-stakes for large enterprise deployments.
The practical lesson: start with colour/logo/name customisation. That is 90% of what tenants actually need. The rest of white-label is incremental.