Translator Meeting Minutes Distribution
After a meeting, the flow takes the minutes (from a Dataverse record), translates them into each attendee's preferred language with Microsoft Translator, generates a per-language Word document, and emails each attendee their version. Ensures every participant gets the record in a language they read fluently.
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 translates a meeting's minutes into each attendee's preferred language using Microsoft Translator V3, generates a per-language Word document from a template, and emails each attendee their localized copy with the document attached. Every delivery is logged to Dataverse and the source record is marked Distributed. In multilingual meetings, a single-language record leaves some participants guessing; automated, per-attendee localized minutes ensure everyone gets an accurate, fluent record of decisions and action items.
Use Case
A team with multilingual participants records meeting minutes once (in any source language) into a Dataverse table. When the record is created, the flow looks up the attendee roster, translates the minutes into each attendee's preferred language, produces a branded Word document per language, and emails each person their own version, then logs the run for audit.
Flow Architecture
When a minutes record is created
Dataverse - SubscribeWebhookTriggerFires on a new row in flowlibs_meetingminutessource (Create, scope Organization); delivers the full minutes record inline.
Initialize Variables
Initialize variableCaptures trigger fields, mints a correlation id, resolves the source language (row override else env-var default / Auto-detect), and formats the date.
List Meeting Attendees
Dataverse - ListRecordsReads flowlibs_meetingminutesattendee filtered on flowlibs_meetingkey = this meeting's key.
Apply to each Attendee
Apply to eachProcesses every attendee on the roster.
Translate Minutes
Microsoft Translator - TranslateTranslates the minutes from the source language into the attendee's preferred language; flattens the V3 response.
Populate Word Minutes Document
Word Online (Business) - CreateFileItemAssembles the merge fields and populates the Word template to produce a per-language .docx.
Send Translated Minutes Email
Outlook - SendEmailV2Emails the attendee their translated minutes with the .docx attached.
Log Distribution
Dataverse - CreateRecordWrites an audit row to flowlibs_meetingminuteslog (email, language, meetingkey, correlationid, senton, status).
Mark Source Distributed
Dataverse - UpdateRecordSets the source record status to Distributed once all attendees are processed.
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_MinutesSourceLanguage | String | Auto-detect | Fallback source language for Translator (row value overrides). |
| flowlibs_MinutesSubjectPrefix | String | Translated Meeting Minutes: | Subject-line prefix for each email. |
| flowlibs_WordTemplateSource | String | https://your-tenant.sharepoint.com | Word Online site holding the template. |
| flowlibs_WordTemplateDrive | String | <configure> | Word Online drive / document-library id for the template. |
| flowlibs_WordTemplateFile | String | <configure> | Word template file id / server-relative path to populate. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Microsoft Dataverse | shared_commondataserviceforapps | SubscribeWebhookTrigger ListRecords CreateRecord UpdateRecord |
| Microsoft Translator | shared_microsofttranslatorv | Translate |
| Word Online (Business) | shared_wordonlinebusiness | CreateFileItem |
| Office 365 Outlook |
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.
- De-duplicate languages
- To translate once per unique language instead of once per attendee, build a distinct-language list and group attendees by language before the loop.
- Source minutes from a document
- Swap the minutestext column for a SharePoint/Word GetFileContent read if minutes live in a file rather than a Dataverse field.
- PDF output
- Follow the Word populate with Word Online GetFilePDF to email an immutable PDF instead of a .docx.
- Action items
- Parse and translate action items, then create Planner tasks per owner.
- Trigger on status change
- Switch the trigger to Update with filteringattributes = flowlibs_status to fire only when a row is marked Ready, rather than on every Create.
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.01Correlation id
Reuses the row's id or mints a new one.
EXPR.02Attendee filter
OData filter to the meeting's roster.
EXPR.03Translated minutes
Flattened V3 translation.
EXPR.04Source language resolve
Row override else env-var default.
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.