How to Implement Walk-In Queue Management and Teams Telephony in Dynamics 365

At a glanceTwo front doors — a walk-in reception desk and a Teams Phone line — that both land on one case record in Dynamics 365 Customer Service.Who it's for✓  Public-sector and social-services teams✓  Service centres with walk-in clients✓  Contact centres moving to Teams PhoneWhat you'll learn✓  The data model and setup✓  How the walk-in and lobby work✓  How calls link to the right case2 channelsin person and by phone1 casefor every visit and callLow-codeno custom applicationTeams Phonenative voice channelIn this article
  1. 01The challenge and what we built
  2. 02Solution architecture at a glance
  3. 03How to implement: the data foundation
  4. 04How we implemented walk-in reception
  5. 05How to implement Teams telephony: the setup
  6. 06How we implemented the telephony
  7. 07What the agency gets
  8. 08Implementation roadmap
  9. 09Frequently asked questions

01The challenge and what we built

A social-services agency needed clients to reach caseworkers in two ways, in person at reception and by phone, without losing track of anyone between the front desk, the phone line and the case file. For their proof of concept, we built both on Dynamics 365 Customer Service using low-code configuration and automation, with no custom-built application.

🏢Walk-in receptionA client checks in at reception and receives a token. A case is created and queued, and the client gets an email listing the documents to bring. When a caseworker clicks Call next visitor, the lobby screen announces the token and the case opens on the caseworker's screen.☎️Teams telephonyClients call one public service number delivered through Microsoft Teams Phone, or a caseworker's own Teams number. The caller is matched to their contact record, the call is linked to their open case, and the notes or full transcript land on the case timeline.

Both front doors land on the same case record, so every visit, call and document request sits in one place for the caseworker and the supervisor.

02Solution architecture at a glance

Reception fills in one form and the caseworker clicks one button; the platform handles everything in between.

Walk-in journey: one reception form starts everything, one click brings the client inSTEP 1Reception check-inClient, service and visit type capturedSTEP 2Token & caseToken issued, case created or reopened, queuedSTEP 3Welcome emailToken, people ahead and documents to bringSTEP 4Lobby: waitingToken listed under its serviceSTEP 5Call next visitorOne button on the caseworker dashboardSTEP 6Lobby: now callingFull-screen popup and voice announcementSTEP 7Case opensOn the caseworker's screen, with historySTEP 8Case processIntake through to Resolved

On the phone side, a call to the public service number and a direct call to a caseworker take different paths, but both finish on the client's case.

Telephony: two call routes, one case timelineCall to the service numberVoice workstream routes the callAgent accepts in Copilot Service workspaceCaller identifiedBy phone number, or by email for Teams callersLinked to the open caseAgent screen refreshes with customer and caseConversation & transcript savedOn the case timelineDirect call to a caseworkerRings in the Calls panelInside Dynamics 365, on any pageCaller matched to the clientCall linked to their open caseAgent takes notesTyped in the Calls panel during the callCall completed on the caseNotes copied to the call recordBoth routes end on the client's case timeline — if there are several open cases, the agent picks one

03How to implement: the data foundation

✅ Before you start

Start with the data model. The walk-in needs four custom tables alongside the standard Case and Contact tables, all packaged in one solution so it can move cleanly between environments.

TableKey informationPurpose
Visit / Check-InClient, service category, visit type (new request, follow-up, status inquiry), status (Waiting, Called, Being Served, Completed, No-Show, Cancelled), token, case, wait timeOne record per person at the desk
Service CategoryName, short code, programme area, target queueDrives the token letter, the case title and where the case is routed
Checklist TemplateService category, document nameThe documents each service requires
Case Checklist ItemCase, document, status (Pending, Received, Rejected, Waived)Tracks each required document on a case

Queues, case process and settings

Tip: Decide the time zone early. Daily token numbering, the nightly reset and every client email depend on what “today” means for the agency, not for the server.

04How we implemented walk-in reception

1. Check-in and token generation

When reception saves a visit, the system automatically:

1Builds a token from the programme area (S for Senior Services, P for Public Benefits, U for Utility Assistance) and the next number for the day — S-001, S-002 and so on.2Checks whether the client already has an open case for the same service.3New request: creates the case at Intake, places it in the right queue, counts the people ahead and emails the client the list of documents to bring.4Follow-up or status inquiry: links the visit to the existing case instead of creating a duplicate, and sends a “Welcome back” email listing only the documents still outstanding.A visit after check-in: the token and case are filled in automaticallyA visit after check-in: the token and case are filled in automatically📍 Where to find it: Customer Service Hub → Walk-In Reception → Visit / Check-Ins → + New.

