As you’ve probably seen in the API docs, the only event types sent are task, project, and story.
A subtask is a task. When a subtask is changed, Asana sends a “task changed” event for that subtask. So you shouldn’t have an issue detecting a change in that subtask.
List View Projects:
A section in a List View project is actually a task. When you change that section, you get a “task changed” event for that section/task.
Board View Projects:
A section in a Board View project is a separate distinct “section” data element. At present, when you change a section in a Board View project, no event is generated or sent.
Also, two notes:
What I said above about a section in List View project being a task is true as of today. However, at some future point, we’ve been told that Asana is likely to modify the API such that List View sections show up as the same distinct “section” data element as they do in Board View projects.
Webhooks tend to be a bit “noisy” in that you can expect to potentially receive the same event multiple times, either within one webhook transmission or in several transmissions which occur in succession. So your app has to expect that and handle it appropriately.