I know this question is 8 months old and you probably used a different solution, but I ran into the same problem this week and wanted to answer this for anyone else who comes along later.
According to Facebook's webhook documentation (which the Workplace docs point to), Facebook first sends a verification request in the form of a challenge integer, which you need to catch and return. Only after you've passed verification does the webhook actually subscribe and work.
I checked with Zapier support and they don't support these types of requests.
My solution was to write my own script that I point Facebook's webhook to, pass the verification challenge, and then intercept the payload, grab the information I needed out of it, and pass that on to Zapier with my own cURL POST.
I used PHP and this got me past Facebook's verification request:
<?php
$challenge = $_REQUEST['hub_challenge'];
$verify_token = $_REQUEST['hub_verify_token'];
if ($verify_token === 'YOUR_VERIFICATION_TOKEN') {
echo $challenge;
}
?>
For passing the payload on to Zapier, it depends on what you need to pass and what you are trying to do. I recommend checking out Zapier's Webhook docs.