Skip to main content

Overview

With the Asana destination, Hightouch can upsert or update tasks, or update projects. For the task object, the destination supports:
  • Upsert: Upsert mode creates new tasks and updates existing tasks based on an external ID.
  • Update: Update mode updates existing or newly created tasks based on the Asana GID. The update mode can also update tasks created with Hightouch using the external ID.
For the projects object, the destination supports:
  • Update: Update mode updates existing projects based on the Asana GID.

Setup

Connect Asana via OAuth by granting permission to the Hightouch Asana Connect app.

Tasks

Upsert

Hightouch can upsert tasks based on an external ID in Asana. This means it will update the task in Asana if it was previously created by Hightouch, otherwise it will create a new task. The external ID is unique to Hightouch thus in this mode it will only update tasks created via Hightouch.

Update

Hightouch can update tasks based on the Asana GID. Hightouch can also update tasks based on an external ID if the task was created using Hightouch.
If upserting or updating via an external ID, Hightouch can only update tasks created with such an external ID through Hightouch, due to the way Asana external IDs are limited on a per application basis.

Projects

Hightouch can update projects on the Asana GID. Unfortunately, Hightouch can’t upsert projects or update based on external ID because Asana doesn’t yet support external metadata for objects other than projects.

Array properties

Array properties can be passed to Asana by returning the data as either a comma delimited string or an array in your SQL query. Examples of array properties are:
  • Tasks: projects, followers, tags
  • Projects: followers
In the SQL query, a column taskFollowerscontaining a string such as '1199948419683571,1185085322202311' can be mapped to the followers field of tasks in Asana. Using the example of followers, keep in mind that every type Hightouch runs a sync, it will check the followers assigned to the task in Asana, and:
  • Add all followers that are present in taskFollowers and not present in Asana
  • Remove all followers that are present in Asana and not present in taskFollowers.

Subtasks

A subtask is an Asana task object that is associated with a parent task object. To create a subtask, select the column from your source that references parent tasks, then map it to the parent field in the Mappings section. In your source, you can identify the parent task either by the external ID or the Asana GID. The external ID or the Asana GID should be a string. Not passing any value in for the parent field will remove an existing parent-subtask association - the task will simply be considered a normal task instead of a subtask.

Custom fields

Custom fields are complex in Asana because they can be associated with both tasks and projects, and they can be restricted to only tasks in certain projects. To start, Hightouch supports custom fields that are available on a workspace level, which can be done by adding the field to the workspace’s field library in Asana. Secondly, custom fields may cause errors if the field is not enabled in the project you are inserting the task into.

Delete behavior

For the task object, you can choose what Hightouch’s behavior is when rows leave your query results. The default is doing nothing. In Upsert mode, you have the following options: In Update mode, you have the following options:

Tips and troubleshooting

To see the exact API requests and responses from each sync run, use the live debugger. To get notified by Slack, PagerDuty, SMS, or email when a sync fails, set up sync alerts. If you run into an issue this page doesn’t cover, .
Last modified on January 24, 2022