Wednesday, 18 March 2026

{How to }Make your copilot multilingual in Microsoft Copilot Studio

Hello Everyone,



Today I am going to show how to enable Microsoft Copilot Studio Multilingual.





Let's get started.


To make your Microsoft Copilot (created in Copilot Studio) multilingual, you can add secondary languages to your agent and localize its content.





1. Add Secondary Languages:

When you create an agent, it has one primary language. You can add more by following these steps in Microsoft Copilot Studio.


  • Open Settings: Go to the Settings page for your agent.
  • Select Languages: Click on the Languages tab.
  • Add Language: Select Add language, choose the languages you want from the list, and click add.
  • Publish: Your agent must be published for the changes to take effect.




2. Manage Localization & Translations

Content in your agent, like topic messages, does not translate automatically unless you use generative orchestration. For other content:


  • Download Localisation File: In the Languages Settings, select Upload for a secondary language and download the current strings in JSON or ResX format.
  • Translate strings: Open the file and replace the primary language text with your translated versions.
  • Upload Translations: Upload the modified file back to the agent's settings.
  • Manual Authoring: Some elements, like Starter Prompts, must be manually authored in each secondary language directly in the canvas.




3. Language Switching Logic

You can configure how the agent decides which language to use:

  • Browser-Based Detection: By default, the agent tries to match the language specified in the user's browser or client. If no match is found, it falls back to the primary language.
  • Dynamic Language Switching: You can create a topic that uses the User.Language system variable to switch languages mid-conversation based on user input or AI-detected intent.
  • Generative Orchestration: If needed, your agent can dynamically switch languages turn by turn to follow the flow of the conversation.
These guides detail how to configure Microsoft Copilot for Multilingual capabilities, covering language addition, localization and language-switching logic.


That's it for today.

I hope this helps.

Malla Reddy Gurram aka @UK365GUY

Tuesday, 17 March 2026

{How to} Use IVR with Omnichannel for customer service in Copilot Studio

Hello Everyone,



Today i am going to share my thoughts on using IVR with Omnichannel for Customer Service in Copilot Studio.







Let's get started.




To use Interactive Voice Response (IVR) with Omnichannel for Customer Service in Microsoft Copilot Studio, you must integrate a voice-enabled agent into your Dynamics 365 environment. This allows the agent to handle phone calls, process keypad inputs, and escalate to live representatives when necessary.






Prerequisites:


Licensing: Ensure you have valid Copilot Studio and Dynamics 365 Customer Service licenses with the voice channel enabled.


Environment: Your agent and Dynamics 365 instance must be in the same geographical region.


Phone Number: Acquire a number through Azure Communication Services or use your own carrier (BYOC)





Setup Steps:


1. Configure the Agent in Copilot Studio:

1. Open your agent and navigate to Settings > Channels.

2. Select Dynamics 365 Customer Service (Under Customer Engagement Hub) and click connect.

3. Enabled Voice capabilities to allow speech recognition and DTMF (keypad) inputs.





2. Establish Handoff to Live Agents:

1. Go to Manage > Agent Transfers in Copilot Studio.

2. Select Omnichannel and enable it to ensure a seamless transition with full conversation history and variables.




3. Configure the Voice Workstream in Dynamics 365:

1. In the Customer Service Admin Centre, create a new voice workstream.

2. Link your acquired phone number to this channel.

3. Add your Copilot Agent to the workstream to act as the primary IVR.






Key IVR Capabilities:

DTMF Input: Customers can use their phone keypad for single- or multi-digit processing.

Speech Customisation: Use SSML (Speech Synthesis Markup Language) to adjust tone, pitch and speed.


Barge-in Control: Determine if customers can interrupt the agent while it is speaking.


Silence Detection: Configure the agent to handle pauses by triggering retries to reprompts.








That's it for today.


I hope this helps.
Malla Reddy Gurram aka @UK365GUY


Monday, 16 March 2026

