Stage 1
Map the current service before touching code
- all domains, subdomains, landing pages and language variants containing the widget
- CMS templates, tag-manager containers and hard-coded deployments
- Teams owners, support users, hours, routing and escalation rules
- consent, privacy notice, CSP, cookie and analytics dependencies
- message retention, eDiscovery, export and legal-hold obligations
Stage 2
Write acceptance criteria before selecting a vendor
| Area | Acceptance question | Evidence |
|---|---|---|
| Agent surface | Can the agent really reply in the required Teams location? | Live round-trip test |
| Routing | Can pages, languages and intents reach separate owners? | Three-route scenario |
| Identity | Who administers, reads and replies? | Role and SSO test |
| Continuity | What happens offline or during vendor failure? | Fallback and rollback test |
| Cost | What scales with users, channels and volume? | Written scenario quote |
Stage 3
Preserve history without assuming product-to-product import
The retirement report says historical chats remain in Teams. That does not prove a new product can import or continue those threads. Treat the old record and the new operational channel as separate systems unless an import is explicitly documented and tested.
Record retention settings, ownership and any required exports before modifying the old integration.
Sources: 1
Stages 4 and 5
Pilot one channel and run the full test matrix
- 01
Create a limited pilot
Use a test page and a dedicated Teams channel with named owners.
- 02
Test the visitor path
Open, type, reconnect, decline consent, use keyboard navigation and test mobile.
- 03
Test the agent path
Reply, hand over, collide two replies, escalate and use Teams Mobile.
- 04
Test failure modes
Outside hours, no available agent, blocked script, network interruption and wrong route.
- 05
Obtain sign-off
Security, privacy, service owner and business team approve against written criteria.
Stage 6
Switch through a reversible deployment
Prepare the old and new snippets as separate versioned changes. Deploy in a low-risk window, clear relevant caches, verify the production DOM and complete a real conversation. Monitor client-side errors, contact volume and the destination Teams channel.
Keep the rollback path until owners confirm that no page, campaign or locale still references the retired widget.
If WebChat is selected
Use a language- and channel-specific installation
WebChat’s setup guide describes creating a Teams channel, adding the app, configuring the widget and inserting an asynchronous script with that channel’s ID. One channel can represent a site, language, department or campaign.
Use the correct partner destination for your language and never copy a channel ID from an unrelated environment.