Intermediate~15 min setupCommunication & Project ManagementVerified April 2026
Slack logo
Asana logo

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-time

Use case type

notification

Real-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.

/mo
505005K50K

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

Skip the setup

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.

Asana account with access to the projects you want to monitor — read permission on tasks is the minimum required scope
Slack workspace where you have permission to send direct messages to other users
Microsoft 365 account with Power Automate access — the Asana connector requires a Microsoft 365 Business Basic plan or higher
Asana user profiles must have email addresses that match Slack workspace emails — this is how the DM routing works
Power Automate environment with Asana and Slack connectors enabled — check with your M365 admin if connectors are locked in your tenant's Data Loss Prevention policy

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Assignee Emailassignee.email
Task Namename
Prioritycustom_fields.priority
Permalink URLpermalink_url
4 optional fields▸ show
Project Nameprojects[0].name
Due Datedue_on
Assignee Nameassignee.name
Notes / Descriptionnotes

Step-by-Step Setup

1

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.

  1. 1Click 'My flows' in the left sidebar
  2. 2Click '+ New flow' in the top toolbar
  3. 3Select 'Automated cloud flow'
  4. 4Name the flow 'Asana Task Assignment to Slack'
  5. 5Click 'Skip' on the Choose your flow's trigger dialog
What you should see: You land on the flow canvas with an empty trigger block labeled 'Choose an operation' at the top.
Common mistake — Do not choose 'Instant cloud flow' — that requires a manual button press and will not fire automatically when tasks are assigned.
2

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.

  1. 1Click the empty trigger block on the canvas
  2. 2Type 'Asana' in the search bar in the right panel
  3. 3Click the Asana connector icon
  4. 4Select 'When a task is assigned to a user' from the trigger list
What you should see: The trigger block expands and shows configuration fields for Workspace and Project.
Common mistake — Power Automate's Asana connector polls every 3 minutes by default — there is no true webhook option here. You cannot reduce this below 3 minutes without a premium plan.
Power Automate
+
click +
search apps
Slack
SL
Slack
Add the Asana trigger
Slack
SL
module added
3

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.

  1. 1Click 'Sign in' inside the Asana trigger block
  2. 2Complete Asana OAuth login in the popup window
  3. 3Grant Power Automate the requested permissions
  4. 4Confirm the connection shows your Asana email with a green checkmark
What you should see: The Asana trigger block now shows your connected account and reveals the Workspace and Project dropdown fields.
Common mistake — Use a service account or a shared team Asana login if multiple people will maintain this flow — personal OAuth tokens break the flow when that person leaves or changes their password.
Power Automate settings
Connection
Choose a connection…Add
click Add
Slack
Log in to authorize
Authorize Power Automate
popup window
Connected
green checkmark
4

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.

  1. 1Open the Workspace dropdown and select your organization
  2. 2Open the Project dropdown and choose a specific project, or leave blank for all projects
  3. 3Leave the Assignee field empty to capture all assignments
  4. 4Collapse the trigger block by clicking its title bar
What you should see: The trigger block shows your selected workspace and project (or 'Any') in collapsed view.
5

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.

  1. 1Click '+ New step' below the trigger block
  2. 2Search 'Condition' in the operation search bar
  3. 3Select 'Condition' under the Control category
  4. 4Click inside the left value box and pick 'Priority' from dynamic content
  5. 5Set operator to 'is not equal to' and leave right value empty
What you should see: A Condition block appears with two branches: 'If yes' (priority is set) and 'If no' (no priority set — standard assignment).
Common mistake — Asana returns priority as 'none', 'low', 'medium', or 'high' as string values — not integers. Do not use numeric comparisons here or the condition will always fail.
Slack
SL
trigger
filter
Priority
matches criteria?
yes — passes through
no — skipped
Asana
AS
notified
6

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.

  1. 1Click 'Add an action' inside the If yes branch
  2. 2Search 'Slack' in the operation panel
  3. 3Select the Slack connector
  4. 4Choose 'Send a direct message'
  5. 5Click 'Sign in' and complete OAuth for your Slack workspace
What you should see: The Slack action block shows your connected workspace name and reveals the 'Username or email' and 'Message Text' fields.
Common mistake — Power Automate's Slack connector sends DMs using the authenticated user's identity, not a bot name. If you want a custom bot name like 'TaskBot', use the Slack 'Post message' action with an incoming webhook URL instead.
7

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.

  1. 1Click inside 'Username or email' and select 'Assignee Email' from dynamic content
  2. 2Click inside 'Message Text'
  3. 3Type 'Priority update on your task ' then insert the 'Task Name' token
  4. 4Type ': now marked as ' then insert the 'Priority' token
  5. 5Add Due Date and Permalink tokens at the end of the message
What you should see: The Message Text field shows a mix of static text and orange dynamic content tokens for Task Name, Priority, Due Date, and Permalink.
Common mistake — If Assignee Email is blank in Asana, the Slack DM will fail silently — add a null-check step before the Slack action if your team sometimes leaves assignee email unpopulated in Asana profiles.
Slack fields
text
user
channel
ts
thread_ts
available as variables:
1.props.text
1.props.user
1.props.channel
1.props.ts
1.props.thread_ts
8

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]'.

  1. 1Click 'Add an action' inside the If no branch
  2. 2Search 'Slack' and select 'Send a direct message'
  3. 3Confirm the existing Slack connection is selected automatically
  4. 4Map 'Assignee Email' to the Username or email field
  5. 5Build the assignment message with Task Name, Project Name, Due Date, and Permalink tokens
What you should see: Both branches of the Condition block now contain a populated Slack 'Send a direct message' action with dynamic content tokens visible.
9

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.

  1. 1Click 'Save' in the top toolbar
  2. 2Click 'Test' in the upper right
  3. 3Select 'Manually' then click 'Test'
  4. 4Assign a task in Asana to trigger the poll
  5. 5Return to Power Automate and wait up to 3 minutes for the run to appear
What you should see: The test panel shows a green checkmark on every step, and the Asana assignee receives a Slack DM within 3 minutes.
Common mistake — The test run will show 'Waiting for trigger' for up to 3 minutes — this is not a hang or error. Power Automate must complete its polling cycle before it detects the Asana event.
Power Automate
▶ Test flow
executed
Slack
Asana
Asana
🔔 notification
received
10

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.

  1. 1Click the back arrow from the canvas to the flow detail page
  2. 2Confirm the flow status toggle shows 'On'
  3. 3Click 'Run history' tab on the flow detail page
  4. 4Review the first 3-5 completed runs to confirm green status on all steps
What you should see: Run history shows completed runs with green checkmarks. Each run entry is expandable and shows the Asana task data and Slack delivery confirmation.
Common mistake — Power Automate disables flows automatically after 90 days of no successful runs. Set a calendar reminder to assign a test task in Asana every 60 days if activity is low, or enable the 'Flow health notifications' email under Settings.

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 null

Going 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

VerdictWhy n8n for this workflow

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.

Cost

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.

Tradeoffs

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 tasksAdd 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 flowBuild 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 channelsReplace 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

Was this guide helpful?
Slack + Asana overviewPower Automate profile →