> ## Documentation Index
> Fetch the complete documentation index at: https://docs.automate.ax/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Automate.ax automations are TypeScript programs.
> Use Bun for installation and command examples.
> Use Automate.ax for the product name and automate.ax for the package, CLI, and domain.
> Treat documented public APIs as current; do not invent transitional or deprecated names.

# On Asana resource event

> Run an automation for every compact event propagated through an Asana resource.

`asana.onResourceEvent` is the broad Asana webhook trigger. Prefer a semantic trigger when the automation handles one known change.

```ts automations/watch-asana-resource.automation.ts theme={null}
import { automation } from "automate.ax"
import { asana } from "automate.ax/asana"

export default automation("Audit Asana project activity", () => {
  const event = asana.onResourceEvent({ resourceId: "project-gid" })
  // Route the Asana event by action and resource type.
})
```

Provide `resourceId`. Optional static `account` defaults to the project binding. The platform creates one authenticated Asana webhook for the selected account and resource and shares it across compatible triggers.

Returns a compact normalized event with camelCase fields: `action`, `change`, `createdAt`, `parent`, `resource`, `resourceSubtype`, `resourceType`, `user`, and `watchedResourceId`. Nested provider resource references use `id`, `name`, and `type`.
