Sync Asana project tasks with a mirrored Google Sheets tab
Go to WorkflowDescription
Quick Overview
This workflow runs hourly to sync tasks from an Asana project into a Google Sheets tab, keeping a row-per-task mirror with task metadata and a present flag that marks tasks removed from Asana without deleting them from the sheet.
How it works
Runs every hour on a schedule.
Fetches all tasks from a specified Asana project via the Asana API (including assignee, due date, completion status, section, permalink, and modified time) and paginates through results.
Flattens the Asana task list into one Google Sheets-ready row per task and stamps each row with a sync timestamp.
Reads the existing rows from the target Google Sheets tab.
Compares Asana tasks to sheet rows by task GID to prepare upserts for current tasks and “soft-delete” updates that set present to No for tasks no longer in Asana.
Writes changes back to Google Sheets by upserting live tasks and updating removed tasks, then produces a one-line run summary with created/updated/removed counts.
Setup
Add an Asana credential (personal access token) and set the Asana project GID used to fetch tasks.
Add a Google Sheets OAuth2 credential and set the target spreadsheet ID and tab name.
Ensure the sheet tab has a header row with these columns: gid, name, assignee, section, due_on, completed, permalink, modified_at, synced_at, present.
Adjust the schedule interval if you want the sync to run more or less frequently.