

How to Send Asana Task Notifications to Slack with Power Automate
When a task is assigned or its priority changes in Asana, Power Automate sends a direct Slack message to the assigned team member instantly.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
Best for
Microsoft 365 teams already using Power Automate who want Slack alerts when Asana tasks land in their queue or change priority.
Not ideal for
Teams outside the Microsoft ecosystem — Zapier or Make will connect faster with less friction and no licensing overhead.
Sync type
real-timeUse case type
notificationReal-World Example
A 20-person product team uses this to ping developers in Slack the moment a bug ticket in Asana is assigned or bumped to High priority. Before this flow, devs checked Asana every few hours and critical bugs sat unacknowledged for 3-4 hours on average. Now the assigned dev gets a direct Slack message within 3 minutes of assignment.
What Will This Cost?
Drag the slider to your expected monthly volume.
Each platform counts differently — Zapier: 1 task per trigger. Make: 1 operation per module per record. n8n: 1 execution per run.





Prices shown for annual billing. Based on published pricing as of April 2026.
Estimated ROI
1000
min saved/mo
$583
labor value/mo
Free
no platform cost
Based on ~2 min manual effort per operation at $35/hr fully loaded labor cost.
Implementation
Import this workflow directly into Power Automate
Copy the pre-built Power Automate blueprint and paste it straight into Power Automate. All modules, filters, and field mappings are already configured — you just need to connect your accounts.
Before You Start
Make sure you have everything ready.
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Assignee Email | assignee.email | |
| Task Name | name | |
| Priority | custom_fields.priority | |
| Permalink URL | permalink_url | |
4 optional fields▸ show
| Project Name | projects[0].name |
| Due Date | due_on |
| Assignee Name | assignee.name |
| Notes / Description | notes |
Step-by-Step Setup
make.powerautomate.com > My flows > + New flow > Automated cloud flow
Create a new Automated cloud flow
Go to make.powerautomate.com and sign in with your Microsoft account. In the left sidebar, click 'My flows', then click '+ New flow' at the top. Select 'Automated cloud flow' from the dropdown — this is the event-triggered option, not scheduled. Give the flow a name like 'Asana Task Assignment to Slack', then click 'Skip' on the trigger selector screen because you'll search for it manually in the next step.
- 1Click 'My flows' in the left sidebar
- 2Click '+ New flow' in the top toolbar
- 3Select 'Automated cloud flow'
- 4Name the flow 'Asana Task Assignment to Slack'
- 5Click 'Skip' on the Choose your flow's trigger dialog
Flow canvas > Choose an operation > Search 'Asana' > When a task is assigned to a user
Add the Asana trigger
Click the empty trigger block on the canvas. The 'Choose an operation' panel opens on the right side. Type 'Asana' in the search bar. Power Automate will show the Asana connector. Click it, then scroll through the trigger list. Select 'When a task is assigned to a user' — this is the primary trigger for this workflow. If you also want priority-change detection, you'll add a separate condition action later.
- 1Click the empty trigger block on the canvas
- 2Type 'Asana' in the search bar in the right panel
- 3Click the Asana connector icon
- 4Select 'When a task is assigned to a user' from the trigger list
Trigger block > Sign in to Asana > OAuth popup
Connect your Asana account
After selecting the trigger, Power Automate prompts you to sign in to Asana. Click 'Sign in' and a popup opens for OAuth authentication. Log in with the Asana account that has access to the projects you want to monitor. Once authenticated, you'll see the connection listed with a green checkmark and your Asana email address. This connection is saved globally and will appear in 'Connections' in the left sidebar for reuse.
- 1Click 'Sign in' inside the Asana trigger block
- 2Complete Asana OAuth login in the popup window
- 3Grant Power Automate the requested permissions
- 4Confirm the connection shows your Asana email with a green checkmark
Asana trigger block > Workspace dropdown > Project dropdown
Configure the Asana trigger scope
With the connection established, set the Workspace dropdown to your Asana organization. Then set the Project dropdown to the specific project you want to monitor, or leave it blank to monitor all projects in the workspace. The 'Assignee' field can be left blank — this flow will fire for any assignee and you'll route notifications individually using Slack DMs in a later step. Click the title bar of the trigger to collapse it.
- 1Open the Workspace dropdown and select your organization
- 2Open the Project dropdown and choose a specific project, or leave blank for all projects
- 3Leave the Assignee field empty to capture all assignments
- 4Collapse the trigger block by clicking its title bar
Flow canvas > + New step > Control > Condition
Add a condition to check priority changes
Click '+ New step' below the trigger. Search for 'Condition' and select the built-in Control action called 'Condition'. This lets you branch logic: one path for new task assignments, another for priority changes. In the left value box, click inside and select 'Priority' from the Asana dynamic content panel that appears. Set the operator to 'is not equal to' and leave the right value blank — this catches tasks where priority has been explicitly set. You'll add Slack actions inside both the Yes and No branches.
- 1Click '+ New step' below the trigger block
- 2Search 'Condition' in the operation search bar
- 3Select 'Condition' under the Control category
- 4Click inside the left value box and pick 'Priority' from dynamic content
- 5Set operator to 'is not equal to' and leave right value empty
Condition block > If yes branch > Add an action > Slack > Send a direct message
Connect your Slack account
Inside the 'If yes' branch of the Condition, click 'Add an action'. Search for 'Slack' and select the Slack connector. Choose the action 'Send a direct message'. A 'Sign in to Slack' prompt appears — click it and complete the OAuth flow for your Slack workspace. Make sure you authorize as a user or bot that has permission to send DMs. The connection saves automatically and appears in your Connections list.
- 1Click 'Add an action' inside the If yes branch
- 2Search 'Slack' in the operation panel
- 3Select the Slack connector
- 4Choose 'Send a direct message'
- 5Click 'Sign in' and complete OAuth for your Slack workspace
If yes branch > Send a direct message > Username or email + Message Text
Map Asana fields to the priority-change Slack message
In the 'Send a direct message' action inside the If yes branch, fill in the Username or email field with the Asana dynamic content value 'Assignee Email'. In the Message Text field, build a message using dynamic content. Click inside the field, then insert tokens from the dynamic content panel. A clear message looks like: 'Priority update on your task [Task Name]: now marked as [Priority]. Due: [Due Date]. View it here: [Permalink]'. Keep the message under 500 characters for clean Slack display.
- 1Click inside 'Username or email' and select 'Assignee Email' from dynamic content
- 2Click inside 'Message Text'
- 3Type 'Priority update on your task ' then insert the 'Task Name' token
- 4Type ': now marked as ' then insert the 'Priority' token
- 5Add Due Date and Permalink tokens at the end of the message
Condition block > If no branch > Add an action > Slack > Send a direct message
Add a Slack action in the 'If no' branch for new assignments
Click 'Add an action' inside the 'If no' branch of the Condition block. Search for Slack and add another 'Send a direct message' action — Power Automate will reuse your existing Slack connection automatically. This message fires when a task is assigned but has no priority set yet. Map Assignee Email to the recipient field. Write a message like: 'You've been assigned a new task: [Task Name]. Project: [Project Name]. Due: [Due Date]. Open in Asana: [Permalink]'.
- 1Click 'Add an action' inside the If no branch
- 2Search 'Slack' and select 'Send a direct message'
- 3Confirm the existing Slack connection is selected automatically
- 4Map 'Assignee Email' to the Username or email field
- 5Build the assignment message with Task Name, Project Name, Due Date, and Permalink tokens
Flow toolbar > Save > Test > Manually > Test
Test the flow with a live Asana task
Click 'Save' in the top toolbar, then click 'Test' in the upper right corner. Select 'Manually' and then 'Test'. Go to Asana in another tab and assign an existing task to a team member (or yourself for testing). Return to Power Automate — within 3 minutes the flow run should appear in the test panel. Click the run to expand it and inspect each step's input/output. Confirm the Slack DM was delivered by checking the recipient's Slack DMs.
- 1Click 'Save' in the top toolbar
- 2Click 'Test' in the upper right
- 3Select 'Manually' then click 'Test'
- 4Assign a task in Asana to trigger the poll
- 5Return to Power Automate and wait up to 3 minutes for the run to appear
My flows > [Flow name] > Run history
Turn the flow on and monitor run history
After a successful test, click the back arrow to return to the flow detail page. The flow status shows as 'On' automatically after saving. To verify it's active, check that the toggle next to the flow name in 'My flows' shows blue/On. For the first 24 hours, check 'Run history' on the flow detail page to confirm runs are completing without errors. Each run log shows the trigger payload from Asana and the Slack response.
- 1Click the back arrow from the canvas to the flow detail page
- 2Confirm the flow status toggle shows 'On'
- 3Click 'Run history' tab on the flow detail page
- 4Review the first 3-5 completed runs to confirm green status on all steps
Paste this expression into a 'Compose' action placed between the Asana trigger and the Condition block. It reformats the raw Asana due_date string (YYYY-MM-DD) into a readable format (e.g. 'Feb 15, 2024') and handles null due dates gracefully. Reference the Compose output using the token 'Outputs' in your Slack message text instead of the raw Due Date token.
JavaScript — Code Step// Add a Compose action after the Asana trigger▸ Show code
// Add a Compose action after the Asana trigger // Name it: Format Due Date // Paste this into the Inputs field of the Compose action:
... expand to see full code
// Add a Compose action after the Asana trigger
// Name it: Format Due Date
// Paste this into the Inputs field of the Compose action:
if(
empty(triggerBody()?['due_on']),
'No due date set',
formatDateTime(
triggerBody()?['due_on'],
'MMM dd, yyyy'
)
)
// Then in your Slack message text, reference it as:
// Due: @{outputs('Format_Due_Date')}
// instead of the raw dynamic content Due Date token
// This prevents '2024-02-15' appearing in Slack messages
// and avoids errors when due_on is nullGoing live
Production Checklist
Before you turn this on for real, confirm each item.
Troubleshooting
Common errors and how to fix them.
Frequently Asked Questions
Common questions about this workflow.
Analysis
Use Power Automate for this if your organization is already on Microsoft 365 and your IT team has locked down third-party automation tools via tenant policy. The Asana and Slack connectors are pre-built and require no API key management — authentication is pure OAuth handled through the Connections panel. It also makes sense if you need this flow to coexist with other Microsoft-native automations (Teams alerts, SharePoint triggers, Outlook rules) in a single platform. The one scenario where you'd pick something else immediately: if your team has no Microsoft 365 dependency, the licensing overhead and polling delay make Power Automate a poor fit compared to Zapier or Make.
Power Automate's pricing for this flow is straightforward but not cheap. Each poll of the Asana connector counts as one flow run. At a 3-minute polling interval, that's 480 runs per day, roughly 14,400 runs per month — before any tasks are even assigned. Each task assignment that triggers a Slack DM adds 2-3 additional action runs (the Condition plus the Slack step). Microsoft includes 6,000 flow runs per month in the Microsoft 365 Business Basic plan. A team with 50 Asana task assignments per month will consume roughly 15,200 runs total, pushing just over the included limit. The Power Automate per-user plan adds $15/user/month for unlimited runs. Zapier handles the same workflow for $19.99/month (Starter) with webhook-based triggers that don't burn run counts on polling — significantly cheaper for high-assignment-volume teams.
Here is where each competitor has a specific edge: Zapier's Asana trigger uses webhooks rather than polling, so notifications land in Slack within 10-30 seconds instead of up to 3 minutes — a real difference for urgent task assignments. Make gives you a visual branch router with cleaner multi-condition logic than Power Automate's nested Condition blocks, and its Asana module exposes more task fields including custom field values that Power Automate's connector sometimes misses. n8n lets you self-host the entire workflow, which matters if your Asana data is sensitive and you don't want it passing through Microsoft's cloud. Pipedream offers the most direct API control — you can hit Asana's REST API directly and parse the webhook payload with full JavaScript, bypassing connector limitations entirely. Power Automate is still the right call if your M365 admin controls connector access and has pre-approved Asana and Slack — the political friction of adding a new tool often outweighs the technical advantages of alternatives.
Three things you'll hit after setup: First, Asana's priority field is a custom field in most workspaces, not a native field — the Power Automate connector may not surface it in the dynamic content panel. You'll need to use a 'Get a task' action and parse the custom_fields array manually using a Parse JSON action to extract priority. Second, the Asana connector resets its polling cursor whenever you edit and save the flow, which causes it to re-trigger on the last 10-20 assigned tasks immediately after saving. Always test edits on a duplicate flow first. Third, if your Slack workspace uses Single Sign-On (SSO), the OAuth token for the Slack connection can expire on a 90-day rotation enforced by your SSO provider — the flow will silently stop delivering DMs. Check run history monthly or set up a Slack API token refresh reminder.
Ideas for what to build next
- →Post to a shared Slack channel for high-priority tasks — Add a second Slack action in the 'If yes' (priority set) branch that posts to a public channel like #eng-alerts in addition to the DM. This gives team leads visibility into high-priority assignments without checking Asana.
- →Add a due-date reminder flow — Build a companion Scheduled cloud flow that runs daily at 9am, queries Asana for tasks due in the next 24 hours, and sends each assignee a Slack reminder. This pairs with the assignment notification to close the loop on follow-through.
- →Route notifications by project to dedicated Slack channels — Replace the single Condition with a Switch action that maps each Asana project name to a specific Slack channel — so #mobile-team gets mobile project assignments and #backend-team gets their own. Eliminates notification noise across teams.
Related guides
How to Share Notion Meeting Notes to Slack with Pipedream
~15 min setup
How to Share Notion Meeting Notes to Slack with Power Automate
~15 min setup
How to Share Notion Meeting Notes to Slack with n8n
~20 min setup
How to Send Notion Meeting Notes to Slack with Zapier
~8 min setup
How to Share Notion Meeting Notes to Slack with Make
~12 min setup
How to Create Notion Tasks from Slack with Pipedream
~15 min setup