Dashboard Apps — Embed Custom Tools in Ndoto
Embed internal tools, CRMs, order management systems, or any web app directly into the Ndoto conversation view using Dashboard Apps.
Dashboard Apps
Dashboard Apps let you embed any web application directly into the Ndoto conversation panel. When an agent opens a conversation, the embedded app loads alongside it — giving your team access to order history, CRM records, billing details, or any internal tool without switching tabs.
Manage dashboard apps from Settings → Integrations → Dashboard Apps.
How It Works
A Dashboard App is a URL that loads inside an iframe next to the conversation view. When a conversation is open, Ndoto passes context to the embedded app (account ID, conversation ID, contact details) so it can display relevant information automatically.
The app receives this data via the browser's postMessage API.
Creating a Dashboard App
- Go to Settings → Integrations → Dashboard Apps
- Click Add new Dashboard App
- Enter a name for the app (shown in the panel tab)
- Enter the URL of the web app to embed (
https://...) - Click Create
The app will appear as a tab in the conversation sidebar for all agents in the account.
Context Passed to the App
When a conversation is open, Ndoto sends a postMessage to the iframe with the following payload:
{
"event": "appContext",
"data": {
"conversation": {
"id": 123,
"inbox_id": 1,
"status": "open",
"contact": {
"id": 456,
"name": "Jane Doe",
"email": "[email protected]",
"phone_number": "+1234567890"
}
},
"currentAgent": {
"id": 7,
"name": "Support Agent",
"email": "[email protected]"
}
}
}Your app can listen for this message and use the data to load the right customer record or context automatically.
Listening for context in your app:
window.addEventListener('message', function (event) {
if (event.data.event === 'appContext') {
const { conversation, currentAgent } = event.data.data;
// Use conversation.contact.email to load the customer record
}
});Use Cases
- CRM lookup — Show the customer's profile and deal history from HubSpot, Salesforce, or a custom CRM
- Order management — Display recent orders from Shopify, WooCommerce, or your own backend when a customer contacts support
- Billing details — Pull up subscription status and invoice history
- Internal knowledge base — Surface relevant internal articles based on the conversation topic
- Custom ticketing — Link conversations to tickets in an internal system
Frequently Asked Questions
Can multiple Dashboard Apps be active at once? Yes. Each app appears as a separate tab in the conversation sidebar. Agents can switch between them.
Does the app load for every conversation?
Yes. The app loads whenever an agent opens a conversation. Your app receives the conversation context via postMessage and can decide what to display.
What URL should I use? The URL must be publicly accessible and served over HTTPS. If your app requires authentication, it should handle that internally (e.g. via SSO or a session cookie).
Can I restrict which agents see a Dashboard App? No — Dashboard Apps are account-wide and visible to all agents.
Related Docs
Conversations — How Ndoto Manages Customer Messages
Learn how Ndoto conversations work — creation, states (open, pending, snoozed, resolved), assignment, labels, macros, CSAT, and bulk actions. Everything your team needs to manage customer support at scale.
Help Center — Self-Service Knowledge Base in Ndoto
Learn how to build and publish a customer-facing Help Center with Ndoto. Create portals, articles, categories, multilingual content, and semantic search. Reduce support volume with self-service.