Issues when creating a webhook on "larger resources" that maybe aren't that large

So, I’m having an issue when trying to establish a webhook. The error is:

"error": "invalid_filters_for_larger_scoped_webhooks",
"message": "Webhooks for larger scoped resources must have at least one filter and all filters must be in our whitelist.",

At first it made sense - we’re trying to have a webhook whenever someone creates/updates a task in our environment. But, then as a test, I updated the request body to include the Resource ID for a small portfolio… and I get the same error. Even when I update the action to be “added,” it still mentions needing fields even tho fields aren’t an acceptable parameter for “added” actions.

So naturally, my two questions are:

  1. Why am I getting this error? How small does the portfolio need to be?
  2. Will I be able to create webhooks for all tasks updates/creations within our environment?

Here is the body I’m sending in the webhook creation request:

{ 
    "data": {
        "filters": [
            {
                "action": "changed",
                "resource_type": "task",
                "fields": ["due_on", "name", "notes", "liked"]
            }
        ],
        "resource": "[redacted]",
        "target": "https://[redacted]/api/receiveWebhooks"
    }
}

This example is being created while following along with a tutorial on Vimeo (Tutorial: Webhooks on Vimeo) that seems to work for the creator.

Thanks!

Hi @Christine_Hill2,

A few things to note:

  1. When Asana uses the word “larger scoped”, it doesn’t mean “larger” in the sense you’re thinking of larger-vs-smaller. It’s referring to the scope of the resource in the Asana hierarchy; i.e. Workspaces are the largest scoped resource, then Teams, then Projects, then Tasks. Portfolios are kind of an odd beast - they fall around the same scope as Teams since like Teams, they contain Projects.

  2. As explained in the API docs but perhaps not too clearly, webhooks only propagate up to their parent scope but not all the way up. This means that you can’t set a webhook on a workspace and ask for task events. You can only get task events for a project-level webhook. For your use case of

    we’re trying to have a webhook whenever someone creates/updates a task in our environment.

    you’ll need to create a webhook on every project in the workspace; each of those webhooks will send you the events on the tasks in that project.