Translator Customer Review Aggregator
On a schedule, the flow pulls customer reviews from RSS/HTTP feeds (app stores, review sites), translates non-English reviews to English with Microsoft Translator, scores sentiment, stores them in Dataverse, and posts negative or noteworthy reviews to a Teams marketing channel. Gives a unified, English view of global customer sentiment.
Provided as-is, without warranty of any kind. Review and test each pattern in a non-production environment before deploying it to live automations. See our Terms.
Overview
This flow gives Marketing and Operations a single, English-normalized view of global customer sentiment. On a schedule it pulls reviews from one or more RSS/HTTP feeds (app stores, review sites), translates each review to English with Microsoft Translator V3 (auto-detecting the source language), scores sentiment with an in-flow keyword model, stores every review in a Dataverse table, and posts only the negative or notable ones into a Teams marketing channel. Reviews arrive in many languages across many sites; aggregating and normalizing them to English makes global sentiment readable and surfaces the reviews that need a response, without drowning the channel in routine 5-star feedback.
Use Case
A product/marketing team monitors customer reviews across regions and wants them centralized, translated to a common language, sentiment-scored, persisted for trend reporting, and the important ones surfaced in Teams in near-real-time. The flow is idempotent: it de-duplicates on the review feed id, so re-runs never re-post or duplicate a stored review.
Flow Architecture
Every 6 Hours
RecurrencePolls the configured review feeds every 6 hours.
Initialize Config
Initialize variableBinds the target language, negative/notable keyword lists, Teams group/channel ids, and splits the comma-separated feed URL list into an array.
Apply To Each Feed
Apply to eachIterates each configured feed and reads its items via RSS ListFeedItems.
Apply To Each Review
Apply to each (nested)For each review: checks Dataverse for an existing flowlibs_reviewid (de-dupe), and only processes unseen reviews.
Translate & Score
Microsoft Translator - TranslateTranslates title+summary to the target language (auto-detect source), lower-cases the English text, and counts negative/notable keyword hits to derive a sentiment label and score.
Create Review Record
Dataverse - CreateRecordPersists the translated, scored review into the flowlibs_customerreview table.
Post To Teams
Teams - PostMessageToConversationPosts an HTML card to the marketing channel only when the review is Negative or matches a notable keyword.
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_RSSFeedURLs | String | https://example.com/reviews/feed1.rss,https://example.com/reviews/feed2.rss | Comma-separated list of RSS/HTTP review feed sources. |
| flowlibs_ReviewTargetLanguage | String | en | Target language code for translation. |
| flowlibs_ReviewNegativeKeywords | String | bad,terrible,awful,refund,broken,crash,slow | Lower-cased negative-sentiment keyword list. |
| flowlibs_ReviewNotableKeywords | String | refund,lawsuit,security,breach,privacy | Always-escalate keyword list. |
| flowlibs_TeamsGroupId | String | <your-team-id> | Marketing Teams team (group) id for alerts. |
| flowlibs_TeamsChannelId | String | <your-channel-id> | Marketing Teams channel id for alerts. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| RSS | shared_rss | ListFeedItems |
| Microsoft Translator | shared_microsofttranslatorv | Translate |
| Microsoft Dataverse | shared_commondataserviceforapps | ListRecords CreateRecord |
| Microsoft Teams | shared_teams | PostMessageToConversation |
Customization Guide
Almost every realistic variant of this flow can be implemented by changing environment variable values. A few cases require small edits inside the flow definition — those are called out explicitly below.
- Feeds
- Set flowlibs_RSSFeedURLs to any RSS/HTTP review feeds. For sites without RSS, swap List Feed Items for an HTTP call to the reviews API and adjust field mappings.
- Cadence
- Edit the Every 6 Hours recurrence (e.g. hourly, daily) to match review volume.
- Sentiment tuning
- Extend the negative/notable keyword lists, add a positive list, or insert an Azure AI Language DetectSentiment / Azure OpenAI action for richer scoring.
- Language
- Change flowlibs_ReviewTargetLanguage to localize the normalized output (e.g. fr, de).
- Routing
- Point the Teams group/channel env vars at the destination channel, or add an Outlook SendEmailV2 to email a manager in parallel.
- Trend reporting
- Build a Power BI report over the flowlibs_customerreview table for sentiment-by-region/source trends.
Key Expressions
The flow is intentionally light on Power Fx / WDL gymnastics — the heaviest expressions are the branch-name concatenation and the approval outcome check. They are listed below in the order they appear in the flow.
EXPR.01Feeds to array
Parses the comma-separated feed list into an array.
EXPR.02Translated text
Extracts the V3 flattened translation.
EXPR.03Sentiment label
Negative when any negative keyword hits.
EXPR.04Sentiment score
Negative-hit count as a negative integer.
EXPR.05Alert gate
Posts to Teams on negative or notable reviews.
Customize & download
Generate a ready-to-import copy of this solution with your environment-variable values baked in — available on Base, Pro, or Team.
Upgrade to customize
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.