2. The lobby display

A Power Apps canvas app runs on the lobby screen and refreshes every few seconds. When a new token is called, it shows a full-width NOW CALLING popup with the token and desk number and plays a voice announcement, while the rest of the screen shows who is waiting for each service.

The lobby screen announcing token S-006, with the waiting list per serviceThe lobby screen announcing token S-006, with the waiting list per service

3. Call next visitor

Caseworkers work from a dashboard with a single Call next visitor button. One click finds the oldest waiting token across all of that caseworker's queues, marks it as called, records the wait time, assigns the case to the caseworker and opens it on their screen. If no one is waiting, they see a clear “No visitors are waiting” message.

The caseworker dashboard with the Next visitor card and the waiting tokens per queueThe caseworker dashboard with the Next visitor card and the waiting tokens per queueDesign choice: Calling from all of a caseworker's queues in one step, rather than queue by queue, guarantees that one click always calls exactly one visitor.

4. Keeping visit, case and queue in step

A walk-in case at Intake, owned by the caseworker who called the tokenA walk-in case at Intake, owned by the caseworker who called the token

5. Nightly cleanup and supervisor view

Every night the token counters reset, and visits left waiting from the previous day are closed as no-shows. The case itself stays open for follow-up. Supervisors watch the whole operation in real time: who is waiting now, the longest and average waits, open cases and SLA status.

The supervisor command centerThe supervisor command center

05How to implement Teams telephony: the setup

Telephony uses Microsoft's own components end to end: a Teams Phone number for the public line, the Dynamics 365 voice channel to route it, and the Teams dialer for direct calls.

ComponentHow it is set up
Public service numberA geographic number on a Teams resource account, imported in Copilot Service admin center → Channels → Phone numbers, with inbound and outbound calling enabled
Voice workstreamA dedicated voice workstream with the number attached, routing calls to programme voice queues such as Senior Services
AgentsCaseworkers are members of the voice queues and set their presence to Available in Copilot Service workspace
Recording and transcriptTurned on for the workstream, so every call to the service number keeps a transcript
Direct callsThe Teams dialer (Calls panel) is enabled in Customer Service Hub and Copilot Service workspace, so calls to a caseworker's own Teams number ring inside Dynamics 365
Operating hours24×7 for the proof of concept; production service hours to be confirmed
📍 Where to find it: Copilot Service admin center → Customer support → Channels. Voice settings sit under Channels → Voice, and the number under Phone numbers.📘 Microsoft guides: Configure Teams Phone in the voice channel  ·  Set up inbound calling  ·  Manage phone numbersChannels in Copilot Service admin center: Voice and Phone numbersChannels in Copilot Service admin center: Voice and Phone numbersThe service number in Phone numbers, set to make and receive calls (number hidden)The service number in Phone numbers, set to make and receive calls (number hidden)The voice workstream that routes calls to the voice queuesThe voice workstream that routes calls to the voice queuesInside the voice workstream: number, language, wait time, transcription and recording (details hidden)Inside the voice workstream: number, language, wait time, transcription and recording (details hidden)

To test, dial the service line from any Teams account. The available agent receives a voice call request in Copilot Service workspace with Accept and Reject options.

Dialling the service line from Teams (caller's number hidden)Dialling the service line from Teams (caller's number hidden)The voice call request in Copilot Service workspaceThe voice call request in Copilot Service workspace

06How we implemented the telephony

The two routes store calls differently: a call to the service number becomes a Conversation with a transcript, while a direct Teams call becomes a standard Phone Call activity. We automated each one around a single rule: link automatically when there is exactly one match, and let the agent decide when there are several.

1. Identifying callers on the service number

Calls from real phone numbers are matched to contacts by number. Teams callers arrive with a name rather than a number, so we match them to their user account and then to the contact with the same email address. If that contact has exactly one open case, the conversation is linked to it, so the call and its transcript land on the case timeline. The agent's screen refreshes automatically as soon as the customer and case are identified.

2. Linking direct Teams calls to the client