{How to} Enhance IVR with generative answers optimized for voice in Copilot Studio

Hello Everyone,



Today I am going to share my thoughts on the Enhancing IVR with generative answers optimised for voice in Copilot Studio.







To enhance an IVR with generative answers optimised for voice in Microsoft Copilot Studio, you essentially combine LLM-based generative responses with voice-channel best practices so answers sound natural when spoken by a bot. Below is a practical step-by-step approach used in production IVR systems.


1. Enable Generative Answers in Copilot Studio


In Microsoft Copilot Studio you can allow the bot to generate responses from knowledge sources.

Steps

  1. Open your Copilot Studio bot.

  2. Go to Topics → Generative Answers.

  3. Enable Generative AI responses.

  4. Connect knowledge sources such as:

    • SharePoint

    • Public websites

    • Dataverse

    • Uploaded documents (PDF/Word)

This allows the bot to generate answers instead of only using scripted topics.




2. Configure Voice Channel (IVR)

To make the bot work as an IVR, connect it to voice channels via:

  • Azure Communication Services

  • Microsoft Teams

  • Dynamics 365 Customer Service

  • Third-party contact centers (Genesys, Avaya, etc.)

These platforms handle:

  • Speech-to-text

  • Text-to-speech

  • Call routing




3. Optimize Generative Answers for Voice


LLM responses are normally written for text, so you must shape them for spoken IVR.

Use Voice Response Instructions

In the Generative Answers configuration, add instructions like:

Respond in a short conversational style suitable for voice.
Use sentences under 15 words.
Avoid bullet lists and long explanations.
Pause between ideas.
If the answer is long, summarize first and offer to provide more details.

Example transformation:

Normal LLM output

Our return policy allows customers to return products within 30 days provided that the product is unused and in its original packaging.

Voice-optimized

You can return items within 30 days.
The product must be unused and in the original packaging.



4. Add Fallback Logic for IVR



In IVR flows you should always handle uncertain AI answers.

Typical pattern:


User question

     ↓

Generative Answer

     ↓

Confidence check

     ↓

If low confidence → transfer to agent



Use Power Automate actions or topic conditions to:


  • escalate calls
  • ask clarification questions
  • repeat simplified answers



5. Limit Response Length

IVR responses must be shorter than chat responses.

Recommended limits:

TypeLength
Primary answer1–2 sentences
Follow-up detailsOptional
Total speaking time< 15 seconds



6. Add Confirmation Prompts

Voice bots should confirm understanding.

Example:

“Your order was shipped yesterday.
Would you like the tracking number?”

This improves call flow and reduces frustration.



7. Improve Voice Naturalness (SSML)


Use Speech Synthesis Markup Language (SSML) with Azure TTS.

Example:


<speak>

Your order shipped yesterday.

<break time="500ms"/>

Would you like the tracking number?

</speak>




This works with:

  • Azure AI Speech



8. Monitor and Retrain

Track voice interactions using analytics in:

  • Copilot Studio analytics

  • Dynamics contact center insights

Improve by:

  • Adding missing knowledge

  • Shortening responses

  • Adjusting prompt instructions



Example: IVR Flow with Generative Answers

Caller question
      ↓
Speech to text
      ↓
Copilot Studio
      ↓
Generative Answer
      ↓
Voice optimized response
      ↓
Text to speech
      ↓
Caller hears response


That's it for today.


I hope this helps.

Malla Reddy Gurram aka @uk365guy

Sunday, 15 March 2026

{How to} Use answering machine detection and proactive engagement tools in Copilot Studio

Hello Everyone,



Today I am going to share my thoughts on how answering machine detection and proactive engagement tools work.





Let's get started.


In Microsoft Copilot Studio, you can leverage Answering Machine Detection (AMD) and Proactive Engagement tools to automate outbound voice workloads and improve customer interaction efficiency. These features are primarily used within Dynamics 365 Contact Center or Customer Service to handle high-volume proactive outreach.



