Asana to ClickUp Zaps: Duplicate tasks & API Errors
Hi, there!
My client uses Asana while I use ClickUp, so I’ve created an Asana to ClickUp integration (screenshots attached) where:
Zap 1: each time an Asana task in a specific project is created, it creates one in a specific location in ClickUp using the same fields from Asana - this is working perfectly.
Zap 2: each time an Asana task in a specific project is updated, it’ll search ClickUp for that same task (see how below) and if it finds it, it’ll update it, while if it doesn’t, it’ll create a new task using the same method as Zap 1.
In detail, each time a task is created via Zap 1, it assigns the task’s permalink to a ClickUp “URL” custom field, so that’s what Zap 2 looks for to consider whether the task exists or not in ClickUp: a string match between these two fields.
Not that relevant: both Zaps have a “only continue if” filter where it checks if the assignee is me (there’s an internal Assignee GID string in Asana).
With the setup described above I’m facing a lot of duplicate tasks in ClickUp (and having to merge them manually) and a lot of errors because of too many API calls. I think:
If a task is both created and then updated within a timeframe, it could be activating both zaps too quick, and then generating two or more duplicate tasks.
I think what counts as a task being “updated” is any field being updated, so when my client updates many fields of a task at once, each field update is counting as a task update, so I’m ending with a lot of Zap 2 runs and API calls.
Are there any workarounds or fixes to this scenario? I’ve tried adding a delay step to Zap 2 but it doesn’t matter and I think it could actually be making it all worse since it’s queuing up multiple runs.
Page 1 / 1
Hi @tatazildo
For the duplicates, check your ZapRuns history details to see the DATA IN/OUT for each step to help you trace and troubleshoot: https://zapier.com/app/history/
You may need to add a Delay (After Queue) step to the Zap to help prevent duplicates as that will achieve sequential processing of Zap Runs: https://zapier.com/apps/delay/help
Hi @tatazildo
For the duplicates, check your ZapRuns history details to see the DATA IN/OUT for each step to help you trace and troubleshoot: https://zapier.com/app/history/
You may need to add a Delay (After Queue) step to the Zap to help prevent duplicates as that will achieve sequential processing of Zap Runs: https://zapier.com/apps/delay/help
Hi @Troy Tessalone and thanks for the help.
I have added a Delay After Queue step to Zap 2, created a new Test Task and waited for it to process. I got 2 tasks in ClickUp (one being a duplicate) and three Zap runs:
Expected Zap 1 run: new task was created in specific project in Asana and then new task was sent to ClickUp matching the task in Asana. This run generated ClickUp task ID 86a42gazk. Perfect.
Zap 2 ran as soon as Zap 1 ran, at the same time each, two times, each time with a 2 task usage (I’m not sure why):
First run chose path “Task doesn’t exist in ClickUp”, which expects a ”false” bolean result based on a search step (see attachment below of updated Zap 2 with steps expanded). This is also incorrect, as the task did exist in ClickUp since it was created by Zap 1. This means it generated a new task in ClickUp with ID 86a42gcyf (the duplicate).
Second run chose path “Task exists in ClickUp”, which is correct, but found task ID 86a42gcyf (the duplicate from the first Zap 2 run) and not ID 86a42gcyf from Zap 1 run.
Zap 2 shouldn’t have run in first place, since the task was only created, but never updated/modified since creation. Even if it should’ve ran, it should’ve found ClickUp task ID 86a42gazk, resulting in “true” for the search step and thus not ran at all.
Also, I noticed that the trigger of each of the Zap 2 runs is a change in the “section” field, which I guess is automatic:
Can I filter my Zap to not track these kinds of changes anymore? They seem to happen as soon as a new task is created.
@tatazildo
Try removing the Delay from Zap 1.
@tatazildo
Try removing the Delay from Zap 1.
@Troy Tessalone thanks but I already did. I figured this delay was unnecessary as I was reviewing my Zaps after posting.
@tatazildo
When an Asana Task is created there can be sub processes in Asana that run to update the Asana Task, thus causing the Asana Task to be considered “updated”.
If a new Asana Task is also triggering the updated Asana Task, then you can not need Zap 1.
@tatazildo
When an Asana Task is created there can be sub processes in Asana that run to update the Asana Task, thus causing the Asana Task to be considered “updated”.
If a new Asana Task is also triggering the updated Asana Task, then you can not need Zap 1.
@Troy Tessalone you’re right. I’ve disabled Zap 1 and also adding a Delay like you suggested is apparently working well for controlling multiple changes to an Asana Task by queuing every individual change.
Now the only part that’s bothering me is that two subprocesses run each time a task is created, the adding of two (not one like I posted, I’ve double-checked it) sections with different GIDs to a newly created task. This results in two Zap 2 runs every time, each one using 2 Zapier tasks off my limit.
@tatazildo
Sounds like you’ll need to add a condition to a Filter step to filter for only the desired data field value to limit it to only 1 Zap Run.
@tatazildo
Sounds like you’ll need to add a condition to a Filter step to filter for only the desired data field value to limit it to only 1 Zap Run.
@Troy Tessalone yes. I’ve tried this but I can’t target this “section” field using the Zap Editor UI. Also, just to leave it here: Asana apparently works with “due_at” and “due_on”, and also both are updated when the Asana task’s due date field is changed, also resulting in one separate Zap run for each event. This event I was able to filter by using “Change Field” to “due_at” using ““Does not match”.
@tatazildo
Check the Zap Runs history details to see the DATA IN/OUT for each step to help you determine which data points can be used in the filter to isolate the desired changes: https://zapier.com/app/history/
NOTE: The same issues may happen for future updates on an existing Asana Task.
@tatazildo
Check the Zap Runs history details to see the DATA IN/OUT for each step to help you determine which data points can be used in the filter to isolate the desired changes: https://zapier.com/app/history/
NOTE: The same issues may happen for future updates on an existing Asana Task.
@Troy Tessalone I did. Like I said, I can filter “due_on”/”due_at” because they’re a change “field”, so you can target them using the “Change Field” field using the Zap edit UI:
@tatazildo
For an Asana Task change it appears the “action” is always present. (e.g. added, changed)
But the change “key” label (e.g. field vs section vs etc) appears to vary depending on the “action”.
You’ll have to use a different Zap step example to get a change that is related to a section in order to use that data point in the left side of a filter condition.
For an Asana Task change it appears the “action” is always present. (e.g. added, changed)
But the change “key” label (e.g. field vs section vs etc) appears to vary depending on the “action”.
You’ll have to use a different Zap step example to get a change that is related to a section in order to use that data point in the left side of a filter condition.
@Troy Tessalone all your affirmations are correct, but I think Zapier only offers the alternative to target the label “field”, and not any other such as “section”.
@tatazildo
For live Zap Runs, the data returned from Asana changes based on the “update” made to the Asana Task.
Seems like the returned Zap trigger examples only show examples with field changes.
It will likely involve a bit of a workaround.
You can use a Zap step: Formatter > Text > Default Value
This will always return a variable that you can then map into the Filter step condition.
In the Formatter step, you can use named variables to set a variable for “section”.