Features

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.

Product film

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.

Demo scenario · fictional company

Capability by plan

Which capability each plan includes
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

Start: one widget on one domain · From Growth: 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.
One platform, a widget for every domainFour sites and apps each embed their own Point of Contact widget with its own look, allowed origins, agent and sign-in mode. Every widget lands in one platform, one Teams queue with groups and routing, and the Foundry agents you own. The closed-chat report shows the source domain.YOUR MICROSOFT TEAMSOne queuefor every domainGroups and routingset per widgetB2C sales siteRetail support siteB2B partner portalInternal helpdesk appWidget - salesown look, origins,agent, sign-in modeWidget - retailown look, origins,agent, sign-in modeWidget - partnersown look, origins,agent, sign-in modeWidget - helpdeskown look, origins,agent, sign-in modePoint of Contactone platform, oneTeams tabFoundry agentsyours, in Azure AIFoundryClosed-chat reportwith the source domain
One platform, a widget for every domain

02 · Routing

Routing, set per widget

Every plan

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.

Routing, set per widgetEach widget decides how a new chat starts, AI first or a Teams user first; which Foundry agent answers first; which groups are offered a hand-off; which groups take the overflow after a set number of minutes; whether business hours or live presence decide when a person can be offered; and which fallback contact the widget shows when nobody is available.ONE WIDGET · SET PER WIDGETAI firsta person firstChat with a Humanavailableunclaimed after N minutesotherwiseNew chat starts withAI agent, or a personFirst Foundry agentthe one that answers thiswidgetBusiness hours or livepresencewhen a person can beofferedHand-off groupswho is asked firstOverflow groupsafter N minutes unclaimedFallback contactwhen nobody is available
Routing, set per widget

03 · Hand-off

"Chat with a Human", one tap

Every plan

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.
Multi-handoff between the AI agent and your team in TeamsA visitor chats with the Foundry agent. When the visitor taps Chat with a Human (or the agent calls for a person), the business-hours schedule - or live presence when no schedule is set - decides whether a Teams user takes the chat or the visitor gets a fallback contact. The Teams user can transfer to a colleague or group, transfer to a specialist Foundry agent, hand back to the AI with a summary, close, and reopen.Chat with a Humanavailableotherwiseclosereopentransfertransfer to an agenttake overhand back with summaryYOUR MICROSOFT TEAMSAVAILABILITYVisitoron your websiteFoundry agentyour Azure AI FoundryBusiness hoursor live presenceFallback contactwhen no one is availableTeams userclaims and repliesColleague or grouptakes the transferSpecialist Foundry agenta second agent youregisteredClosedreopen when needed
"Chat with a Human", one tap

04 · People and Foundry agents

As many hand-offs as the case needs

Every plan

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.
One case, one thread, five hand-offs across people and Foundry agentsA visitor reports a problem and the assistant, a Foundry agent you registered, answers first. The visitor taps Chat with a Human and a Teams user takes the chat. The Teams user hands the chat back to the assistant for the routine part, takes it over again when a specialist question comes up, transfers it to a second Foundry agent that specialises in that topic, takes over once more and closes the chat. The thread never restarts, and the closed-chat report shows every transfer.Chat with a Humanhand backtake overtransfer to an agenttake overcloseVisitorreports a problemAssistant · Foundry agent Aanswers firstTeams usertakes the chatAssistant · Foundry agent Acontinues the threadTeams usertakes over for a specialistquestionSpecialist · Foundry agent Banswers in the same widgetTeams usertakes over, closesClosedthe report shows everytransfer
As many hand-offs as the case needs

05 · Registered users

Anonymous by default. Registered when it matters.

From Growth

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.
Sign-in through your Entra External ID tenant and file review by your teamA visitor signs in from the chat widget through the customer's own Entra External ID tenant. Point of Contact validates the token, returns the profile and past conversations, keeps drafts and submitted files in Azure Storage and notifies the team in Teams, who review the files. Files are reviewed by people, not read by the AI.Your teamin TeamsAzure StoragePoint of ContactYour EntraExternal ID tenantChat widgetVisitorAnonymous by default.Sign-in optional orrequired per widgetValidates issuer,audience and tenantFiles are reviewed by people,not read by the AISign in (popup)Register or sign inID tokenTokenProfile and past conversationsUpload draftDraft in the user's spaceSubmit for reviewBackup snapshot, lockActivity-feed bellReview in the Teams tabRequest deletion (optional)
Anonymous by default. Registered when it matters.

06 · Files

Files where necessary — a secure Azure space, for review

From Growth

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: Professional · statistics on every plan

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.
Topic Analysis over closed chatsClosed chats filtered by date, agent, widget or domain are classified by your own Foundry agent. Topic Analysis groups them into topics with a resolution rate and keywords, and turns them into coaching for your team, instruction changes for your AI agents and a per-domain view. Act on it, then run it again.Closed chatsby date, agent, widget or domainYour Foundry agentclassifies each chatTopic Analysistopics, resolution rate, keywordsCoaching for your teamcommon resolutionsInstruction changesfor your AI agentsPer-domain viewwhich domains drive each topicContinuous improvementact, then run it again
See what people actually contact you about

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.