Jira Issue to Teams Standup Digest
Each morning the flow queries a Jira board (JQL) for in-progress, blocked, due-today, and recently-done issues, builds a standup digest grouped by assignee, and posts it to a Teams channel with links. Replaces manual standup prep with an automatic Jira readout.
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 generates a daily standup digest from Jira and delivers it to a Microsoft Teams channel and by email. Every weekday morning at 08:45 it runs a configurable JQL query against a Jira board (in-progress, blocked, due-today, recently-done), builds an HTML digest sorted by assignee, posts it to a Teams channel, and emails the same digest to a distribution address.
Why it matters: standup prep is repetitive manual work. An automatic Jira readout focuses the meeting on blockers and progress and removes the morning copy-paste.
Ships Off (demo). Jira is queried via REST (HTTP) with env-var-bound Basic auth, because the connector exposes JQL search only as internal params or triggers.
Use Case
A development team running on Jira Cloud wants a consistent morning standup summary posted to their Teams channel (and mirrored to email) so everyone walks into standup already knowing the board state - what is in progress, what is blocked, what is due today, and what was just completed.
Flow Architecture
Weekday 08:45 Recurrence
RecurrenceWeekdays at 08:45 Eastern, just before standup.
Initialize Config
Initialize variable (x8)Loads the JQL, browse base, Jira email/API token, Teams ids, digest email, and title.
Get Jira Issues
HTTP - POST /rest/api/3/search/jqlCalls Jira Cloud REST with the board JQL using Basic auth built from env vars.
Shape Issue Rows
SelectMaps each issue to an HTML table row (assignee, linked key, summary, status, priority, due).
Compose Digest HTML
ComposeBuilds the full digest: heading + date, issue count, and the HTML table.
Post to Teams
Teams - PostMessageToConversationPosts the digest into the standup channel.
Email the Digest
Outlook - SendEmailV2Emails the same digest to a distribution address.
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_BoardJql | String | statusCategory != Done ORDER BY assignee ASC, priority DESC | JQL that returns the standup board snapshot. Scope to your sprint/board. |
| flowlibs_JiraBrowseBaseUrl | String | https://your-domain.atlassian.net/browse/ | Builds the clickable link per issue; the REST host is derived by stripping /browse/. |
| flowlibs_JiraEmail | String | service-account@your-domain.com | Atlassian account email (Basic auth username). |
| flowlibs_JiraApiToken | String | REPLACE_WITH_JIRA_API_TOKEN | Atlassian API token (Basic auth password). |
| flowlibs_TeamsGroupId | String | <your-team-id> | Target Teams team (group) id. |
| flowlibs_TeamsChannelId | String | <your-channel-id> | Target Teams channel id. |
| flowlibs_DigestEmailTo | String | standup@example.com | Email recipient for the digest copy. |
| flowlibs_DigestTitle | String | Daily Standup Digest | Heading used in the Teams message and email subject. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| HTTP | shared_http | POST /rest/api/3/search/jql (Jira) |
| Microsoft Teams | shared_teams | PostMessageToConversation |
| 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.
- Per-assignee DM
- Loop the issues grouped by assignee and DM each developer their own items instead of one channel post.
- Blocked focus
- Add a Filter Array for flagged/Blocked issues and lead the digest with a Blockers section.
- Sprint burndown
- Add a second JQL (or the Jira Agile API) for remaining vs completed and include a progress line.
- Recently-done window
- Extend the JQL with OR (statusCategory = Done AND resolved >= -24h) to surface yesterday's completed work.
- Native Jira connector
- If your environment's Jira connector exposes a public JQL search action, swap the HTTP call for it and add the Jira connection reference.
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.01REST host from browse base
Derives the Jira REST host from the browse URL.
EXPR.02Basic auth header
Builds the Basic auth header from env vars.
EXPR.03Issue link
Clickable link per issue.
EXPR.04Issue count
Number of issues in the digest.
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.