A couple of members of the Zapier Community team (myself and
Here are some ways you can take your Asana to the next level by using Zapier :)
1) Add tasks to projects/sections dynamically
We’ve had members ask us in the past if there’s a way to add tasks to specific projects/sections based on something that comes through the trigger step. I remember one example where the trigger was Typeform, and depending which option was selected in one of the form fields, they wanted to create the tasks dynamically in the appropriate area.
There are a few ways to accomplish this:
Option 1: Using 2+ Zaps
When using multiple Zaps with Filters, you decide which conditions you want to set, and each Zap has a different outcome. In the example above, one of the could be for when nick@zapier.com is an attendee, to add a task to Project A. The other could be for when danvers@zapier.com is an attendee, and then gets added to Project B.
These Zaps are completely separate from each other, so if you need to make changes before the Asana step (Actions A and B above) you would have to add them to each Zap. And if you wanted to add tasks to Project C when jesse@zapier.com is an attendee, that would become Zap #3.
Option 2: Using 1 Zap with Paths
This is similar to the 2-Zap option, except each of the Zaps instead become Paths. Each Path has rules that you set, much like the Filter conditions. So you would do essentially the same thing as with the first option except everything is contained within a single Zap. You can add Paths as you need to, and anything that you need to add before that Asana step (within the Path) can be added just a single time.
For example, let’s say you wanted to use a Formatter step to extract data from the calendar event description. In the 2-Zap setup, that step would be added to each individual Zap. With the Paths, you add it once and it runs before the Paths step.
Option 3: Using 1 Zap with a Lookup Table
This option is a little trickier, but luckily we have a few articles that go into detail about how to use lookup tables.
With Formatter by Zapier
Using Google Sheets
If you need help applying the information in those articles, to Asana specifically, please let us know and we can help out :)
2) Create tasks quickly and easily
Asana has a great Chrome extension that allows you to quickly add tasks, and in some cases it might be the preferred choice. With the Zapier Chrome extension you can perform multiple actions, across different apps. You can add a task in multiple projects/sections at the same time, then send notifications to people, or create a row in a tracking spreadsheet, etc.
We also capture the URL of the page you’re on, as well as who’s logged in. You could use that to assign tasks to that person, for example.
Using the Chrome Extension
For general information about how to use the Zapier Chrome extension, you can check out our help docs, and search Community for articles.
In the Zap
Here is the setup in the Zap. I’ve added two input fields, with each one corresponding to a different project in Asana.
In the Chrome Extension
The Chrome extension displays the form, with those same two fields. I would write in the field that relates to the project in which I’d like to create that task.
Paths
Using Paths is the most straightforward way to decide which project to add tasks into.
One Path for “Webinar June 22”
Only continue if “Webinar June 22” exists, meaning is there something entered in that field.
Another Path for Podcast Aug 9
Only continue if “Podcast Aug 9” exists, meaning is there something entered in that field.
Each Path Adds Tasks to the Respective Asana Project
You can see here how the Asana actions differ between the 2 paths.
3) Make a weekly email digest of tasks completed
Asana
This part is straightforward. You choose the Workspace and/or Project for which you want to track completed tasks.
Digest
Add a title for your digest, then decide what one entry looks like. The formatting will depend on what your delivery method is. In my case, I’m sending it via Slack so I used formatting that would work there. Choose how frequently you want to release the digest, then which day of the week and the time. I’m going for every Friday at 4pm.
Delivery Method (Slack in This Example)
I’m choosing to send myself a direct message in Slack, and the Message Text will be populated with the Current Digest field from the previous step.
What It Looks Like in Slack
I completed 3 tasks, they all got added to the digest and when it released, I received it in Slack.
4) Receive "task due soon" reminders
There are a few ways to tackle this one, and each has its pros and cons.
Option 1: Use a Delay Step
This method uses 2 tasks each time it runs.
The Zap Setup
Trigger: Asana — Task Created
Action: Delay by Zapier — Delay Until (the due date minus X number of days - more info about modifying dates)
Action: App of Choice — Send Reminder
Pros and Cons
PROS
- It’s in a single Zap
- It’s easy to understand the setup
CONS
- If the task due date changes, this will be inaccurate
- Delay has a limit of 30 days, to ensure that it works
Option 2: Use Google Calendar
This method uses 2 tasks each time it runs.
Zap #1 Setup
Trigger: Asana — Task Created
Action: Google Calendar — Create Event
Zap #2 Setup
Trigger: Google Calendar — Event Start (choose how long before the event to trigger)
Action: App of Choice — Send Reminder
Pros and Cons
PROS
- You can create events farther in the future than Delay by Zapier
- You can manually change an event if the due date changes
CONS
- It uses 2 different Zaps, so it’s not as self-contained
- It requires adding another app (calendar) into the mix
Option 3: Use Asana’s Rules and Custom Fields + Webhooks by Zapier /advanced]
This method uses 3 tasks each time it runs.
NOTE: The Asana integration does not support custom fields in the Update Task action, so in order to do it we have to use Webhooks by Zapier to access the Asana API.
The Asana Setup
Custom Fields: Create a drop-down custom field that looks something like this:
Rules: Create a rule like this for each of the custom fields you add:
I’m using “tomorrow” for when the task due date is one day away. That makes it easier when setting up the Zap, since the field tells me when the task is due and I can use the field itself in my reminder (see below).
Asana Rule Setup
Trigger: Today → Field: Today
Trigger: 1 day before → Field: Tomorrow
Trigger: 3 days before → Field: 3 Days from Now
The Zap Setup
Trigger: Asana — Updated Task in Project
Filter: Only continue if...the field contains one of the statuses
Action: App of Choice — Send Reminder
Action: Asana — Update Task (change status back to “none”)
Trigger: Asana
This one is pretty straightforward:
Filter: Only continue if…
Choose the custom field you created and add one condition for each status you created in Asana.
Action: Slack
I’m using Slack for demo purposes but use whatever you’d like :)
NOTE: You can see why I advised to use words like “tomorrow”, “today”, etc. That way you can map the field directly into your reminder instead of worrying about Paths, filters, lookup tables, etc.
Action: Asana — Update Task
Here we have to change the Due Reminder field because if we didn’t then the next time the task was updated, the Zap would see that the field contains (the leftover) Tomorrow, Today or 3 Days from Now.
As I mentioned at the top of this section, we’ll have to use the Asana API and Webhooks by Zapier. Luckily, we have a fantastic breakdown of how to do that:
It’s quite advanced but if you’re up for the challenge, my colleague, Jared, has explained it very well Also, I cover the Asana API a bit down below in the next section.
Pros and Cons
PROS
- It’s in a single Zap
- If the due date changes in Asana, this will reflect that
CONS
- It requires the use of Rules and custom fields in Asana, AND Webhooks by Zapier so it’s quite a bit more complex
- The Update Task step re-triggers the Zap (but no tasks will be used), which means it can make the task history more cluttered
5) Retrieve info using Asana's API
I’ll refer you again to the excellent article by my colleague, about how to access the Asana API and get your personal access token:
This will come into play in the first action.
1. Trigger: Zapier Chrome Extension
How you set this up can vary, based on what you’re trying to do with the Asana API. It could literally be a button you push in order to retrieve data, or you could add some fields that you then add into your Zap’s actions.
2. Action: Webhooks by Zapier (and Asana API)
In this example I’m going to check a specific project to return the list of tasks that have NOT been completed AND are in my Webinar June 22 project.
You can copy what I’ve done below, to see if you’re able to retrieve incomplete tasks from your project. Make sure that everything is entered correctly.
URL: https://app.asana.com/api/1.0/tasks
Query String Params: completed_since
and project
.
Headers:
Authorization: Bearer
followed by your access token.
Content-Type: application/json
There’s a LOT more you could do with the Asana API, which you can see here in their API docs.
3. Action: Zapier Chrome Extension
In this step we map the output of our Webhooks step into the message. You can use whatever you’d like as the title.
Here you can see that the tasks in the Done section did not show up in my search results, because they are marked as complete.
Wrapping Up
Ok, that was quite a journey! Hopefully this has helped you come up with some ideas of how you can do more with Asana by adding Zapier into the mix. We’d love to hear what you come up with!