Jira Customer-Facing Status Sync
When a Jira issue linked to a customer request changes status, the flow updates the customer's view - a portal record in Dataverse, a status email, or a linked support ticket - with an appropriate, sanitized status, keeping customers informed without exposing internal detail. Bridges internal Jira progress to customer communication.
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 bridges internal Jira progress to customer communication. On a daily schedule it reconciles every active customer-linked Jira issue: it reads the live internal status from Jira, translates it into a sanitized customer-facing label via a configurable status map, and - only when the status has actually changed since the last sync - updates the customer's portal record in Dataverse and emails the customer a clean status update. No internal Jira detail (assignee, comments, raw status names) is ever exposed.
Why it matters: customers want progress visibility; internal Jira wording and detail are not appropriate to share. A mapped, sanitized status keeps customers informed safely, and change detection means they are only emailed when something genuinely moves.
Ships Off (Stopped).
Use Case
A delivery/support team tracks customer-driven work in Jira and maintains a Dataverse table linking each Jira issue to the customer who requested it. The team wants customers automatically kept up to date on progress without manually relaying status, and without leaking internal engineering detail.
Flow Architecture
Daily Customer Status Sync
RecurrenceRuns the reconciliation once daily (08:00 ET).
Initialize Trace & Config
Initialize variableMints a correlation id and loads the status map, link table, portal URL base, and support email; seeds the synced counter and HTML report rows.
List Customer Issue Links
Dataverse - ListRecordsReads all active customer-to-issue links.
For Each Linked Issue
Apply to each (concurrency 1)Gets the live Jira status, maps it to a sanitized customer label (defaulting unmapped statuses to In Progress), and only on change updates the portal record and emails the customer the clean status + portal link.
Email Internal Summary if Any Updates
Condition + Outlook SendEmailV2Emails the support/ops team the run summary only if at least one update was pushed.
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_StatusSanitizationMap | String | {"To Do":"Received","In Progress":"In Progress","In Review":"In Progress","Blocked":"On Hold","Done":"Resolved","Closed":"Resolved"} | Maps raw Jira status names to sanitized customer labels. |
| flowlibs_CustomerLinkTable | String | flowlibs_customerissuelinks | Link-table set name (documentation/portability). |
| flowlibs_CustomerPortalUrlBase | String | https://portal.contoso.com/requests/ | Prepended to the issue key to build the customer portal link. |
| flowlibs_LeadEmail | String | lead@contoso.com | Internal support/ops summary recipient. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Jira | shared_jira | GetIssue |
| Microsoft Dataverse | shared_commondataserviceforapps | ListRecords UpdateRecord |
| Office 365 Outlook | shared_office365 | SendEmailV2 |
Note — All connections are referenced as solution connection references; the flow is portable between environments as long as a connection is mapped at import time.
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.
- Schedule
- Change the daily sync to hourly or business-hours only for faster customer updates.
- Status map
- Edit flowlibs_StatusSanitizationMap to match your Jira workflow's status names and preferred customer wording; unmapped statuses fall back to In Progress.
- Notify selectively
- Extend the change check to only email when the customer-facing label changes, not every internal hop.
- Real-time variant
- Swap the Recurrence for the Jira OnIssueUpdated trigger to react per-event.
- Portal page
- Surface the customer-facing status + last-synced on a Power Pages self-service status page.
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.01Current internal status
The live internal Jira status.
EXPR.02Sanitized customer-facing status
Maps internal to a safe customer label, defaulting to In Progress.
EXPR.03Change detection
Acts only when the internal status actually changed.
EXPR.04Customer portal link
Builds the customer self-service link.
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.