How to Sync Status in Asana
This article describes how to synchronize status between Asana and other systems.
Status in Asana: Tasks have binary completion status (completed/incomplete), while projects use status types (on_track, at_risk, off_track, etc.). Priority is not a standard Asana field but is typically handled as a custom field.
Task status synchronization
Outgoing sync (Asana → Remote system)
To send task status from Asana to the remote system:
replica.status = entity.status
Incoming sync (Remote system → Asana)
To receive task status from the remote system and update Asana tasks:
// Map remote status to Asana completion
entity.setStatus(replica.status.name == "Done" ? "completed" : "incomplete")
Project status synchronization
Outgoing sync (Asana → Remote system)
To send project status from Asana to the remote system:
replica.status = entity.status
Incoming sync (Remote system → Asana)
To receive project status from the remote system and update Asana projects:
// Map remote status to Asana project status
def statusMap = [
"Done": "complete",
"In Progress": "on_track",
"Blocked": "off_track"
]
entity.status = nodeHelper.getStatus(statusMap[replica.status.name])
More information
Have more questions? Ask the community