How to Sync Status in Asana

    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