Google Review Requests From Dynamics 365 With Power Automate
A Power Automate cloud flow watches Dataverse for Opportunities closed as won, looks up the contact, and sends one request to ReputeMap's API. The customer gets an honest email asking for a Google review.
Reading this for your own business? See where it stands on Google right now. It's free, with no signup.
Live from Google · free · nothing is stored
Can Dynamics 365 send Google review requests automatically?
Yes — you can send Google review requests from Dynamics 365 automatically: a Power Automate cloud flow fires when an Opportunity is closed as won, reads the contact’s email and first name from Dataverse, and its HTTP action sends them with your Google location to ReputeMap’s API. ReputeMap then emails that customer an honest request to review you on Google.
Does ReputeMap integrate with Dynamics 365? Yes, through Power Automate, not through an app. ReputeMap has no app on Microsoft AppSource; the integration is one HTTP request from a cloud flow, and building the flow takes about 15–20 minutes.
Before building anything, check one thing: the license the flow will run under. In Power Automate, that question decides whether the flow can run at all.
Which license runs the flow?
Both building blocks are premium. Microsoft lists the Microsoft Dataverse connector as a Premium connector in Power Automate, and its training material describes the HTTP connection as Premium too. So the flow owner’s license has to cover premium connectors. As of October 2026, Microsoft’s licensing pages describe these options:
| License (as of October 2026) | Premium connectors (Dataverse, HTTP) | What to know for this flow | Microsoft list price |
|---|---|---|---|
| Microsoft 365, or Power Automate Free | Not included: standard connectors only | Can’t run this flow | Included with Microsoft 365 or free |
| Dynamics 365 Sales, Customer Service or Field Service (Enterprise or Professional) | Included only in context: the flow must use the Dynamics 365 app’s data and, as an automated flow, be associated with the app | Microsoft’s own in-context example pairs a Dataverse trigger with writes to another service (Azure DevOps). Confirm your case with your Microsoft licensing contact | Part of your Dynamics 365 license |
| Power Automate Premium | Included | For an automated flow, only the flow owner needs it | $15.00 user/month, paid yearly |
| Power Automate Process | Included, licensed to the flow itself | The flow must be in a solution; useful when no single owner should carry the license | $150.00 bot/month, paid yearly |
Microsoft notes that prices vary by currency, country and agreement. On ReputeMap’s side the license question is simpler: API access is included on every plan, Solo at $19/mo too, and it works during the 14-day free trial.
Build the cloud flow, step by step
1. Get a ReputeMap API key and your location ID
In ReputeMap, go to Settings → API keys (owners and admins only) and create a key. It starts with rmk_ and is shown once. Then call GET /api/v1/locations and copy the id of each Google location. The ReputeMap API docs show both calls.
If you have several locations, add a text column to the Account table, for example “ReputeMap Location ID”, and fill it with the ID of the branch that serves that customer. One location? Skip the column and type the ID into the request body in step 4.
2. Add the trigger: an Opportunity closed as won
Create an automated cloud flow, ideally inside a solution, and choose the Microsoft Dataverse trigger When a row is added, modified or deleted:
- Change type: Modified
- Table name: Opportunities
- Scope: Organization
- Select columns:
statecode - Filter rows:
statecode eq 1
In the Opportunity table, statecode 1 means Won (0 is Open, 2 is Lost). Watching only statecode keeps the flow from running on every edit of an open deal.
3. Get the contact’s email and first name
Add the Dataverse action Get a row by ID: Table name Contacts, Row ID the Opportunity’s Contact (_parentcontactid_value in dynamic content), and under Select columns emailaddress1,firstname. Add a Condition that stops the flow when the email is empty, since an Opportunity can be won with only an Account as the customer.
For several locations, add a second Get a row by ID on Accounts with the Opportunity’s Account (_parentaccountid_value) and select your ReputeMap Location ID column.
| JSON key | Dataverse source | Notes |
|---|---|---|
location_id | Your Account column, for example “ReputeMap Location ID” (the logical name carries your publisher prefix) | Or a fixed value for one location |
email | Contact emailaddress1 (display name Email) | Required |
name | Contact firstname (display name First Name) | Optional |
4. Add the HTTP action
Add the HTTP action and fill it in:
- Method: POST
- URI:
https://api.reputemap.com/api/v1/review-requests - Headers:
Content-Type=application/jsonandX-API-Key= yourrmk_key - Body: the JSON below, with the dynamic content from step 3
POST https://api.reputemap.com/api/v1/review-requests
Content-Type: application/json
X-API-Key: rmk_YOUR_KEY
{"location_id": "<ReputeMap Location ID>", "email": "<Email>", "name": "<First Name>"}
Then open the HTTP action’s Settings and turn on Secure inputs, so the key doesn’t show in the flow’s run history. Microsoft’s guidance goes one step further for API keys: keep the key in an environment variable backed by Azure Key Vault instead of typing it into the action.
5. Test with your own address
Win a test Opportunity whose contact uses your own email, then open the flow run. A working setup returns {"status": "sent"} in the HTTP action’s body, and the review request lands in your inbox.
Handling the response and failures
ReputeMap answers every accepted request with one status:
sent: the email went out.skipped: the customer unsubscribed or the address is suppressed. Nothing is wrong.already_requested: this address was already asked for this location. Nothing is sent and no credit is used.failed: the email could not be sent.
Duplicates are likely here, and harmless. Microsoft’s documentation says the Dataverse trigger is evaluated on every update, even when the values didn’t change, so an update that touches statecode on a won Opportunity again can start a second run. ReputeMap answers that second request with already_requested and sends nothing.
Errors arrive as HTTP codes, and the HTTP action fails on them: 401 (missing or revoked key), 403 (the ReputeMap workspace has no active plan), 404 (a location ID that isn’t yours), 422 (an invalid field, such as a malformed email) and 429 (the rate limit of 60 requests a minute, or the month’s 1,000 credits, which reset on the 1st). Add a step that runs when the HTTP action has failed, with Configure run after, and send yourself a Teams message or an email so a bad key doesn’t fail silently.
When to ask, and what Google’s policy rules out
Ask when the customer has received what they paid for. If your Opportunities close at signature and the work comes later, trigger on a later moment instead: a Case set to Resolved (statecode eq 1 on the Cases table) or your own “job completed” column.
Ask everyone. ReputeMap sends every customer the same email with the same Google link and an unsubscribe link, and it never filters out customers who might be unhappy. Google’s policy for Maps reviews forbids selectively soliciting positive reviews and also rules out:
- paying, discounting or gifting anything in exchange for a review;
- pressuring customers to review you while they’re still on your premises;
- asking customers to name a staff member in the review.
Each API request is a single ask, with no reminder. If you’d like one automatic reminder for customers who haven’t reviewed, campaigns with reminders come with Growth ($79/mo) and above. What the ask says matters too: our review request email templates are short, specific and honest.
Inside ReputeMap after the email
- The customer reaches Google’s review form for the location you sent, and the new review appears in ReputeMap’s inbox with every other location’s reviews.
- A 1–3★ review (by default) triggers an alert by email, Telegram or WhatsApp. The alert email quotes an AI-drafted reply, a Telegram private chat shows it with a ✅ Publish draft button, and WhatsApp carries the alert only.
- Review & publish reply → in the alert email opens a personal, single-use, 7-day link to a page with no login: edit the draft, then publish it to Google.
- Replies are drafted in the language the review was written in, never guessed from the reviewer’s name.
- Nothing is posted to Google until a person taps Publish, unless you switch on Auto-reply to new reviews (paid plans, 4–5★ by default).
- On the free trial, replies are drafted inside the first 2 alerts; on paid plans, inside every alert.
Pulling reviews into Dataverse (advanced)
ReputeMap doesn’t push reviews to Dynamics 365, and it has no outbound webhooks. You can pull them, though. A scheduled cloud flow can call GET /api/v1/reviews?since_days=1 (it also filters by location_id, rating_min/rating_max and has_reply) or GET /api/v1/stats with the same HTTP action, parse the JSON and add rows to a custom table. Each call uses one of the org’s 1,000 monthly API credits, which the MCP server shares, so a daily pull for one location costs about 30 credits a month. It’s a maker’s or developer’s job; without it, read reviews in ReputeMap and keep the flow for the ask.
Who shouldn’t use this setup
- You need SMS review requests. ReputeMap sends email only.
- You want reviews on Account records without building anything. That takes the scheduled flow above.
- Nobody on the team has a license that covers premium connectors, and buying Power Automate Premium for one flow isn’t an option.
- You need an AppSource app that your IT team installs and manages. ReputeMap isn’t one.
- You need Yelp or industry review sites as much as Google. ReputeMap is built for Google reviews.
Why Dynamics 365 teams choose ReputeMap for Google reviews
- Built for Google. The inbox, alerts, AI replies and review requests are all about Google Business Profile.
- Locations included in the price. Published plans: Solo $19/mo (1 location), Starter $29/mo (5), Growth $79/mo (15), Pro $129/mo (30), Portfolio $149/mo (75), Network $189/mo (200), with no per-location fees. For many branches, see multi-location review management.
- Reply from the alert email without logging in, with an AI draft in the reviewer’s language.
- API and MCP on every plan: one key works for this flow, and the MCP server lets an AI assistant read the same reviews.
- White-label reports from Pro, for partners who run Dynamics 365 for clients.
- A 14-day free trial, card required, cancel anytime.
Automating the ask is one part of the job; the guide to getting more Google reviews covers the rest.
Sources (checked October 1, 2026)
- Microsoft Learn: Trigger flows when a row is added, modified, or deleted and Get a row by ID from Dataverse
- Microsoft Learn: Microsoft Dataverse connector (Premium) and Overview of HTTP connectors in Power Automate
- Microsoft Learn: Opportunity table reference, Case (incident) table reference and Contact table reference
- Microsoft Learn: Types of Power Automate licenses, Deep dive on specific licenses and Power Automate licensing FAQ
- Microsoft: Power Automate pricing
- Microsoft Learn: Secure data used in cloud flows
- Google: Maps user-generated content policy
Start your 14-day free trial (card required, cancel anytime). Setup takes about 15–20 minutes: connect your Google Business Profile, create an API key, build the flow, and the next won Opportunity sends the first review request.
Frequently asked questions
Does ReputeMap have a Dynamics 365 app on AppSource?
No. ReputeMap has no app on Microsoft AppSource. The integration is a Power Automate cloud flow: the Microsoft Dataverse trigger When a row is added, modified or deleted watches your Opportunities, and the HTTP action posts the customer's email, first name and Google location to ReputeMap's endpoint, POST /api/v1/review-requests. Building the flow takes about 15–20 minutes.
Do I need a Power Automate Premium license?
Both the Dataverse connector and the HTTP action are premium in Power Automate. As of October 2026, Microsoft's licensing documentation says Dynamics 365 licenses cover premium connectors only when the flow runs in the context of the Dynamics 365 app, and an automated flow must be associated with that app. Outside that context, the flow owner needs Power Automate Premium (listed at $15.00 per user per month, paid yearly) or the flow needs a Power Automate Process license ($150.00 per bot per month, paid yearly). Confirm your case with your Microsoft licensing contact.
Can I trigger the request when a Case is resolved instead?
Yes. Use the same trigger on the Cases table with statecode eq 1, which is Resolved, and read the email from the Case's Contact. Pick the moment when the customer has actually received the service.
Can I see Google reviews in Dynamics 365?
Not out of the box. ReputeMap doesn't push reviews into Dataverse and has no outbound webhooks. A scheduled cloud flow can call GET /api/v1/reviews or GET /api/v1/stats with the HTTP action and write rows to a custom table; each call uses one of the org's 1,000 monthly API credits.
Does ReputeMap send SMS review requests?
No. ReputeMap sends review requests by email only.
Ready to manage Google reviews the smart way?
Agentic Reputation Platform for Multi-Location Brands. Start a 14-day free trial on any plan (card required). Setup takes about 3 minutes.
Get started