Uncategorized

Use least active routing on messaging channels in Dynamics 365 Contact Centre

Use least active routing on messaging channels

(Extending intelligent workload distribution from voice to digital messaging channels to ensure fair agent utilization).

Real-time User Journey

This journey illustrates how the system balances work across a blended workforce (agents handling both voice and chat):

  1. Scenario Setup: Two agents, Oscar and Victoria, have identical skills. Oscar is currently handling 1 chat. Victoria is handling 1 voice call and 1 chat.
  2. New Incoming Request: A new customer starts a chat on the website.
  3. Concurrency Check: The routing engine evaluates current workloads. It identifies that Oscar has fewer concurrent assignments (1) than Victoria (2).
  4. Initial Assignment: The chat is assigned to Oscar to balance the total number of active conversations.
  5. Tie-Breaking (Last Capacity Release): Later, two different agents, Maya and Hailey, both have exactly 1 active assignment.
  6. Time-based Decision: The engine checks their “Last Capacity Release Time” (when they finished their previous task). Maya finished her last chat at 1:55 PM, while Hailey finished at 2:00 PM.
  7. Final Routing: Because Maya has been “inactive” longer, the new chat is routed to her, ensuring Hailey gets a fair amount of “rest” time between tasks.

Step-by-Step: How to Enable This Feature

To implement least active routing in your messaging queues:

  • Step 1: Admin Center Access

Sign in to the Customer Service admin center or Contact Center admin center.

  • Step 2: Select the Queue

Navigate to Customer Support > Queues. Open the specific messaging queue (e.g., Chat, WhatsApp, or SMS) where you want to apply this logic.

  • Step 3: Set Assignment Method

In the Assignment method section, select Least active from the dropdown menu.

  • Step 4: Configure Custom Assignment (Optional)

If you use “Custom” assignment methods, you can add “Least active” as an Order by condition. This allows you to first filter by “Highest Skill” and then use “Least Active” as the tie-breaker.

  • Step 5: Verify Capacity Profiles

Ensure that your agents have Capacity Profiles defined (e.g., an agent can handle 100 points of work, where a chat is 20 points). Least active routing relies on these profiles to calculate concurrent load.

  • Step 6: Data Tracking (Advanced)

To build reports on this, use the Dataverse entity msdyn_agentchannelstateentity. This tracks the lastcapacityreleasetime for each agent, which powers the routing decisions.

Infographic: How Least Active Routing Works

FactorDescriptionBenefit
Concurrent LoadCounts the number of active calls and chats currently assigned.Prevents overloading individual agents.
Last Capacity ReleaseTracks the exact timestamp when the last conversation ended.Ensures fair “breathing room” between tasks.
Cross-Channel AwareConsiders both Voice and Messaging work items together.Perfectly balances a “Blended” workforce.
Fair UtilizationMoves agents toward a consistent utilization percentage (e.g., 85%).Reduces burnout and improves agent satisfaction.
SLA StabilityPrioritizes available capacity over random assignment.Keeps wait times consistent for customers.

References

Uncategorized

Synchronize service rep availability across platforms with Presence APIs in Dynamics 365

Synchronize service rep availability across platforms with Presence APIs

(Achieving a “Single Source of Truth” for agent availability across Dynamics 365, Microsoft Teams, and third-party applications).

Real-time User Journey

This journey illustrates how the Presence APIs eliminate the “Double Work” of managing status across multiple communication tools:

  1. Unified Login: A service representative logs into the Dynamics 365 Contact Center.
  2. Automatic Sync: The Presence API immediately detects the agent’s “Available” status in Dynamics 365 and automatically updates their Microsoft Teams status to “Available.”
  3. External Trigger: The agent receives an urgent call on a third-party legacy desk phone system integrated via the API.
  4. Real-time State Change: The Presence API detects the “Busy” state on the external phone and instantly switches the agent to “Busy – On a Call” in both Dynamics 365 and Teams.
  5. Routing Protection: Because the status is synchronized, the Unified Routing engine sees the “Busy” state and stops routing new chats or cases to the agent, preventing them from being overwhelmed.
  6. Shift Completion: When the agent’s shift ends in the Workforce Management module, the API pushes an “Offline” status to all connected platforms simultaneously.

Step-by-Step: How to Enable This Feature

The Presence APIs are part of the Microsoft Graph and Dynamics 365 developer toolkit. To enable synchronization, follow these steps:

  • Step 1: Admin Center Configuration

Sign in to the Customer Service admin center. Navigate to Operations > Insights > Presence settings.

  • Step 2: Enable Teams Presence Sync

Locate the setting for “Microsoft Teams presence synchronization” and toggle it to On. This enables the native link between the two Microsoft platforms.

  • Step 3: Register Application for External Sync