Answering Machine Detection (AMD)

AMD allows your AI agent to distinguish between a live human and a voicemail system, triggering different automated workflows accordingly.

  • Configuration: AMD is managed through a specific Answering Machine Detection system topic in Copilot Studio.


  • Workflow: You can define what happens when a machine is detected, such as:

Leveraging a Message: Use a Message node within the AMD topic to specify exactly what the agent should say to the voicemail.


Ending the Call: Automatically hang up to void nonproductive connections and save costs.



Real-time Outcomes: The system shares call outcomes (e.g., LiveAnswer, AnsweringMachine) in near real time, helping you track campaign efficiency.



Proactive Engagement Tools:


Proactive engagement enables your organisation to initiate outbound calls instead of just waiting for inbound queries.


Dialling Modes:

  • Copilot: The system dials the customer and connects them directly to the AI agent. Ideal for automated notifications like payment reminders or service alerts.


  • Progressive: Copilot starts the call to perform basic tasks (like verifying the right person is on the line) before handing off to a human representative.


  • Predictive: Automatically places calls based on predicted representative availability



Setup Requirements:


  • Create an Outbound Workstream in the Dynamics 365 Contact Center admin center.

  • Assign a phone number enabled for outbound calling.

  • Use the Voice template when creating your agent in Copilot Studio for the best compatibility.


Messaging: For text-based engagement (e.g., in Microsoft Teams), you can use Power Automate Flows to trigger proactive messages or Adaptive cards based on specific business events.


That's it for today.


I hope this helps.

Malla Reddy Gurram aka @uk365guy

 

Friday, 13 March 2026

{How to } Publish Copilot Agents to WhatsApp

Hello Everyone,




Today i am going to share my thoughts on how to publish the copilot agent to whatsapp channel.






Let's get started.



To publish a Microsoft Copilot Studio agent to WhatsApp, you must use Azure Communication Services (ACS) as the bridge between your agent and the whatsapp business platform.



1. Prerequisites


Before starting, ensure you have the following:

  • Azure Subscription: You need an active subscription with an Azure Communication Services (ACS) resource.

  • WhatsApp Business Account (WABA): A verified business account on Meta's WhatsApp Business Platform.

  • Phone Number: A clean, verified phone number specifically for your WhatsApp agent.

  • Agent Settings: Your agent's authentication must be set to either "No authentication" or "Authentication manually" (Microsoft sign-in is not supported on this channel).


2. Step-by-Step Configuration


1. Publish YOur Agent: Ensure your latest changes are live by selecting Publish in the Copilot Studio side menu.


2. Navigate to Channels: Go to Settings > Channels and select the WhatsApp tile.

3. Connect to Azure:

     a. Select your Azure Communication and the specific ACS resource.
     b. Choose the WhatsApp-enabled phone number you wish to use.

4. Deploy: Click Deploy. This process automatically configure the connection between ACS and Copilot Studio.

5. Scan & Test: Once deployment is finished, Copilot Studio will generate a QR code.
Scan this with your WhatsApp device to start a test chat with your live agent.



3. Important Limitations & Tips


Content Restrictions: WhatsApp agents have limited support for Adaptive Cards.
Only "Interactive actions" (up to 3 buttons), "Choice lists", and "Open URL" cards are supported.

24-Hour Window: You can reply freely to a user within 24 hours of their last message.
To initiate a conversation outside this window, you must use Meta-approved WhatsApp Message Templates.


Troubleshooting: If messages are sent but the agent doesn't respond, verify that the Event Grid resource provider is registered in your Azure subscription to allow message forwarding.


For detailed step-by-step instructions click here



That's it for today.


I hope this helps.

Malla Reddy Gurram aka @UK365GUY




Thursday, 12 March 2026

{How to} Request Information from humans in the loop in Copilot Studio Agent flows

Hello Everyone,



