In this guide, you will learn how to automatically trigger a CloudTalk VoiceAgent call from Microsoft Dynamics 365 using Power Automate. The built-in HTTP action supports any method, URL, headers, and body, so calls can be initiated directly from Dataverse record events with no additional middleware required.
User level: Admin
Before you start
You will need:
A CloudTalk VoiceAgent already created (note the VoiceAgent ID)
CloudTalk API credentials (API Key and Secret) found in Company Settings > Integrations > API (How to access and generate your CloudTalk API keys)
A Microsoft 365 / Dynamics 365 subscription with a Power Automate Premium license (the HTTP action is a Premium connector and it requires a paid Power Automate per-user or per-flow plan, not included in free or seeded licenses)
Contact or Lead records with phone numbers in Dataverse
Generate the Authorization header
CloudTalk uses Basic Authentication for API requests.
2. Enter your CloudTalk API Key as Username and your API Secret as Password
3. Copy the generated value. It looks like: Basic XXXXXXXXX
Set up the integration
Create the Power Automate Cloud Flow
1. Open make.powerautomate.com (or access it via the Dynamics 365 app) and make sure you are in the correct environment in the top-right corner (e.g. "Sales Trial")
2. Click + Create and select Automated cloud flow
3. Choose the trigger. For example: Dataverse: When a row is added, modified or deleted
4. Select the Change type (e.g. Added), Table name (e.g. Contacts), and Scope (e.g. Organization).
Tip: If the dropdowns are not available, delete the trigger and re-add it. Start by typing "dataverse" into the search, then select When a row is added, modified or deleted.
5. Optionally, add a Condition step to filter records (e.g. phone field is not empty)
Add the HTTP Action
1. Click + New step
2. Search for and select HTTP
Note: The HTTP connector is a Premium connector and requires a Power Automate Premium license. If you don't see it, your current plan may not include it.
3. Configure the HTTP action:
Field | Value |
Method | POST |
URI |
|
Headers |
|
4. Under Body, paste the following:
{
"call_number": "@{triggerOutputs()?['body/telephone1']}",
"voice_agent_id": "YOUR_VOICE_AGENT_ID"
}call_number and voice_agent_id are the only mandatory fields. You can also pass optional call_properties such as system prompt variables and output variables, depending on your VoiceAgent configuration. Learn what to include
You can also use the Power Automate dynamic content panel to map fields from the trigger instead of raw expressions.
5. Click Save, then click Test to run the flow.
Test and verify
Run the flow in Test mode with a record that has a phone number
Check Run history for a green HTTP action status (response code
200)Verify in CloudTalk that the VoiceAgent call was initiated
You're all set! 🚀 Your Power Automate flow will now trigger a CloudTalk VoiceAgent call whenever a Dynamics 365 record meets your chosen conditions.
💡 API Limits to Keep in Mind
To avoid failures or throttling, make sure your flow handles call distribution carefully. Use delays or scheduling logic where needed, as the standard API rate limit (60 requests per minute) applies to the VoiceAgent endpoint.
Troubleshooting
Error | What to check |
401 Unauthorized | Regenerate and re-enter the Authorization header |
400 Bad Request | Ensure the phone number is in E.164 format ( |
Flow not triggering | Check the trigger type, table name, and condition configuration |
Need help or have a question? Reach out through our Support portal. We're here for you.




