New GitHub Issue to Teams Notification
When a new issue is created in a GitHub repo, post a formatted card to a Teams channel with issue title, labels, and assignee.
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
When a new issue is created in a GitHub repository, this flow posts a formatted card to a configured Microsoft Teams channel. The card displays the issue title, labels, assignee, and a direct link to the issue on GitHub.
Use Case
Development teams track GitHub issues but don't want to context-switch to GitHub constantly. This flow keeps the team informed of new work directly in Teams, where they already collaborate, eliminating missed issues and reducing notification fragmentation.
The flow is ideal for teams that:
- New issues instantly visible in Teams — no GitHub polling needed
- Card format includes issue metadata (labels, assignee) at a glance
- Direct link to the issue — one-click jump to GitHub
- Fully configurable trigger — no code changes to re-target repos
- Beginner-friendly — simple action sequence with no complex logic
Flow Architecture
When a new issue is created
GitHub triggerFires when a new issue is opened in the configured GitHub repository.
Post Message to Teams Channel
PostMessageToConversationTeams PostMessageToConversation — posts an HTML card with the issue title, labels, assignee, and a direct link to the issue.
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Microsoft Teams | shared_teams | PostMessageToConversation (Post formatted card to a Teams channel) |
| GitHub | shared_github | WhenAnIssueIsCreated (trigger) |
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.
- Deploy to another environment
- Import the solution, update the GitHub trigger to point to your target repository, update the Teams channel reference in the PostMessageToConversation action, bind connection references (GitHub, Teams), and turn the flow on.
- Filter by label
- Add a condition on the issue labels array so only priority labels (e.g., 'bug', 'urgent') trigger a Teams post.
- Add assignee mention
- Use @concat('@', triggerBody()?['issue']?['assignee']?['login']) in the Teams message to @-mention the assigned developer.
- Customize card layout
- Edit the HTML body in the Teams action to surface more fields — milestone, created date, additional issue URLs.
- Multi-channel routing
- Add a switch statement to post to different Teams channels based on the issue label (e.g., bug -> #triage, feature -> #roadmap).
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.01Issue title
Pulls the title of the new GitHub issue for the Teams card heading.
EXPR.02Issue number
GitHub issue number — useful for the card subtitle or link text.
EXPR.03Issue link
Direct URL to the issue on GitHub — used in the card's action button.
EXPR.04Assignee name
GitHub login of the issue assignee — shown in the card metadata.
EXPR.05Labels (array)
Array of label objects on the issue — render as a comma-separated list in the card.
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.