Azure portal wizard
After buying from the Marketplace, Azure opens a custom Create PointOfContactAI blade in the portal. The wizard collects five sets of inputs, and the Basics page states up front that you own all the infrastructure (it deploys into your subscription) and that your cost has two separate parts — the per-seat plan license and the Azure infrastructure you provision here.
Step 1 — Basics (built-in to Azure portal)
- Subscription — the Azure subscription where the resources will live.
- Resource group — Azure auto-suggests a new one (
mrg-pointofcontactai-{guid}for managed apps). Accept the default; the wizard manages the lifecycle. - Location — pick a region where Azure OpenAI is available. westus3, eastus2, and swedencentral are reliable choices.
Step 2 — Stack
-
Stack name (required) — 3-12 lowercase letters + digits, e.g.
acmesupport. This becomes the suffix on every resource (pocai-fa-{stackName},pocaicd{hash}, etc.). Once set, it cannot be changed without a fresh deploy. Pick something short and recognizable. -
Allowed widget origins (required) — comma-separated list of scheme+host values your website serves from. Examples:
https://www.acme.com— single domainhttps://www.acme.com,https://support.acme.com— multiple*— open access (only OK during evaluation; tighten before launch)
No paths, no trailing slashes. The list feeds both App Service CORS and the customer-runtime’s per-response
Access-Control-Allow-Origindecoration. Embedding on several sites? List every origin here now — changing the list later currently requires a support request (details, multi-domain guidance).
Step 3 — Tiers & cost
Every resource here runs in your subscription and is billed to you by Microsoft — separate from, and on top of, the per-seat plan license. The dropdowns are pre-set to your plan’s recommended tier; change them only if you know your workload. Full sizing guide →
- Real-time messaging (Azure SignalR) —
Free F1($0, 20 concurrent connections; Start/Growth default) orStandard S1(~$49.73/mo, 1,000 connections + SLA; Professional default). Each active agent dashboard and open visitor widget uses one connection. - AI throughput ceiling (gpt-5-mini) — tokens-per-minute burst ceiling (10K / 30K / 60K / 120K). A ceiling only: you pay for tokens consumed, not the ceiling, so a higher value has no idle cost.
- Function App warm instances — scale-to-zero (no standing cost; Start/Growth) or 1–2 always-ready (lower cold-start latency; Professional).
- Cosmos DB throughput — Serverless (default; cheapest at low/medium volume) or provisioned autoscale (sustained high volume). Provisioned must be chosen at initial deploy — Serverless can’t switch in place.
The step closes with an estimate of your monthly Azure infrastructure cost for the selected tiers.
Step 4 — AI configuration
-
System prompt (optional) — prepended to every chat completion. Use it to ground the assistant in your product, set guardrails, or constrain tone. Empty = use the PointOfContactAI default (“You are a helpful customer support assistant for…”).
-
Advanced — token pricing (rarely changed) — the prices we use to convert token counts to USD in the dashboard’s cost projection. Defaults track current Azure
gpt-5-minilist price. Only override if you have a Microsoft pricing arrangement that differs.
Step 5 — Review + Create (built-in)
Azure summarizes everything you picked. Click Create to kick off the deploy.
What happens next
-
Azure shows a deployment progress page. The template provisions ~8 resources in the Managed Resource Group; it takes 3-6 minutes.
-
When the deployment completes, your stack is live — but two things are deliberately not yet configured, and they are your first two post-install actions:
- No admin key is set. The deploy completes with dashboard authentication disabled:
https://{customer-fa-host}/api/dashboardis reachable by anyone who knows the hostname (and the hostname becomes public the moment you embed the widget script tag on your site). Immediately open the dashboard and click Rotate admin key in the Settings panel — that first rotation generates the key, stores it in your Key Vault, and turns authentication on. The key is shown once; save it to your password manager. Admin key details → - No AAD app exists for Teams SSO. The wizard does not create one. Run the one-time setup in Teams app before sideloading the Teams app.
- No admin key is set. The deploy completes with dashboard authentication disabled:
-
A purchase-confirmation email follows once your stack has reported in. It never contains your admin key or any other secret — the only copy of the admin key is the one you save at first rotation.
When the deploy fails
The most common causes:
- Insufficient RBAC — the wizard creates role assignments. If you have Contributor but not User Access Administrator (and aren’t Owner), the deploy fails at the first role assignment. Troubleshoot deployment errors →
- Azure OpenAI quota —
gpt-5-miniGlobalStandard SKU needs quota in the chosen region. If you’ve hit your quota, the OpenAI deployment step fails. Request quota in the portal or pick a different region.
See Prerequisites to check both before you start.
Next
- Post-install checklist — the 5 things to verify before going live.
- Set your admin key — the first rotation creates it.
- Set up the AAD app + Teams app.