Embed WhatsApp Studio in your CRM, one workspace per client
ChatVerse WhatsApp Studio can run inside your own CRM or website. You get one embed link for your organization. Every client signs in with their own access key and sees only their own WhatsApp workspace: auto-reply bot, bulk campaigns, chat flows, forms, invoices and follow-ups. Colors and fonts match your product, and everything can be managed from your server with an API.
It is built for agencies, CRM and SaaS vendors, and consultants who run WhatsApp for several businesses.
What you get
- One embed link per organization, shared by all your clients. You can regenerate it at any time; the old link stops working.
- A separate workspace and one access key per client. Clients cannot see each other's data.
- The full WhatsApp Studio inside your page: an auto-reply bot trained on your own PDF or FAQ, bulk campaigns with Meta-approved templates, a drag-and-connect chat flow designer, forms collected in WhatsApp, an invoice sender, and AI or fixed-message follow-ups.
- Your colors, font and light or dark mode, set once or matched to your page automatically.
- Automatic sign-in from your own login, so clients never paste a key.
- An organization API to list clients, read or change keys, suspend or reactivate clients, set who pays for credits and read usage.
- Developer mode for each client: a client can create its own API key for its own WhatsApp account to automate from its server. Clients cannot create organizations.
- Per-client monthly billing where the first client is free.
How it works
- Create an organization in WhatsApp Studio (Organization tab): name, website, support email. The sign-in page shows only your organization's name.
- Add clients. Use an email or your own reference ID so you know which person each client and key belongs to. Each client gets a unique client ID and one access key.
- Embed the dashboard in your CRM with the link or the loader script.
- Each client connects their own WhatsApp Business account and works in their own space.
Clients and access keys
One key per client. A client has exactly one access key. You can generate a new one or write your own custom key (at least 32 characters with enough variety). Changing it replaces the old key; there is never a second key to track.
Readable by API. Your server can fetch a client's current key and show it to the right user in your CRM. Keys are stored encrypted.
What happens when a key changes. Anyone signed in with the old key is signed out, and the page asks for the new key.
Control. Suspend or reactivate a client, or delete it completely. Deleting removes the client and its key.
Embed it: two ways
1. Automatic sign-in (recommended)
Your server asks ChatVerse for a one-time launch link using the client's access key. The link works once and expires in about a minute, so copying it from the page source is useless. The access key never appears in the page.
// On YOUR server. The access key stays here.
app.get("/chatverse-launch", requireYourOwnLogin, async (req, res) => {
const r = await fetch("https://api.chatverse.io/embed/launch", {
method: "POST",
headers: { Authorization: "Bearer " + process.env.CHATVERSE_KEY },
});
const { data } = await r.json();
res.json({ launchPath: data.launch_path });
});
<div id="chatverse-whatsapp" style="height:calc(100vh - 64px)"></div>
<script src="https://chatverse.io/embed.js"></script>
<script>
ChatVerse.mount("#chatverse-whatsapp", {
getLaunchPath: () =>
fetch("/chatverse-launch").then(r => r.json()).then(d => d.launchPath),
});
</script>
2. Simple iframe (the client pastes their key)
<iframe src="https://chatverse.io/embed/whatsapp/YOUR_EMBED_LINK"
style="width:100%;height:100vh;min-height:560px;border:0"
allow="clipboard-read; clipboard-write"></iframe>
Fit and size
The dashboard fills its container, so give the container a height (at least 560px). At about 1000px wide and above it shows a side menu; below that it switches to a compact mobile layout that works down to phone width. If your site sets a Content-Security-Policy, allow chatverse.io in frame-src and script-src.
Match your look
In the Appearance tab you see a live preview while you choose an accent color, background, font, corner roundness and light or dark mode. Turn on match my page and the loader reads your page's light or dark mode, background color and font and keeps the dashboard in step, including when your site switches themes. The same settings can be read and changed with the API.
Who pays for AI credits
Choose per client when you create it, and change it any time:
- Client pays: the client buys its own credits from ChatVerse using the credit packs shown inside the dashboard.
- Organization pays: usage is taken from your credit balance, and the client sees that credits are provided by you. If your balance runs out, that client's auto-reply bot pauses.
Credits used depend on the AI model used and the amount processed. Meta's own WhatsApp messaging charges are separate.
Pricing
- The first client is free.
- Each additional client is a monthly plan, currently 299 INR per client per month. USD and EUR are available at checkout.
- Pay for one client, several, or all at once. Or pay in advance for clients you will add later.
- If a paid client's month ends, its dashboard pauses until you renew it. Nothing is deleted.
- A client added on a paid month starts with a set amount of starter credits.
Prices are set in your plan and can change; the Clients tab always shows the current price and how many clients you have added out of those available.
Organization API
Create an organization API key in the dashboard (API keys tab) and choose its permissions. Use it only from your server. Base URL: https://api.chatverse.io. Send Authorization: Bearer cv_org_….
| Method | Path | Permission | What it does |
|---|---|---|---|
| GET | /v1/organization/clients | list_clients | List clients |
| GET | /v1/organization/clients/{client_id} | read_clients | One client |
| GET | /v1/organization/clients/{client_id}/key | manage_credentials | Read the client's access key |
| PUT | /v1/organization/clients/{client_id}/key | manage_credentials | Generate or set a new key (signs the client out) |
| POST | /v1/organization/clients/{client_id}/revoke | revoke_client | Revoke a client |
| POST | /v1/organization/clients/{client_id}/reactivate | revoke_client | Reactivate a client |
| PUT | /v1/organization/clients/{client_id}/credit-mode | manage_client_billing | Client pays or organization pays |
| GET / PUT | /v1/organization/embed-theme | manage_embed_theme | Read or set the appearance |
| GET | /v1/organization/clients/{client_id}/usage | read_usage | Usage for a client |
| POST | /embed/launch | client access key | One-time launch link for automatic sign-in |
Security
- Launch links work once and expire in about a minute.
- Sessions are short (15 minutes, renewed automatically, 12 hours at most) and tied to the link they were opened from. Opening a different link signs you out of the old one.
- Changing a client's key, or regenerating the embed link, ends existing sessions.
- Access keys are encrypted when stored. Organization API keys are shown once.
- An embedded session can only reach WhatsApp Studio features, nothing else in the account.
- Sign-in and key calls are rate limited, and a Log out button ends the session.
Embed without an organization
If you only need your own account inside your CRM, use the Add in your CRM tab. It gives your account an embed link and key, with the same appearance settings and sign-in options. It needs an active WhatsApp plan.
FAQ
Can I embed WhatsApp in my CRM?
Yes. Place the embed link or the loader script in your CRM page. Each client signs in with their own key and sees only their own workspace.
How does each client log in?
With one access key, or automatically through a one-time launch link from your server.
Can I change a client's key?
Yes, to a generated or custom key. The old key stops working and signed-in sessions end.
Can I match my brand?
Yes: colors, font, roundness, light or dark mode, or automatic matching with your page.
Who pays for AI credits?
Per client: the client or your organization. You can switch it later.
What does it cost?
The first client is free; each additional client is a monthly plan, currently 299 INR per client per month, payable for one, several or all clients at once, or in advance.
Can I manage clients from my server?
Yes, with organization API keys and scoped permissions.
Can my clients create their own API keys?
Yes. A client turns on developer mode in their embedded dashboard (Account, Connection) and gets one API key for their own WhatsApp account, for use from their own server. They cannot create organizations or sub-accounts. If a paid month ends or you suspend the client, the key stops working.
Can I embed my own account without an organization?
Yes, with the Add in your CRM tab and an active WhatsApp plan.