A direct call to a caseworker rings in the Calls panel inside Customer Service Hub, whatever page the agent is on. When the call is logged, the caller is replaced with the client's contact record and the call is linked to their open case.

An incoming direct Teams call in Customer Service Hub (names hidden)An incoming direct Teams call in Customer Service Hub (names hidden)The phone call record, linked to the client's open case (personal details hidden)The phone call record, linked to the client's open case (personal details hidden)

3. Saving the agent's notes on the case

During the call the agent types notes in the Calls panel. Shortly after the call ends, the notes are copied onto the call record and the call is marked complete on the case timeline. Calls with no case, or with several possible cases, stay open so the agent can choose the right case with one click.

A direct Teams call in the Calls panel, with the agent's notesA direct Teams call in the Calls panel, with the agent's notesThe completed phone call on the case timeline, with the notes copiedThe completed phone call on the case timeline, with the notes copied

4. Creating a case from a call

For a brand-new request, the agent uses Convert To → Case on the phone call. The new case is automatically set to origin Phone and stage Intake, and once the agent picks the service category it receives the right title, document checklist, queue and priority.

The Convert to Case dialog on a phone call (customer hidden)The Convert to Case dialog on a phone call (customer hidden)🎯 Result: Every call to the service number appears on the case timeline as a closed voice call with the full transcript underneath, and it also shows in the agent's My work items in Copilot Service workspace.The voice call and transcript on the case timelineThe voice call and transcript on the case timelineCopilot Service workspace: the closed voice conversation in My work items and on the case (personal details hidden)Copilot Service workspace: the closed voice conversation in My work items and on the case (personal details hidden)

07What the agency gets

Beyond the technology, the solution changes the day-to-day experience for clients, caseworkers and supervisors:

🧾One record per clientEvery visit, call, note, transcript and document request sits on the same case — no duplicates, no hunting across systems.⚡One-click serviceCaseworkers call the next visitor with a single button; the case opens already assigned to them.📣A calmer lobbyClients see their token, their place in line and a clear announcement when it is their turn.📞Calls that file themselvesKnown callers are matched and linked to their case automatically, with notes or transcripts saved.📊Real-time oversightSupervisors see waiting clients, wait times, open cases and SLA status as it happens.🧩Built to growStandard platform features and central settings make it easy to add services, queues or offices.

08Implementation roadmap

If you are planning a similar solution, this is the order we recommend:

1Model the data: visits, service categories, document checklists and their link to cases.2Set up queues and the case process: one queue per programme area and a clear set of case stages.3Centralise settings: organisation details, time zone and contact numbers in one place.4Automate check-in: tokens, case creation or reuse, queueing and the welcome email.5Build the lobby display and the Call next visitor experience for caseworkers.6Configure Teams Phone: the service number, voice workstream, voice queues, recording and the Teams dialer.7Link calls to clients and cases automatically, leaving ambiguous matches to the agent.8Test every route with real data — real walk-ins and real Teams calls, not just desk checks.💡 Key lessonTest each route with a real call or a real walk-in. The issues that matter only show up with real data, so build time for live testing into the plan from day one.

09Frequently asked questions

Do I need custom code to build walk-in queue management in Dynamics 365?No. The whole solution uses standard Dynamics 365 Customer Service features — custom tables, queues, a business process, dashboards and a Power Apps canvas app for the lobby screen — plus low-code automation. There is no custom-built application to maintain.Can Microsoft Teams Phone work as the voice channel for Dynamics 365?Yes. A Teams Phone number on a Teams resource account can be imported into Copilot Service admin center and attached to a voice workstream, so calls to the public number are routed to agents in Copilot Service workspace with recording and transcription.How are callers matched to the right client and case?Callers from real phone numbers are matched by number. Teams callers are matched through their email address. If the client has exactly one open case, the call is linked automatically; if there are several, the agent chooses the right one.Can caseworkers take direct calls on their own Teams number?Yes. With the Teams dialer enabled in Customer Service Hub and Copilot Service workspace, direct calls ring inside Dynamics 365, and the agent's notes are saved on the client's case when the call ends.How long does an implementation like this take?The proof of concept covered both channels end to end. The biggest variable is not configuration but testing: plan time to run real walk-ins and real Teams calls before go-live.Planning walk-in or telephony on Dynamics 365?CRMONCE designs and delivers Dynamics 365 Customer Service and Teams Phone solutions end to end.Talk to our team →