Reference · Tools

Asana Trigger

Starts workflow when Asana events occur on a watched resource (task or project)

Webhook trigger Productivity v1

The Asana Trigger node subscribes to a specific Asana task or project and starts your workflow whenever that resource changes. You can use it to, for example, automatically notify a Slack channel the moment a task is marked complete. It handles the Asana webhook handshake and signature verification without any extra setup on your end.

Node type
Webhook trigger
Parameters
2
Outputs
Output
Credentials
Asana API

Asana Trigger

Trigger workflows on Asana resource changes

Overview

The Asana Trigger node listens for webhook events from Asana. It subscribes to changes on a specific resource (task or project) within an Asana workspace. When a change occurs (such as a task being created, updated, completed, or deleted), Asana sends a POST request containing an array of event objects. Each event describes the resource that changed, the type of change, and the user who made it. This trigger handles the Asana webhook handshake (X-Hook-Secret) and optional HMAC-SHA256 signature verification.

Category: Productivity
Tool Name: asana_trigger
Version: 1

Appearance: Icon: si-asana | Color: #f06a6a

Node Type

Trigger — webhook (receives incoming HTTP callbacks)

Input / Output

DirectionPort(s)
InputNone (trigger node)
OutputOutput

Credentials

This tool requires Asana API credentials. See the Credentials Guide for setup instructions.

Parameters

ParameterTypeRequiredDefaultDescription
ResourcestringYesThe resource GID to subscribe to. The resource can be a task, project, or other Asana object. Supports expressions.
WorkspacestringNoThe workspace GID the resource is registered under. Only required if you want to allow overriding existing webhooks. Supports expressions.

Output Data

Asana batches changes and delivers them as an array of event objects. Each event becomes its own output item, so one delivery can start the workflow with several items.

Each item carries the event as Asana sent it:

  • action — what happened, e.g. changed, added, removed, deleted, undeleted
  • resource — the object that changed (gid, resource_type, resource_subtype)
  • parent — the containing object, e.g. the project a task belongs to (gid, resource_type)
  • user — who made the change (gid, resource_type)
  • created_at — when Asana recorded the change
  • change — the specific field change, when Asana reports one (field, action, new_value)

Three fields are added to every item:

  • _trigger — always asana_webhook
  • _timestamp — ISO 8601 timestamp of when the request arrived
  • _webhookEvent — the event’s action

Reference the payload downstream by expression, e.g. {{ $json.resource.gid }} or {{ $json.change.field }}.

Usage Examples

  • Start a workflow when an Asana task is completed
  • Trigger automation when a project task is updated
  • Listen for new tasks added to an Asana project
  • React to Asana task assignments in real time

Example Configuration

Watch a single project for changes:

{
  "type": "asana_trigger",
  "parameters": {
    "resource": "1201234567890123",
    "workspace": "1109876543210987"
  }
}

Watch one specific task:

{
  "type": "asana_trigger",
  "parameters": {
    "resource": "1204567890123456",
    "workspace": ""
  }
}

Trigger Behavior

  • Activation: When the workflow is activated, a webhook endpoint is registered with the service.
  • Deactivation: The webhook is automatically unregistered when the workflow is deactivated.
  • Payload: The incoming webhook payload is parsed and output as workflow items.
  • Verification: Supports signature verification where applicable.

Tips

Configure a resource GID (task or project ID) to subscribe to. Optionally select a workspace to enable webhook override detection. Asana will send events whenever the subscribed resource or its children change.

  • Finding a GID. Open the task or project in Asana — the long number in the browser URL is its GID.
  • Set Workspace when you can. Without it, the node cannot look up subscriptions that already exist for this URL, so reactivating a workflow can leave a duplicate webhook behind in Asana.
  • Subscriptions cascade. Subscribing to a project delivers events for the tasks inside it, not just the project record itself.
  • Filter downstream. A single subscription delivers every kind of change on the resource. Use a Filter or Switch node on {{ $json.action }} or {{ $json.change.field }} to react only to what you care about — for example completed field changes.
  • Asana confirms a new subscription with a handshake request before any events flow, and signs every later delivery. Unsigned requests are rejected.

Frequently asked questions

Where do I find the GID to put in the resource field?

Open the task or project in Asana in your browser. The long number in the URL is the GID — copy and paste it directly into the node. There is no separate lookup step required.

If I subscribe to a project, do I get events for the tasks inside it too?

Yes. Subscribing to a project delivers events for changes to tasks within that project, not just changes to the project record itself. This means one subscription can cover your entire project's activity, which you can then filter downstream.

Why should I bother setting the Workspace field?

Without a workspace selected, the node cannot look up whether a webhook subscription already exists for its URL in Asana. If you deactivate and reactivate the workflow, you may end up with duplicate webhooks registered in Asana. Setting the workspace lets the node detect and reuse an existing subscription instead of creating a new one.

My trigger fires for every kind of change — how do I react only to task completions?

Add a Filter or Switch node immediately after the trigger and check the value of fields like `{{ $json.action }}` or `{{ $json.change.field }}`. For task completions specifically, filter for `{{ $json.change.field }}` equal to `completed`. A single Asana subscription delivers all event types, so the filtering happens inside your workflow rather than at the subscription level.

What credentials does this node require, and does it verify that Asana events are genuine?

You connect using an Asana API credential (asanaApi). The node automatically handles the X-Hook-Secret handshake that Asana requires when registering a new webhook, and it verifies the HMAC-SHA256 signature on every subsequent delivery. Requests that fail signature verification are rejected before your workflow runs.

Build with the Asana Trigger node

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Asana API credentials first.

Open BusyBot

Last updated . Spotted something wrong? Tell us.