Today I am going to share my thoughts on how to request information from humans in the loop in Copilot Studio Agent flows.





Let's get started.


In the agent flows in Microsoft Copilot Studio, you can request information from a human (human in the loop) when the agent cannot complete a task automatically. This is usually done by sending a request to a person through approval, email, or Teams using Microsoft Power Automate.


Below are the simple steps.


Step 1: Create or Open an Agent Flow
1. Go to Copilot Studio
2. Open your Copilot Agent
3. Navigate to Agent Flows
4. Click New flow.



Step 2:  Add a Trigger

Choose a trigger such as:

1. When an agent calls the flow
2. When a topic triggers the flow

This allows the agent to start the flow when needed.


Step 3: Add a Human Approval Step

In the flow designer:

1. Click + New step
2. Select Approvals
3. Choose Start and wait for an approval


This sends a request  to a human (manager, support agent, etc)

Example:

The agent asks a human to approve a refund.



Step 4: Send the Request to a Person

Configure the approval:

  • Assigned to: email or user
  • Title: Request from Copilot Agent
  • Details: Information the human needs.

Example: 

Customer requested refund of £50.
Approve or reject?

You can send it via:

  • Microsoft Teams
  • Email
  • Power Automate approvals portal


Step 5: Wait for the Human Response

The flow pauses until the human responds.


Possible responses:

  • Approve
  • Reject
  • Provide additional input


Step 6: Return the Result to the Agent

Add a Condition step:

  • If Approved -> continue the process.
  • If Rejected  ->  inform the user


Example response to the user:

  • "Your request has been approved."
  • "Your request requires further review."



Example Use Cases


  • Approving refunds
  • Escalating to a manager
  • Verifying sensitive data
  • Manual renewal of AI decisions




Furthermore: You can also create a human escalation where the agent hands the conversation to live support person in Teams or a helpdesk system.


That's it for today.

I hope this helps.

Malla Reddy Gurram aka @UK365GUY


Wednesday, 11 March 2026

{How to} Reassign an copilot agent's owner with Power Platform API

Hello Everyone,



Today I am going to share my thoughts on how to reassign an copilot agent's owner with the Power Platform API.





Let's get started.


Here are the simple steps to reassign a Copilot Agent Owner using the Power Platform API.

This uses Microsoft Copilot Studio agents stored in Microsoft Dataverse.


Shorter version:

  • Get API token

  • Get botid

  • Get systemuserid of new owner

  • Send PATCH request to update ownerid




Step 1: Get the Environment URL

Find your Power Platform Environment URL.


Example:

https://yourenvironment.crm.dynamics.com



Step 2: Get an Access Token

Authenticate using Microsoft Entra ID.

You must obtain a Bearer token to call the Power Platform API.

Scope:

https://yourenvironment.crm.dynamics.com/default


Step 3:  Get the Copilot Agent ID

Call the API to list agents.

Get https://yourenvironment.crm.dynamics.com/api/data/v9.2/bots


Response example:

JSON

{
 "botid": "11111111-2222-3333-4444-555555555555",
 "name": "CustomerSupportCopilot"
}

Copy the botid.



Step 4: Get the New Owner User ID

Retrieve the user you want to assign.

GET https://yourenvironment.crm.dynamics.com/api/data/v9.2/systemusers

Find the systemuserid of the new owner.


Step 5: Reassign the Copilot Agent

Send a PATCH request to update the owner.

PATCH https://yourenvironment.crm.dynamics.com/api/data/v9.2/bots(BOT_ID)



Body:

JSON

{
 "ownerid@odata.bind": "/systemusers(NEW_USER_ID)"
}


Example:  

JSON
{
 "ownerid@odata.bind": "/systemusers(99999999-8888-7777-6666-555555555555)"
}





Result:

The Copilot agent is now owned by the new user.



That's it for today.

Until next blog post
Happy Copiloting 

aka @uk365guy.