To sync with 3rd party apps, go to the Azure Portal > App Registrations. Register your external application and grant it Presence.Read.All and Presence.ReadWrite.All permissions.

  • Step 4: Configure API Endpoints

In your external application code, call the Dynamics 365 Presence APIs (GET and SET presence) to pull or push status updates.

  • Step 5: Define Presence Mapping

In Dynamics 365, go to Presence States and ensure your custom statuses (e.g., “In a Meeting”) are mapped to the correct base statuses (e.g., “Busy”) so the API knows how to translate them across platforms.

  • Step 6: Test Synchronization

Change your status in Microsoft Teams and verify that the change reflects in the Dynamics 365 agent dashboard within seconds.

Infographic: The Unified Presence Ecosystem

CapabilityWithout Presence APIsWith Presence APIs
Status ManagementManual update in every app.Automatic Sync: Update once, reflect everywhere.
Routing AccuracyHigh risk of routing to “Busy” agents.100% Accuracy: Routing respects all active states.
Supervisor ViewConflicting data on agent activity.Real-time Visibility: One true view of team capacity.
Agent ExperienceHigh cognitive load and “Status Anxiety.”Seamless Flow: Focus on the customer, not the toggle.
Third-party AppsIsolated silos of information.Integrated Ecosystem: Legacy tools stay in sync.

References

Uncategorized

Desktop Companion Application (DCA) for Dynamics 365 Contact Center

Desktop Companion Application (DCA) for Dynamics 365 Contact Center (A native Windows application designed to provide voice continuity and reliability by operating independently of the web browser).

Real-time User Journey

This journey illustrates how the DCA protects the customer experience during common technical glitches:

  1. Shift Start: A Customer Service Representative (CSR) logs into their workstation and ensures the Desktop Companion Application is running in the background.
  2. Active Engagement: The CSR accepts an incoming voice call through the Dynamics 365 web workspace. The DCA automatically syncs and mirrors the call status.
  3. Technical Disruption: Mid-conversation, the CSR’s web browser freezes or accidentally refreshes.
  4. Resilient Continuity: Because the voice path is managed by the DCA (not the browser), the call does not drop. The CSR continues speaking to the customer without interruption.
  5. Direct Control: While the browser is reloading, the CSR uses the DCA’s overlay window to mute, unmute, or end the call if necessary.
  6. Re-synchronization: Once the browser recovers and the page reloads, the web workspace automatically re-syncs with the DCA, restoring the full customer context and transcript on the CSR’s screen.

Step-by-Step: How to Enable This Feature

To deploy the DCA, administrators and users must follow these steps:

  • Step 1: Admin Installation The IT administrator must download and install the Desktop Companion Application (MSI/EXE) onto all service representatives’ Windows machines.
  • Step 2: Browser Extension Setup Install the corresponding Dynamics 365 Contact Center browser extension in Microsoft Edge or Google Chrome. This allows the web app and the desktop app to “talk” to each other.
  • Step 3: Admin Center Activation In the Contact Center admin center, navigate to Workforce Management or Voice Settings and ensure that the “Desktop Companion” integration is toggled to On.
  • Step 4: User Sign-in The CSR signs into the Copilot Service workspace. The DCA will detect the login session and display a “Connected” status at the bottom of its interface.
  • Step 5: Device Configuration Inside the DCA Settings tab, the CSR selects their preferred audio devices (headset, microphone) and sets their language preferences to ensure the app is ready to handle calls.

Infographic: Web vs. Desktop Companion Voice Path

FeatureBrowser-Based VoiceDesktop Companion App (DCA)
StabilityCall drops if browser crashes/refreshes.Call persists independently of browser state.
Connection SpeedSubject to browser latency.Faster connections and reduced audio delay.
ControlsHidden if browser tab is lost.Persistent overlay for Mute/End/Hold.
ReliabilitySusceptible to Bluetooth/cookie issues.Direct OS integration for better device handling.
User StatusRequires active browser tab.System tray icon shows connectivity at all times.

References

https://www.microsoft.com/en-us/dynamics-365/blog/it-professional/2025/07/09/try-desktop-companion-application-for-dynamics-365-contact-center/

Uncategorized

What’s New in Copilot Studio: June 2025 – Enhancing Agent Lifecycle and Enterprise Governance

What’s New in Copilot Studio: June 2025 – Enhancing Agent Lifecycle and Enterprise Governance

The June update focused on maturing the “Pro-dev” experience, specifically introducing Agent Environments, Managed Identities, and Advanced Analytics to help organizations move agents from prototypes to secure, governed production workloads.

Real-time User Journey: Managed Identity Authentication

