QueryPanel vs Toucan
AI-powered embedded analytics with semantic-layer, row-level controls, and guided product rollout.
Toucan currently positions itself around AI-powered embedded analytics, product-team configuration, semantic-layer governance, row-level controls, and deployment speed. It is a natural fit for teams that want AI chat and self-service dashboards inside their product, but still prefer a managed embedded analytics suite over a thinner developer-owned stack.
Comparison at a glance
This table summarizes typical positioning. Every vendor changes over time—validate details against current documentation and your security review.
| Dimension | Toucan | QueryPanel |
|---|---|---|
| In-app experience for end users | Toucan promotes embedded dashboards, AI chat, self-service analytics, and white-labeled product delivery via SDK or web component. | First-class `@querypanel/react-sdk` components—`QuerypanelEmbedded` for a full dashboard, or `QueryPanelProvider` with `QueryInput` / `QueryResult` for a bespoke flow. They render in your React tree like any other product screen (layout, router, modals, tokens)—not a separate iframe "mini app" on another origin. Mint short-lived JWTs on your server; never ship your workspace private key to the browser. |
| Primary product shape | Managed embedded analytics suite with semantic-layer configuration, AI chat, row-level controls, and product-team-led rollout. | Headful React workspace plus headless Node `ask()` calls for teams that want customer questions, SQL, and charts in one product loop. |
| Trainable knowledge & steering | Toucan emphasizes semantic-layer configuration, permissions, and governed analytics inside the platform. | Gold SQL queries (curated examples the model prioritizes), database annotations (business context on tables/columns, re-embedded with schema), glossary (domain terms and definitions), and tenant-level definitions (isolation field, enforcement, and per-tenant sync context so every ask() is grounded in the right customer slice—not a one-size global prompt). |
| Natural language workflow | Toucan highlights AI chat, specialist-agent workflows, and governed analytics answers without requiring SQL from end users. | Natural language to SQL and chart generation are first-class embedded SDK and server-side API workflows you can keep close to your app logic. |
| Developer ownership | Lower engineering assembly when the vendor-managed dashboard and AI suite already matches your rollout model. | More product-engineering control: React UI in your app tree, Node SDK in your backend, auth and execution aligned with your own infrastructure. |
| Multi-tenant & governance | Toucan promotes row-level controls, semantic-layer governance, white-label delivery, and multi-tenant embedded analytics for product teams. | Tenant id and isolation metadata are part of the embedded JWT and generation request so customer questions stay scoped from the start. |
| Best first win | Ship AI chat, self-service dashboards, and governed embedded analytics in days with a managed platform workflow. | Ship a customer-facing AI analytics route that feels like part of your React product, then extend it with headless zero-trust flows when needed. |
Four layers your team—and your tenants—can train for better answers
Natural language is only as good as the context the model sees. QueryPanel's knowledge system lets you steer retrieval and SQL with curated examples, business meaning on the schema, shared glossary terms, and tenant-aware definitions—so customer-facing analytics matches how your product actually defines revenue, usage, and risk.
Gold queries
Save vetted SQL for recurring questions. Gold examples are retrieved with schema context and treated as the strongest pattern signal when they match the end user's intent—so joins, filters, and metrics follow what your team already proved in production.
Database annotations
Attach free-text business meaning to tables and columns. Annotations are merged into embedded schema chunks (“Business Context”) so search and generation see how revenue, activation, or ARR are really defined in your warehouse—not only raw column names.
Glossary
Define terms customers actually say (“active seat”, “net MRR”, “expansion”). Glossary entries are embedded alongside schema so the model resolves ambiguous language the way your finance and product teams mean it.
Tenant-level definitions
Per-tenant isolation settings and tenant-scoped schema sync mean each customer’s ask() carries the right tenant id and rules—so retrieval and generated SQL respect dynamic per-tenant shape, not a single global tenant-agnostic prompt.
Manage gold SQL and glossary from the dashboard knowledge base; annotations attach business context to schema objects; tenant isolation and sync keep per-customer context aligned. See documentation for SDK routes and ingestion APIs.
When Toucan is the better fit
Honest tradeoffs help your team pick faster—and match how buyers actually decide.
- You want a managed embedded analytics suite that combines AI chat, self-service dashboards, semantic-layer governance, and row-level controls.
- Your product team wants to configure metrics, permissions, and branding without making engineering own the whole reporting layer.
- You prefer a platform story around guided rollout and product-team configuration rather than a more code-adjacent embedded SDK stack.
When QueryPanel is the better fit
Especially strong for B2B SaaS shipping customer-facing analytics on Postgres and similar databases.
- You want a trainable knowledge system—gold queries, DB annotations, glossary, and tenant-aware definitions—so NL→SQL and charts reflect your business, not generic schema-only guesses.
- You want the primary product to be a headful React workspace with built-in AI assistant and tenant customization, rather than a managed dashboard suite plus AI chat.
- You need the same AI ask() contract across embedded customer dashboards, admin tooling, and server-side workflows without adding a separate BI release train.
- You want a headless zero-trust Node path where credentials and query results stay on customer infrastructure when stricter data boundaries matter.
- You prefer a smaller integration surface with React UI in your tree and SQL execution that stays inside your environment.
Keep comparing the implementation details
Vendor fit depends on more than a feature matrix. These guides cover the security, embedding, and buying choices that usually decide a SaaS analytics rollout.
Ship the customer UI with React—not an iframe
Most teams lead with @querypanel/react-sdk: drop QuerypanelEmbedded on a normal product route, or compose QueryPanelProvider with QueryInput / QueryResult. It behaves like any other React subtree—your app shell, router, modals, and design tokens—not a separate cross-origin iframe "mini app" with its own layout chrome.
The browser talks to the QueryPanel API with a JWT you mint on your server (RS256). Never ship your workspace private key to the client.
import { QuerypanelEmbedded } from "@querypanel/react-sdk";
// Render like any other page — not an iframe. Mint tenantJwt (RS256) on your server
// with @querypanel/node-sdk; pass only the JWT to the client.
export function CustomerAnalytics({ tenantJwt }: { tenantJwt: string }) {
return (
<QuerypanelEmbedded
dashboardId="your-dashboard-id"
apiBaseUrl="https://api.querypanel.io"
jwt={tenantJwt}
allowCustomization
/>
);
}Headless Node SDK (optional, for your API)
Use @querypanel/node-sdk on your backend to attach database clients, sync schema, sign JWTs for the React embed, and call ask() from API routes when you want a fully custom pipeline. SQL still runs with your drivers. Full quickstart in documentation.
import { QueryPanelSdkAPI } from "@querypanel/node-sdk";
const qp = new QueryPanelSdkAPI(
process.env.QUERYPANEL_URL!,
process.env.PRIVATE_KEY!,
process.env.QUERYPANEL_WORKSPACE_ID!,
);
// After attachPostgres / syncSchema — tenant comes from your auth layer
const result = await qp.ask("Revenue by country last quarter?", {
tenantId: org.id,
database: "analytics",
});
// result.sql, result.params, result.rows, result.chart — you execute SQL with your driverStill evaluating Toucan and QueryPanel?
Start on the free tier, embed one dashboard, and compare implementation time against your current shortlist.