While I haven’t done it, you should be able to create a webhook filter for
completed = true so you only get webhooks for completed tasks.
As to subtasks, the only way to know if a task is a subtask is that its
parent property would have a value. I’m not sure how you would create a webhook filter for
parent is not null; I guess you could play around with it and see if such a filter is possible, but I’m skeptical. Perhaps others have tried this and can weigh in. My guess is you’ll create a filter for all completed tasks per above, and then when you get a webhook event, you’ll have to check its
parent property to see if it’s a subtask.
Sure. when you get the webhook event, just do a call to retrieve the details for that task and it will include the custom fields and their values.
No, there’s no supported way for an external app to intercede in the Asana UI to block the ability to complete a task.