One of the most significant “real-time” journeys introduced is how agents access secure company data without managing complex user secrets:

  1. Request: An employee asks the agent, “What is the status of the confidential project Alpha in our Azure SQL database?”
  2. Silent Authentication: Instead of prompting the user for a login or using a shared service account password, the agent uses its Managed Identity (a secure, Entra-based ID assigned to the agent itself).
  3. Secure Access: The agent authenticates directly with the Azure SQL database. The database recognizes the agent’s identity and grants access based on the specific permissions set by the IT admin.
  4. Reasoning & Response: The agent retrieves the data, summarizes it using the LLM, and provides the answer—all while ensuring no passwords were ever exposed or stored in the code.

Step-by-Step: How to Enable Agent Environments

This feature allows teams to separate development work from production use:

  • Step 1: Admin Center Setup: Log into the Power Platform Admin Center and navigate to the Environments tab.
  • Step 2: Create “Dev” and “Prod” Environments: Create two separate environments specifically for your Copilot agents to keep experimental features away from live users.
  • Step 3: Move Agents via Solutions: In Copilot Studio, wrap your agent in a Solution (a container for all its topics and tools).
  • Step 4: Export/Import: Export the solution from the Dev environment and import it into the Prod environment.
  • Step 5: Connection Reference Update: Once imported, update the Connection References (e.g., SharePoint or Outlook links) to point to the production-level data sources.

Infographic: Enterprise Agent Readiness

The June update introduced a “checklist” of capabilities that define an enterprise-ready agent:

PillarFeatureValue
SecurityManaged IdentitiesEliminates the need for hard-coded secrets or credentials.
LifecycleSolution IntegrationEnables standard DevOps pipelines (ALM) for agent deployment.
InsightsConversation TranscriptsGA of full transcript logs for auditing and debugging.
ConnectivityEnhanced ConnectorsNew UI for managing 1,400+ connectors with better error handling.
DiscoveryAgent GalleryA central place for employees to find approved agents.

References

Uncategorized

Smarter Callbacks with Availability-Aware Scheduling CCAAS APIs in Dynamics 365

Smarter Callbacks with Availability-Aware Scheduling CCAAS APIs (Integration of workforce schedules and real-time capacity into the callback request system).

Real-time User Journey

This journey illustrates how a customer experiences a “guaranteed” callback time rather than a generic “as soon as possible” wait:

  1. High Volume Encounter: A customer calls a support line during a peak period. The system informs them of a 30-minute wait time.
  2. Smart Callback Offer: The system offers a callback. Using the Availability-aware API, it doesn’t just look at current queues; it checks the Shift Schedule for the next few hours.
  3. Specific Slot Selection: The IVR (or bot) says, “We can call you back between 2:15 PM and 2:30 PM today when we have a specialist available. Does that work?”
  4. Confirmed Booking: The customer confirms. The system creates a “Scheduled Callback” record that is pinned to the workforce’s available capacity.
  5. Agent Assignment: At 2:15 PM, the Unified Routing engine identifies an agent who has just started their shift and has the required skills.
  6. The Connection: The system dials the customer first, then connects the agent, fulfilling the promise made during the initial call.

Step-by-Step: How to Enable This Feature

This feature requires a combination of Admin Center configuration and API integration for custom IVRs or Portals.

  • Step 1: Enable Workforce Management Go to Contact Center Admin Center > Operations > Workforce Management. Ensure Shift Planning is active and shifts are published for your agents.
  • Step 2: Activate Callback Channel Navigate to Channels > Voice > Manage. Ensure “Direct Callback” is enabled in your voice channel settings.
  • Step 3: Configure the CCAAS API Access the Developer Resources section in the Admin Center to retrieve your CCAAS (Contact Center as a Service) API endpoints. You will need these to feed availability data into your IVR or Website.
  • Step 4: Map Capacity to Routing In Routing > Queues, select your Voice queue and enable the setting “Consider agent shifts for callback scheduling.”
  • Step 5: Set Buffer and Grace Periods Define your “Schedule Buffers” (e.g., don’t offer a callback 5 minutes before an agent’s shift ends).
  • Step 6: Update IVR/Bot Logic Update your Copilot Studio bot or IVR workflow to call the GetAvailability API action, which will present the available time slots to the customer.

Infographic: Traditional vs. Smarter Callbacks

FeatureTraditional Callbacks (ASAP)Smarter Callbacks (Availability-Aware)
TriggerTriggered by queue length only.Triggered by Shift Schedules + Queue Length.
Timing“We will call you back when it’s your turn.”“We will call you back at 2:15 PM.
Agent ImpactCan hit agents right at shift-end.Respects shift boundaries and breaks.
Customer ExperienceUncertain wait; customer might miss the call.High certainty; customer expects the call at a specific time.
Routing LogicFirst available agent.Best agent starting a shift or with open capacity.

References

https://www.microsoft.com/en-us/dynamics-365/blog/it-professional/2025/06/20/smarter-callbacks-with-availability-aware-scheduling-ccaas-apis/