Share via

UserId correlation between Dynamics365 and Azure CommunicationServices

Minh Nguyen 20 Reputation points
2026-02-25T02:37:44.02+00:00

Hello, Iam doing a bot integration with Dynamics365 with ACS's Call Automation API

The bot will join the Dynamics365's calls which were received/made by D365 users to acquire data such as audio. The bot invokes Call Automation's Connect API to join the calls, then getting updated events on the call from ACS. However, the userIds which are seen in those ACS's callback events have the format "8:acs<guid>", which is totally different from user's D365's SystemUserId or Azure ObjectId

My question is how do I link the ACS's userId to a D365's user, i.e to know which user is in the call from the ACS's userId?
Thanks

Azure Communication Services
{count} votes

Answer accepted by question author
  1. Shree Hima Bindu Maganti 6,815 Reputation points Microsoft External Staff Moderator
    2026-03-02T11:27:41.1633333+00:00

    Hi @**Minh Nguyen
    **Apology for your inconveniences
    Real-time correlation between Dynamics 365 Contact Center and Azure Communication Services (ACS) is possible when the call starts, but it is not automatic and must be implemented using shared identifiers. ACS generates its own call identifiers such as CallConnectionId, ServerCallId, and communication identities like 8:acs:<guid>, which do not directly match Dynamics 365 ConversationId (for example, msdyn_ocliveworkitemid) or SystemUserId because both systems use different identity models by design. To correlate them in real time, you must capture or pass a shared identifier at call setup (such as the D365 ConversationId or a custom correlation ID) when invoking the ACS Connect API, or use telemetry via Azure Monitor/Application Insights where both the D365 conversation record and ACS call identifiers are logged together. Once a common identifier is stored on both sides, you can immediately map ACS callback events like CallConnected to the corresponding D365 conversation without delay.
    https://learn.microsoft.com/en-us/dynamics365/customer-service/administer/configure-conversation-diagnostics

    https://learn.microsoft.com/en-us/azure/communication-services/concepts/analytics/logs/call-automation-logs

    https://learn.microsoft.com/en-us/azure/communication-services/concepts/analytics/query-call-logs
    Let me know if you have any further assistances needed.

    1 person found this answer helpful.

1 additional answer

Sort by: Most helpful
  1. Minh Nguyen 20 Reputation points
    2026-02-25T14:16:14.6333333+00:00

    Hi Felix,
    Thanks for the answer
    However, it does not solve my problem to have Look up between D365 userId/ObjectId with ACS's ID, but as you mentioned, ACS is Identity Agnostic, so it may not be able to do so
    Approach 2 and 3 have limitation that it does not work for production deployment when all the users were created.
    Since my bot connects to the D365's calls with Call Automation API on a production system, so all it has is ACS's callId (serverCallId/CallConnectionId) and ACS's IDs of participants
    I can think of another way around is to use a D365/Dataverse API to query D365 directly about the call from ACS's call IDs, but could not find the way
    If possible, can you please advise on it
    Thanks a lot

    0 comments No comments

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.