

How to Send Asana Task Notifications to Slack with Make
Automatically sends a Slack DM or channel message when an Asana task is assigned to a team member or when a task's priority changes.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
Best for
Teams using Asana for task management who need instant Slack alerts when work is assigned or reprioritized, without checking Asana constantly.
Not ideal for
Teams who want two-way sync between Asana and Slack threads — use a dedicated Slack-Asana integration for that.
Sync type
real-timeUse case type
notificationReal-World Example
A 12-person product team at a SaaS company uses this to alert engineers in a private #eng-tasks Slack channel the moment a task is assigned or bumped to High priority in Asana. Before this automation, engineers checked Asana every few hours and routinely missed urgent assignments until standup the next morning. Now the notification fires within 90 seconds of the Asana update.
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 Make
Copy the pre-built Make blueprint and paste it straight into Make. 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 | ||
| Task GID | resource.gid | |
| Task Name | name | |
| Assignee Name | assignee.name | |
| Task URL | permalink_url | |
| Changed Field Name | change.field | |
6 optional fields▸ show
| Assignee Email | assignee.email |
| Due Date | due_on |
| Project Name | projects[].name |
| Priority (Custom Field) | custom_fields[].display_value |
| Previous Assignee | change.old_value.name |
| Task Description (Notes) | notes |
Step-by-Step Setup
make.com > Scenarios > Create a new scenario
Create a new Make scenario
Log into Make at make.com and click the blue 'Create a new scenario' button on the Scenarios dashboard. You'll land on the visual canvas with a single empty module circle in the center. This is where you'll attach the Asana trigger. Don't click the clock icon — this workflow uses webhooks, not scheduled polling, so ignore the scheduling panel for now.
- 1Log in at make.com
- 2Click 'Create a new scenario' (blue button, top right of Scenarios page)
- 3Click the large circle with a '+' icon in the canvas center
Canvas > + > Search 'Asana' > Watch Events
Add the Asana 'Watch Events' trigger
Type 'Asana' in the app search panel and select it. From the list of triggers, choose 'Watch Events.' This trigger uses Asana's webhook system, which means Make registers a webhook URL with Asana directly — no polling delay. You'll be prompted to connect your Asana account if you haven't already.
- 1Type 'Asana' in the search field
- 2Click the Asana app icon
- 3Select 'Watch Events' from the trigger list
- 4Click 'Add' next to Connection to link your Asana account
Watch Events module > Resource Type > Task > Events > changed
Configure the Asana trigger scope
In the Watch Events configuration panel, set Resource Type to 'Task.' For Resource, choose the specific Asana project you want to monitor — or choose a workspace to catch all projects. Set the Events field to include 'changed' (covers both assignment and priority changes). Leave 'Stories' unchecked; those generate excessive noise. Click OK.
- 1Set 'Resource Type' to 'Task'
- 2Select your target project from the 'Resource' dropdown
- 3Check 'changed' under Events
- 4Uncheck 'Stories' if it appears
- 5Click 'OK'
Canvas > + after Asana module > Tools > Router
Add a Router to split assignment vs. priority changes
Click the '+' icon after the Asana trigger module to add the next module. Search for 'Router' and select it — it appears under Make's built-in tools, not any app. The Router splits the flow into two branches: one for assignment events, one for priority changes. You'll configure each branch's filter condition in the next two steps.
- 1Click the '+' icon to the right of the Asana trigger module
- 2Type 'Router' in the search field
- 3Click 'Router' under the Flow Control section
- 4Confirm two output paths appear from the Router module
Router > Branch 1 > Filter (wrench icon) > Condition
Configure the Assignment branch filter
Click the wrench icon on the first Router branch line to open its filter settings. Name this filter 'New Assignment.' Set the condition to: Field = `{{1.change.field}}` (from the Asana trigger payload), Operator = 'Equal to', Value = `assignee`. This branch fires only when the task's assignee field changes. Click OK.
- 1Click the small wrench icon on the first branch line
- 2Enter 'New Assignment' as the filter label
- 3Set Field to `{{1.change.field}}`
- 4Set Operator to 'Equal to (case insensitive)'
- 5Set Value to `assignee`
- 6Click OK
Router > Branch 2 > Filter (wrench icon) > Condition
Configure the Priority Change branch filter
Click the wrench icon on the second Router branch line. Name this filter 'Priority Changed.' Set condition: Field = `{{1.change.field}}`, Operator = 'Equal to', Value = `custom_fields`. Asana stores priority as a custom field, so this value catches any custom field change. If your workspace uses a specific custom field GID for priority, you can add a second condition filtering on `{{1.change.new_value.gid}}` to narrow it. Click OK.
- 1Click the small wrench icon on the second branch line
- 2Enter 'Priority Changed' as the filter label
- 3Set Field to `{{1.change.field}}`
- 4Set Operator to 'Equal to (case insensitive)'
- 5Set Value to `custom_fields`
- 6Click OK
Router Branch > + > Asana > Get a Task
Add Asana 'Get a Task' module on both branches
After each Router branch, add an Asana 'Get a Task' module. The Watch Events trigger payload contains the task GID but not full task details like the assignee's name or priority label. You need this lookup step to pull the complete task record. Map the Task ID field to `{{1.resource.gid}}` from the trigger. Do this on both branches — the assignment branch and the priority branch.
- 1Click '+' at the end of Branch 1
- 2Search 'Asana' and select 'Get a Task'
- 3Map Task ID to `{{1.resource.gid}}`
- 4Repeat for Branch 2
Branch 1 > + > Slack > Send a Message
Add Slack 'Send a Message' on the Assignment branch
After the 'Get a Task' module on Branch 1, add a Slack 'Send a Message' module. Connect your Slack account. Set Channel to the target Slack channel (e.g., `#eng-tasks`) or use `@{{2.assignee.email}}` to send a DM directly to the assignee. In the Text field, write a message using Make's mapped fields from the Get a Task output — see the field mapping section below for exact field references.
- 1Click '+' after the Branch 1 'Get a Task' module
- 2Search 'Slack' and select 'Send a Message'
- 3Connect your Slack workspace
- 4Set Channel to your target channel or map to assignee's Slack user
- 5Paste your message text with mapped Asana fields
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}channel: {{channel}}
ts: {{ts}}
Branch 2 > + > Slack > Send a Message
Add Slack 'Send a Message' on the Priority branch
After the 'Get a Task' module on Branch 2, add another Slack 'Send a Message' module. Use the same Slack connection. The message here should clearly state that priority changed — not just that a task exists. Reference `{{3.custom_fields[].display_value}}` to pull the new priority label. Use a different message format than Branch 1 so recipients immediately know which type of alert they're seeing.
- 1Click '+' after the Branch 2 'Get a Task' module
- 2Search 'Slack' and select 'Send a Message'
- 3Reuse your existing Slack connection
- 4Set Channel to the same or a different target channel
- 5Write a priority-specific message using `{{3.custom_fields[].display_value}}`
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}Canvas bottom toolbar > Run once > Execution History
Run a test and verify end-to-end
Click 'Run once' in the bottom-left corner of Make's canvas. Then go to Asana and assign a task to a team member. Return to Make within 90 seconds — you should see the execution appear in the Execution History panel at the bottom. Click it to inspect each module's input and output bundles. Confirm the Slack module shows status 'Success' and check your Slack channel for the message.
- 1Click 'Run once' (bottom-left of canvas)
- 2Open Asana in a new tab and assign any task
- 3Return to Make and wait up to 90 seconds
- 4Click the execution entry in the bottom panel
- 5Inspect each module's output bundle
Canvas bottom toolbar > Scheduling toggle
Activate the scenario
Once the test passes, click the toggle switch in the bottom-left of the canvas to turn the scenario ON. The toggle turns blue and the scenario status changes to 'Active.' Make will now process every qualifying Asana event in real time via the registered webhook. Set your scheduling to 'Immediately' — there's no polling interval needed since this runs on webhooks.
- 1Click the gray toggle switch at the bottom-left of the canvas
- 2Confirm the toggle turns blue
- 3Click 'Save' to preserve the active state
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
Use Make for this if your team has more than one condition to route on — specifically, if you need to split assignment alerts from priority change alerts in the same scenario. Make's visual Router module handles this without any code. The router plus two parallel Slack paths is roughly a 15-minute setup, and the webhook-based trigger means you're not waiting on polling intervals. The one case where you'd pick something else: if your team is already on Asana Business or Enterprise and has Asana's native Slack integration enabled — that built-in integration covers simple assignment DMs without needing Make at all.
The cost math is simple. Each scenario run uses 4 operations: the Watch Events trigger, the Router, the Get a Task lookup, and the Slack message. At 250 task assignment or priority change events per month, that's 1,000 operations — exactly at Make's free tier ceiling. If your team processes 500+ task events monthly, you'll need Make's Core plan at $9/month, which gives you 10,000 operations. Zapier's equivalent — with a Zap for assignment and a separate Zap for priority — costs $19.99/month at the Starter tier for the same volume. Make is cheaper here, and the router approach means one scenario instead of two.
Zapier handles the simple assignment notification in about 5 minutes with no router needed — if you only care about new assignments and nothing else, Zapier's 'New Task' trigger is faster to configure than Make's Watch Events setup. n8n gives you more control over the message format through JavaScript function nodes, which matters if you want complex conditional formatting or multiple Slack block sections. Power Automate has a native Asana connector that's tighter for Microsoft 365 shops — if your team uses Teams instead of Slack, Power Automate beats Make here. Pipedream's Asana source fires instantly and lets you write async logic in Node.js, which is better if you're enriching data from a third API before sending to Slack. Make wins on the visual router logic — the branching is intuitive, the filters are fast to configure, and you don't need a developer on the team.
Three things you'll hit after setup. First, Asana's custom_fields array index shifts if someone reorders or adds custom fields to the project — your priority field might move from index [0] to index [2] overnight, and the Slack message will silently send a blank priority. Use the field's GID instead of its array index to avoid this. Second, Make's Asana connection uses OAuth and expires if the authorizing user's Asana session is revoked or if they leave the workspace — the scenario will fail silently with a 401 error until you reconnect. Set up Make's scenario error alert emails to catch this. Third, Asana fires a webhook event for both the assignee change AND a modified_at timestamp update on the same action — you may see duplicate scenario executions within seconds of each other. Tighten your router filter to require that `change.new_value` is not empty to suppress the timestamp-only events.
Ideas for what to build next
- →Add a daily digest instead of per-event alerts — Build a second scenario that runs on a schedule (e.g., 9am daily), queries all tasks assigned to each person using Asana's 'Search Tasks' module, and sends a single Slack summary. This reduces noise for high-volume teams.
- →Route DMs directly to the assignee — Replace the fixed channel with a Slack 'Find User by Email' module that maps the Asana assignee's email to their Slack user ID, then sends a DM. This eliminates channel noise and puts the notification exactly where the assignee will see it.
- →Create an Asana task from a Slack emoji reaction — Build a reverse flow: when someone reacts with a specific emoji (e.g., 📋) to a Slack message, Make creates an Asana task in a designated project using that message text as the task name. This closes the loop without switching apps.
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