GitHub Issue to Planner Task Sync
When a GitHub issue is assigned, auto-create a Planner task with labels mapped to buckets and the issue link in notes.
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
GitHub Issue to Planner Task Sync automatically creates a Microsoft Planner task whenever a GitHub issue is assigned to you. The task includes the issue number, title, labels, assignee, and a direct link back to the GitHub issue — bridging developer issue tracking with project management in Planner.
Use Case
Development teams and project managers who use GitHub for issue tracking but Planner for daily task management need a bridge between the two systems. This flow eliminates manual task creation by automatically syncing assigned GitHub issues into Planner, ensuring nothing falls through the cracks. The task description includes the full issue context — labels, assignee, body text, and a clickable link to the original issue.
The flow is ideal for teams that:
- Development teams using GitHub for issue tracking and Planner for daily task management
- Project managers who need GitHub-assigned issues to surface automatically in Planner
- Teams that want issue context (labels, assignee, body, link) carried into Planner tasks
- Workflows where nothing assigned in GitHub should fall through the cracks
Flow Architecture
Trigger
When a GitHub Issue Is AssignedGitHub (polling): polls every 5 minutes for issues newly assigned to the authenticated user. Uses splitOn to process each issue individually.
Initialize Variable - varPlannerGroupId
Init VariableReads flowlibs_PlannerGroupID environment variable.
Initialize Variable - varPlannerPlanId
Init VariableReads flowlibs_PlannerPlanID environment variable.
Initialize Variable - varGitHubRepoOwner
Init VariableReads flowlibs_GitHubRepoOwner environment variable.
Initialize Variable - varGitHubRepoName
Init VariableReads flowlibs_GitHubRepoName environment variable.
Compose Issue Labels
ComposeExtracts labels from the trigger body; falls back to "No Labels" if none exist.
Compose Task Title
ComposeFormats as [#123] Issue Title for easy identification.
Create Planner Task
Planner - CreateTask_V3Creates the task in the target plan with the formatted title.
Compose Task Description
ComposeBuilds a rich description: issue URL, repo name, labels, assignee, and full issue body.
Update Task Details with Description
Planner - UpdateTaskDetails_V2Sets the task description (Planner requires a separate API call for descriptions).
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_PlannerGroupID | String | <configure> | Microsoft 365 Group ID that owns the target Planner plan. Set to the GUID of the M365 group hosting your Planner plan. |
| flowlibs_PlannerPlanID | String | <configure> | Target Planner plan where tasks are created. Set to the plan ID where new GitHub-issue tasks should land. |
| flowlibs_GitHubRepoOwner | String | <configure> | GitHub username or organization owning the repo to monitor. |
| flowlibs_GitHubRepoName | String | <configure> | GitHub repository name to monitor for newly assigned issues. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| GitHub | shared_github | When a GitHub Issue Is Assigned (trigger; polls for assigned issues) |
| Planner | shared_planner | CreateTask_V3 UpdateTaskDetails_V2 |
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.
- Set environment variable values
- Update all four env vars with your actual Planner Group ID, Plan ID, GitHub repo owner, and repo name.
- Turn on the flow
- Change the flow state from Stopped to On after import.
- Update connections
- If importing to a new tenant, create new GitHub and Planner connections and update the connection references.
- Customize task title format
- Edit the "Compose Task Title" action to change the [#number] title pattern.
- Add bucket mapping
- To map GitHub labels to Planner buckets, add a Switch action after "Compose Issue Labels" that sets a bucketId variable based on label names, then pass it to body/bucketId in the Create Planner Task action.
- Add assignee mapping
- To auto-assign the Planner task, add an assignments parameter to CreateTask_V3 mapping the GitHub username to a Microsoft 365 user email.
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.01Task title format
Builds the Planner task title from the GitHub issue number and title.
EXPR.02Labels extraction
Joins issue labels into a comma-separated string, or returns "No Labels" when none are present.
EXPR.03Null-safe assignee
Falls back to "Unassigned" when the GitHub issue has no assignee.
EXPR.04Null-safe body
Falls back to a default description when the GitHub issue body is empty.
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.