Skip to content

Asana

Two-way sync Asana tasks, sections, assignees, and custom fields with Airtable, Notion, Google Sheets, and more. Each Asana project syncs as a table.

This guide covers how to connect Whalesync to Asana, how your projects and tasks appear in Whalesync, and which fields sync.

In Whalesync terms, an Asana workspace is the base you pick, each project in it is a table, and each task in the project is a record. Three more tables, Users, Tags, and Projects, list what the task fields can point at; they are read only.

Whalesync connects by signing in to Asana, or with a personal access token you paste in. See Authorize Asana for both.

  1. In Whalesync, choose Asana and sign in, or paste a token.
  2. Pick the workspace to sync.
  3. Pick the projects to sync. Archived projects are not listed.

Every project the connected account can see in Asana is available as a table. Its columns are the task fields Asana gives every task plus the custom fields added to that project, so two projects with different custom fields have different columns.

A task that belongs to several projects appears in each of those tables as the same task. Subtasks appear only when they are also in the project; a subtask that lives only under its parent task is not synced.

Asana fieldStatusNotes
Name✅ SupportedRequired when creating a task from another app.
Description✅ SupportedSynced as rich text. See Descriptions.
Description (plain text)➡️ Supported (1-Way)Read only. The same description without formatting.
Completed✅ SupportedA checkbox. Completed at is read only.
Due date✅ SupportedA date, with a time when the task has one.
Start date✅ SupportedAsana requires a due date before a start date, and both must be the same kind: both days, or both with a time.
Assignee✅ SupportedA link to the Users table.
Section✅ SupportedA select whose options are the project's sections. A section has to exist in Asana before a task can be moved into it.
Parent task✅ SupportedA link to another task in the same project. Set it to make a task a subtask; clear it to make it top level.
Tags✅ SupportedLinks to the Tags table. Tags have to exist in Asana first.
Followers✅ SupportedLinks to the Users table. Asana adds the connected account as a follower of every task Whalesync creates, and that follower syncs back to the other app.
Type✅ SupportedOne of default_task, milestone, or approval. Set when a task is created; it cannot be changed afterwards.
Approval status✅ SupportedOnly approval tasks keep it. Approving a task also completes it.
Attachments➡️ Supported (1-Way)Read only. Files hosted by Asana are synced as files; links to Dropbox, Google Drive, Box, or Vimeo are left out.
Projects➡️ Supported (1-Way)Read only. Links to the Projects table for every project the task is in.
Dependencies➡️ Supported (1-Way)Read only. Links to the tasks this one depends on.
Subtask count, Link, Created at, Modified at➡️ Supported (1-Way)Read only.

Custom fields are an Asana paid feature. Each custom field added to a project is a column of that project's table.

Custom field typeStatusNotes
Text✅ SupportedUp to 1,024 characters.
Number✅ SupportedIncludes currency and other number formats. Asana rounds to the field's precision.
Single-select✅ SupportedSynced by option name. A task holding an option that was later disabled still reads; writing a disabled option is refused by Asana.
Multi-select✅ SupportedSynced by option names.
Date✅ SupportedA date, with a time when the field has one.
People✅ SupportedLinks to the Users table.
Formula, ID, Reference➡️ Supported (1-Way)Read only, as the text Asana shows.

A task's description is synced as rich text. Asana only accepts a small set of formatting: bold, italic, underline, strikethrough, code, links, bulleted and numbered lists, block quotes, preformatted text, two heading levels, and dividers. When a description comes from another app, Whalesync keeps the text and the formatting Asana has an equivalent for and drops the rest. Paragraphs become line breaks, tables become lines of text, and images become links to the image. A description longer than 30,000 characters after that is reported as a sync issue for the task rather than sent.

Whalesync registers a webhook on each project you map, so a change to a task in Asana reaches your other apps within seconds instead of waiting for the next poll. Asana removes a webhook after a day of failed deliveries; Whalesync puts it back on its next schema refresh. Turning the sync off removes the webhooks.

  • The Asana connector is in beta. If something does not work as described here, let us know.
  • Only projects the connected account can see are listed. A private project it is not a member of is not. My Tasks lists are not projects and are not synced.
  • A task removed from a project is treated as deleted in that project's table. The task still exists in Asana; it just no longer belongs to the table.
  • Whalesync does not create sections or tags. A section name that does not exist in the project is reported as a sync issue for that task. A tag has to be one of the records in the Tags table.
  • Milestones cannot have a start date, and approval status is ignored on tasks that are not approvals. Asana enforces both.
  • Comments and stories are not synced.
  • Whalesync makes at most 150 requests a minute to Asana, the limit Asana sets for free workspaces, whatever plan your workspace is on. A large first sync takes a while.