How to display IVR context variables to customer service representatives as soon as they pick up the call.

Aymen Tiouiri 0 Reputation points
2026-10-27T11:11:28.6066667+00:00

I am building a Dynamics 365 Contact Center. I have build on copilot studio an IVR that passes 4 variables to my workstream, the variables have been added to the workstream correctly as text variables. The phone call needs to go first to a first line representative without any route to queue. The customer service representative has to see as soon as he picks the phone, all the calller choices so that if he can't answer the question routes to the correct queue. The issue is that I don't know how to display the variables chosen by the caller on the IVR to the customer service representative.

Thank you so much

Azure Communication Services
0 comments No comments

1 answer

Sort by: Most helpful
  1. AI answer

    2026-10-27T11:12:44.2033333+00:00

    Configure the four caller answers as matching Copilot Studio variables and workstream context variables, then hand off with Transfer conversation; however, the available Microsoft documentation does not provide a supported Copilot Studio setting that marks arbitrary transferred variables as visible in the representative’s context panel.

    Configure the supported handoff

    1. In Copilot Studio, store each IVR answer in a user-defined topic or global variable before handoff.
    2. At the end of the IVR topic, add:
      • Topic Management → Transfer conversation.
    3. In Copilot Service admin center, go to:
      • Customer support → Workstreams → open the voice workstream.
      • Under Advanced settings, select Add context variable.
    4. Create one Text context variable for each IVR value.
    5. Ensure each workstream variable name exactly matches its Copilot Studio variable name, including capitalization. Context-variable names are case-sensitive, and their values can contain up to 4,000 characters.^1^
    6. Publish the Copilot Studio agent and test a complete call through the Transfer conversation node.

    Copilot Studio hands user-defined variables to the connected engagement hub during transfer. It also provides standard values such as va_LastTopic, va_LastPhrases, and va_AgentMessage.^2^

    A practical alternative for a compact summary is to populate the Private message to agent on the Transfer conversation node. That message is handed off as va_AgentMessage; for example:

    IVR summary:
    Product: {selectedProduct}
    Reason: {callReason}
    Customer type: {customerType}
    Priority: {priority}
    

    Use Copilot Studio’s variable insertion picker rather than typing placeholders manually. This transfers a single representative-facing handoff summary, but the documentation does not establish precisely which voice workspace surface will render it in every Contact Center configuration.

    Display limitation for Copilot Studio

    Microsoft documents that context values appear in the representative’s context panel only when they are configured as displayable. The documented isDisplayable payload is for a custom Azure AI agent’s escalation command, not for a Copilot Studio agent.^3^

    Therefore, do not add an Azure-agent JSON escalation payload to this Copilot Studio implementation. The available documentation does not specify:

    • A Copilot Studio authoring control for setting isDisplayable.
    • An admin-center UI or public procedure for changing that flag on arbitrary workstream variables.
    • A documented automation-dictionary slug for displaying arbitrary custom context variables in a representative script.

    If the variables arrive in Dynamics 365 but do not appear in the context panel, open a Microsoft support case and request confirmation of the supported isDisplayable mapping for Copilot Studio voice handoff in the specific tenant and Contact Center edition. Include the workstream name, variable names, call timestamp, and conversation ID, but no caller-sensitive values.

    Marking a Copilot Studio variable as Sensitive data is separate: it redacts the value from transcripts and telemetry while retaining it for runtime logic. It does not documentably make the value visible to representatives.^4^

    Route the initial call through a first-line queue

    A normal voice workstream cannot bypass queues and assign the call directly to an unspecified first-line representative. Unified routing assigns inbound voice work to a queue and then to an eligible representative.^5^

    Configure the triage stage as follows:

    1. In Copilot Service admin center → Queues, create a queue with Type = Voice.
    2. Add the first-line representatives to that queue.
    3. In the voice workstream’s route-to-queue rules, make this the initial/default queue.
    4. Let the first-line representative accept the call, review the transferred IVR context, and transfer it to the appropriate specialist voice queue.

    Direct inward dialing is different: it targets a representative’s personal number and does not use unified routing. It is not a substitute for sending workstream IVR calls to whichever first-line representative is available.^6^


    References

    1. Manage context variables
    2. Hand off to a live agent
    3. Build an Azure AI agent
    4. Remove sensitive data
    5. Set up inbound calling
    6. Configure outbound and inbound profiles
    AI-generated content may be incorrect. Read our transparency notes for more information.

    Was this answer helpful?

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.