Beginner~12 min setupCommunication & Project ManagementVerified April 2026
Slack logo
Asana logo

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

Use case type

notification

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

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

Asana account with 'Edit' access to the project you're monitoring — read-only access prevents webhook registration
Slack account with permission to post in the target channel — you need 'Member' status or higher, not just 'Guest'
Make account with an active plan — the free tier allows 1,000 operations/month, which supports roughly 500 task events before you hit the limit
Asana webhook permissions enabled for your workspace — workspace admins sometimes restrict this under Settings > Security
Slack OAuth scopes: chat:write and users:read.email (needed if routing DMs by assignee email)

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Task GIDresource.gid
Task Namename
Assignee Nameassignee.name
Task URLpermalink_url
Changed Field Namechange.field
6 optional fields▸ show
Assignee Emailassignee.email
Due Datedue_on
Project Nameprojects[].name
Priority (Custom Field)custom_fields[].display_value
Previous Assigneechange.old_value.name
Task Description (Notes)notes

Step-by-Step Setup

1

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.

  1. 1Log in at make.com
  2. 2Click 'Create a new scenario' (blue button, top right of Scenarios page)
  3. 3Click the large circle with a '+' icon in the canvas center
What you should see: The app search panel slides open on the right side of the canvas.
Common mistake — Do not use a template — pre-built Asana templates in Make often include extra modules that conflict with this specific router setup. Start from a blank scenario.
2

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.

  1. 1Type 'Asana' in the search field
  2. 2Click the Asana app icon
  3. 3Select 'Watch Events' from the trigger list
  4. 4Click 'Add' next to Connection to link your Asana account
What you should see: A configuration panel opens asking you to select a Workspace and Resource Type.
Common mistake — Asana's API requires that the connected account has access to the project you're monitoring. If you connect a personal Asana account but the project belongs to a workspace your account can only view, the webhook will register but return empty event payloads.
Make
+
click +
search apps
Slack
SL
Slack
Add the Asana 'Watch Events'…
Slack
SL
module added
3

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.

  1. 1Set 'Resource Type' to 'Task'
  2. 2Select your target project from the 'Resource' dropdown
  3. 3Check 'changed' under Events
  4. 4Uncheck 'Stories' if it appears
  5. 5Click 'OK'
What you should see: The trigger module shows your project name and 'Watch Events' label. A webhook URL has been registered with Asana automatically.
Common mistake — Selecting an entire workspace instead of a specific project will fire this scenario for every task change across all projects — including projects unrelated to your team. This will burn through your Make operations quota fast.
4

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.

  1. 1Click the '+' icon to the right of the Asana trigger module
  2. 2Type 'Router' in the search field
  3. 3Click 'Router' under the Flow Control section
  4. 4Confirm two output paths appear from the Router module
What you should see: The Router module appears on canvas with two empty branch paths extending from it.
5

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.

  1. 1Click the small wrench icon on the first branch line
  2. 2Enter 'New Assignment' as the filter label
  3. 3Set Field to `{{1.change.field}}`
  4. 4Set Operator to 'Equal to (case insensitive)'
  5. 5Set Value to `assignee`
  6. 6Click OK
What you should see: The first branch line now shows the label 'New Assignment' with a filter icon.
Common mistake — The field value from Asana is literally the string `assignee` — lowercase, no quotes needed in the value field. Typing `Assignee` with a capital A will cause the filter to never match.
Slack
SL
trigger
filter
Condition
matches criteria?
yes — passes through
no — skipped
Asana
AS
notified
6

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.

  1. 1Click the small wrench icon on the second branch line
  2. 2Enter 'Priority Changed' as the filter label
  3. 3Set Field to `{{1.change.field}}`
  4. 4Set Operator to 'Equal to (case insensitive)'
  5. 5Set Value to `custom_fields`
  6. 6Click OK
What you should see: The second branch line shows 'Priority Changed' label with a filter icon.
Common mistake — If your Asana workspace uses a native Priority field (available in Business/Enterprise plans), the field value may be `priority` instead of `custom_fields`. Run a test event first and inspect the raw payload in Make's execution log to confirm the exact string before locking in this filter.
7

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.

  1. 1Click '+' at the end of Branch 1
  2. 2Search 'Asana' and select 'Get a Task'
  3. 3Map Task ID to `{{1.resource.gid}}`
  4. 4Repeat for Branch 2
What you should see: Both branches now have an Asana 'Get a Task' module. Each shows the task GID mapped in the Task ID field.
Common mistake — Do not skip this step and try to use the trigger payload directly for the Slack message. The Watch Events payload only contains changed field metadata, not the task name, assignee email, or priority label. Your Slack messages will show blank fields without this lookup.
8

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.

  1. 1Click '+' after the Branch 1 'Get a Task' module
  2. 2Search 'Slack' and select 'Send a Message'
  3. 3Connect your Slack workspace
  4. 4Set Channel to your target channel or map to assignee's Slack user
  5. 5Paste your message text with mapped Asana fields
What you should see: The Slack module shows your channel name and a preview of the message template with mapped variables.
Common mistake — Slack's API matches users by email only if you use the 'Send a Direct Message' action and map to the user's email address. The plain 'Send a Message' action requires a channel ID or name — it won't accept an email address as a channel value.
Message template
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}
message template
🔔 New Record: {{text}} {{user}}
channel: {{channel}}
ts: {{ts}}
#sales
🔔 New Record: Jane Smith
Company: Acme Corp
9

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.

  1. 1Click '+' after the Branch 2 'Get a Task' module
  2. 2Search 'Slack' and select 'Send a Message'
  3. 3Reuse your existing Slack connection
  4. 4Set Channel to the same or a different target channel
  5. 5Write a priority-specific message using `{{3.custom_fields[].display_value}}`
What you should see: Both Slack modules are configured. The canvas shows two parallel paths each ending in a Slack module.
Common mistake — The custom_fields array in Asana's response is indexed. If priority is the third custom field on your project, it's at index `[2]`. Run a test execution and check the bundle output to confirm the correct index before going live — using the wrong index sends a blank priority value.
Message template
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}
10

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.

  1. 1Click 'Run once' (bottom-left of canvas)
  2. 2Open Asana in a new tab and assign any task
  3. 3Return to Make and wait up to 90 seconds
  4. 4Click the execution entry in the bottom panel
  5. 5Inspect each module's output bundle
What you should see: The execution history shows all modules with green checkmarks. Your Slack channel contains the new assignment notification with the correct task name and assignee.
Make
▶ Run once
executed
Slack
Asana
Asana
🔔 notification
received
11

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.

  1. 1Click the gray toggle switch at the bottom-left of the canvas
  2. 2Confirm the toggle turns blue
  3. 3Click 'Save' to preserve the active state
What you should see: The scenario status badge reads 'Active' in green on your Scenarios dashboard.

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 Make for this workflow

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.

Cost

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.

Tradeoffs

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 alertsBuild 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 assigneeReplace 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 reactionBuild 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

Was this guide helpful?
Slack + Asana overviewMake profile →