Every capability, by plan
A Teams personal tab for agents and admins (Teams SSO, activity-feed alerts); a website widget per domain through one embed tag; Azure AI Foundry agents registered from your own project; multi-directional handoff with business hours, presence and a fallback contact; visitor sign-in through your Entra External ID tenant with history and PDF transcripts; per-user file spaces for review; Topic Analysis and the closed-chat report; the Assistant for plain-language configuration.
Start includes one website widget on one domain. Growth adds widgets on any number of domains, visitor sign-in and file spaces; Professional adds Topic Analysis.
See the seven capabilities in 3 minutes
Every entry point in one Teams tab; routing per widget; hand-off in both directions, as many times as the case needs, across people and Foundry agents; registration through your Entra External ID; files for registered users; Topic Analysis and statistics.
Capability by plan
| Capability | Start | Growth | Professional |
|---|---|---|---|
| Multi-domain widgets | One widget, one domain | Any number of domains | Any number of domains |
| Routing per widget | ✓ | ✓ | ✓ |
| "Chat with a Human" | ✓ | ✓ | ✓ |
| People and Foundry agents | ✓ | ✓ | ✓ |
| Registration via your Entra External ID | — | ✓ | ✓ |
| Secure file spaces | — | ✓ | ✓ |
| Topic Analysis | — | — | ✓ |
| Closed-chat reporting | ✓ | ✓ | ✓ |
| One Teams tab | ✓ | ✓ | ✓ |
| Plain-language Assistant | ✓ | ✓ | ✓ |
| Past conversations | — | ✓ | ✓ |
| Mobile-first widget | ✓ | ✓ | ✓ |
| Support | Business hours | Priority email | 24/7 with a named CSM |
Coming to the Azure Marketplace. Prices and seats are on the pricing section.
01 · Widgets
One platform, a widget for every domain
Sales site, support portal, partner app — each gets a widget with its own look, greeting, allowed origins, agent routing, sign-in mode, hours and file rules. Agents see every domain in the same Teams queue; the closed-chat report shows the source domain. Add or change a widget from the dashboard, no redeploy.
- Every widget is managed in the same Teams tab: add widgets in bulk, apply settings from another widget, preview who gets a chat, and give a widget its own admins.
- Per widget: the look and every visible string, the allowed origins, the Foundry agent that answers first, the sign-in mode, the file rules and permissions, the business hours, the inactivity timeout and the fallback contact.
- Each widget carries a list of allowed origins, and that list drives the Content-Security-Policy frame-ancestors header on the widget host, so a browser refuses to render the widget on a domain you did not list.
- One script tag on the page. Which widget answers, and which domains may render it, follow from the widget you point that tag at.
- The widget is mobile-first: it respects the host page's safe areas, follows the on-screen keyboard as it opens and closes, and behaves with the browser back button on Android.
02 · Routing
Routing, set per widget
Routing is a per-widget setting: how a new chat starts (AI first or a Teams user first), which Foundry agent answers first, which groups are offered the hand-off, which groups take the overflow after N minutes, which hours profile and availability source decide when a person can be offered, and what the widget shows when nobody is available.
- Hours decide when a human can be offered; live presence decides who is notified; outside both, the widget shows your fallback contact.
- Business hours decide when a human can be offered and never gate the AI; presence decides who is notified; the fallback contact is a labelled button carrying the phone number, mailbox or booking link you configure.
- Three timers keep a conversation from stalling, and the AI keeps answering throughout. A request for a person that nobody claims returns to the AI after 5 minutes. A transfer the receiving agent does not accept returns to the agent who sent it after 2. A conversation with no activity at all closes itself after 10 minutes by default, or after the window set on the widget.
Hours, presence, and always another point of contact
Availability has three layers. Business hours — per widget or tenant-wide — decide when a human can be offered; the AI is never gated by them. Each agent's live Teams presence filters who is notified about a new chat or a human request. When nobody is available, the widget shows the fallback contact you configure — a phone number, an email, a booking link.
03 · Hand-off
"Chat with a Human", one tap
The widget's "Chat with a Human" button, or the same words as a quick-reply chip, asks your team for a person; whoever takes the chat in Teams joins the same thread, with the conversation so far. Per widget, business hours, live Teams presence or both decide when it is offered, and presence filters who is notified. When nobody is available, the widget offers your fallback contact.
- Handoff runs in every direction, any number of times: "Chat with a Human" or your agent brings a person in; claim, transfer to a colleague or group, take over, hand back to AI, reopen a closed chat. Hours or live Teams presence decide when a human can be offered — the AI is never gated — and presence filters who is notified. When nobody is available, the widget shows your fallback contact.
- The visitor gets a chat window, not a form. AI answers stream in as they are written; suggested replies appear as chips to tap instead of type; a registered visitor can download a transcript of the conversation as a PDF. Every visible string — the greeting, the placeholder, the system messages — and the colours are configurable per widget, so the widget reads as part of the site it sits on.
- The AI keeps answering; business hours decide when a human can be offered, live Teams presence decides who is notified, and outside both the widget shows the fallback contact you configure — there is no separate offline form or ticket queue.
04 · People and Foundry agents
As many hand-offs as the case needs
Hand a chat to any Foundry agent you registered, to a colleague or a group, or back to the assistant — as many times as the case needs, in one thread. Every hand-off is recorded, and the closed-chat report shows the transfer history.
- Register one or more Foundry agents from your project, pick who greets first, route to specialists, and let a receiving agent read a summary of what was said so far before it continues. Full cost control: inference is a line on your Microsoft bill at Microsoft's rates; change model or agent in Foundry without asking us. We publish no inference estimate because the choice is yours.
- No cap on AI conversations and no per-resolution fee on any plan; your single variable cost is inference on your Foundry, billed by Microsoft at Microsoft's rates.
- A read-only view of closed conversations, filtered by date, agent type, specific agent and source domain: chats resolved, time to resolution, human handling time, transfers per chat and who closed each one.
05 · Registered users
Anonymous by default. Registered when it matters.
Per widget you choose anonymous, optional or required sign-in. Registration and profile happen in the widget, against an External ID tenant you own; the service validates a real OIDC token. Signed-in users open their Past conversations, download a PDF transcript and unlock the file space. Admins do not manage external users in the app: the directory is yours; the widget is the front door.
- Sign-in is a per-widget decision, not a tenant-wide one. A widget can be anonymous (no sign-in offered), optional (the visitor may register to unlock history and files) or required (no chat until they have). A support portal can require it while the marketing site never mentions it, and the same Teams queue answers both.
- Registration is not a form that takes your word for it. The identity token the widget presents is verified against your Entra External ID tenant's published keys — signature, issuer, audience, the tenant id it was issued for, and the object id of the user — and only then does the session become an identified one. What we keep is the object id and the display fields your directory returns; passwords and other credentials never reach the service, because sign-in happens in your tenant.
- Signed-in customers open Past conversations inside the widget — their earlier chats, readable in full, with a PDF transcript to download.
- Inside the widget, customers and partners get answers, tap "Chat with a Human", sign in, submit files and open Past conversations — without leaving your site.
06 · Files
Files where necessary — a secure Azure space, for review
A per-user file space with quotas: draft, submit for review, request deletion — submitted files are kept in a 28-day backup — with per-agent permissions deciding who sees what, a short-lived link issued per read, and files shown as chat bubbles in the thread. Anonymous visitors cannot upload, by design. Files are reviewed by people; the AI never reads them.
- A registered user can ask for a submitted file to be deleted; your team deletes it or declines with a reason, from the same conversation in Teams. Uploading a new version flags the old file the same way, and the Delete requests queue in the Teams tab lists every pending request.
- The file space has published limits rather than a surprise: 15 MB per file by default, 100 files and 500 MB in total per registered user, with the allowed file types set per widget. A submitted file is copied into a 28-day backup, which is a retention window rather than a restore feature — there is no restore action in the product.
- Where a registered user can upload a file, it lands in a private Azure Blob space, under quotas and per-agent permissions, for your team to review from the conversation. It is not read, indexed or summarised by the AI: people review it.
07 · Analysis
See what people actually contact you about
Topic Analysis runs across your closed chats for the range you pick, groups them by topic, shows the domains behind each, and writes per-topic recommendations for your human agents and your AI agent. The closed-chat report adds source domain, agents, transfers and handling time. For continuous improvement: no sentiment scores, no trend charts, no per-user profiles.
- A run is scoped and bounded on purpose. You pick the date range and filter by agent and widget domain; the pass covers closed conversations only. Each run classifies at most 200 conversations it has not seen before and reuses every classification it already holds, so a large backlog is worked through in predictable steps — and each step's inference cost is predictable with it.
- The Dashboard tab reports on closed conversations only, so the numbers stop moving while you read them. Filter by date range, by agent type (AI or human), by a specific agent and by source domain, then read chats resolved, time to resolution, how long a human was actually handling the chat, how many transfers it took and who closed it. It is a report, not a live queue — the live queue is the chat list next to it.
In Teams
Agents and admins, one Teams tab
No second console. Human agents claim, transfer, take over, reopen and close chats in a Teams personal tab; admins manage widgets, Foundry agents, groups, hours, sign-in, files and analysis in the same tab. Sign-in is Teams SSO; new chats, human requests, transfers and file submissions arrive as Teams activity-feed alerts, filtered by each agent's live presence.
- The Settings tab has an Assistant. Say what you want in plain language; it reads the current state, applies the change through the same endpoints the forms use — same validation, your admin permissions, your Azure visibility — and shows every call it made. Nothing it does could not be done in the forms; it is faster.
- Widgets, Foundry agents, groups, hours, sign-in, files and notifications are settings in the Teams tab — changed live, no redeploy — or ask the Assistant in plain language.
- Helpdesk suites and Teams "bridges" push a notification into Teams; the work still happens in their console, on their tokens. Here the queue, the chat and the settings are the Teams tab.
What you get, and what you need
What you get
A Teams personal tab for agents and admins (Teams SSO, activity-feed alerts); a website widget per domain through one embed tag; Azure AI Foundry agents registered from your own project; multi-directional handoff with business hours, presence and a fallback contact; visitor sign-in through your Entra External ID tenant with history and PDF transcripts; per-user file spaces for review; Topic Analysis and the closed-chat report; the Assistant for plain-language configuration.
What you need
Microsoft 365 with Teams (agents sign in with Teams SSO); an Azure subscription holding the Azure AI Foundry project you bring — inference is billed to it by Microsoft; an account that can grant admin consent in your Entra directory; a Teams administrator to approve the app; a website or app to carry the widget.
Who has to be in the room
Onboarding takes two permissions, and they are usually held by two different people. Granting admin consent in your Microsoft Entra directory needs a Global Administrator or Privileged Role Administrator — the consent includes Microsoft Graph application permissions, which a Cloud Application Administrator cannot grant; it creates our service principal in your directory, and nothing else can happen until that object exists. Assigning that principal a role on your Azure AI Foundry project needs Microsoft.Authorization/roleAssignments/write — in practice Owner, User Access Administrator or the tighter Role Based Access Control Administrator. A Contributor cannot complete onboarding.