<!-- BusyBot node reference — https://busybot.net/tools/asana-trigger/ -->

> Node: Asana Trigger (`asana_trigger`) · Webhook trigger · v1
> Category: Productivity · Credentials: Asana API (`asanaApi`)
> Updated: 2026-08-16

# 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

| Direction | Port(s) |
|-----------|--------|
| Input | None (trigger node) |
| Output | `Output` |

## Credentials

This tool requires **Asana API** credentials.
See the [Credentials Guide](https://busybot.net/credentials/asana-api/) for setup instructions.

### Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Resource | `string` | Yes | — | The resource GID to subscribe to. The resource can be a task, project, or other Asana object. Supports expressions. |
| Workspace | `string` | No | — | The 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:

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

Watch one specific task:

```json
{
  "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.