# Webhooks not triggering my callback - Ideas?

**URL:** <https://devforum.zoom.us/t/webhooks-not-triggering-my-callback-ideas/5826>\
**Category:** API and Webhooks\
**Created:** [September 9, 2019, 6:06pm UTC](https://devforum.zoom.us/t/webhooks-not-triggering-my-callback-ideas/5826 "2019-09-09T18:06:26Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![huetherb](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/huetherb/32/1758_2.png) [@huetherb](https://devforum.zoom.us/u/huetherb)\
**Post date:** [September 9, 2019, 6:06pm UTC](https://devforum.zoom.us/t/webhooks-not-triggering-my-callback-ideas/5826/1 "2019-09-09T18:06:26Z")

</div>

Hi,

I have just set up webhooks as described here:

> **[Webhooks - Tools & Resources - Documentation](https://marketplace.zoom.us/docs/guides/tools-resources/webhooks)**
>
> Webhooks
> 
> 
> 
> Webhooks are automated notifications sent to an app when a subscribed event occurs. In the Zoom Marketplace, you can add Event Subscriptions...

I have a JWT app installed (and have tested that it works for restAPI calls. Now I am trying to get webhooks working. So for my app I have 6 events to trigger webhooks, including Webinar Deleted. The callback is [https://www.mysite.com/zoom/webhook](https://www.mysite.com/zoom/webhook)

I then have a route that handles this url and goes to a webhook handler. In the Zoom webhook log for my app I don’t see Webinar Delted even though I have deleted a webinar for testing the webhook.

Any ideas?

thanks!  
Brian

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [September 9, 2019, 6:56pm UTC](https://devforum.zoom.us/t/webhooks-not-triggering-my-callback-ideas/5826/2 "2019-09-09T18:56:56Z")

</div>

Hey @huetherb,

Few things to double check:

1. Your route needs to accept POST requests.  
Example in node.js / express

```auto
app.post('/zoom/webhook', function (req, res) {

})

```

2. Make sure your url paths match your route

![14%20PM](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/2X/e/ed63ffd4c279f3f6ffe2dab8910ab04b12b67066.png)

If that still doesn’t work, then please send me the route code and a screenshot of your event subscription settings.

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![huetherb](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/huetherb/32/1758_2.png) [@huetherb](https://devforum.zoom.us/u/huetherb)\
**Post date:** [September 9, 2019, 8:38pm UTC](https://devforum.zoom.us/t/webhooks-not-triggering-my-callback-ideas/5826/3 "2019-09-09T20:38:48Z")

</div>

Hi! Here is what I have in my laravel 5.3 web.php:

Route::post(  
‘zoom/webhook’,  
‘ZoomWebhookController@handle’  
);

I have something similar for Mailchimp. Mailchimp is working. With Zoom I have my Laravel controller for this route as ZoomWebhookController with the handle method.

namespace App\Http\Controllers;

use Illuminate\Http\Request;  
use Illuminate\Http\Response;  
use Illuminate\Support\Facades\Log;

class ZoomWebhookController extends Controller  
{  
/\*\*  
\* Handle a zoom webhook.  
\*  
\*  
\*/  
public function handle(Request $request)  
{  
// Handle The Event  
return Response(‘My Zoom Webhook Handled’, 200);  
}  
}

Also laravel requires entries in the verifycsrftoken middleware. I have this:

namespace App\Http\Middleware;

use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;

class VerifyCsrfToken extends BaseVerifier  
{  
/\*\*  
\* The URIs that should be excluded from CSRF verification.  
\*  
\*  
\*/

```
protected $except = [
    'stripe/*',
    'zoom/*',
    'mailchimp/*',

];

```

}

Basically I am doing everything analogous to how I am with Mailchimp. So a bit of a mystery what is happening.

thanks,  
Brian

---

<div class="post-metadata">

**Author:** ![huetherb](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/huetherb/32/1758_2.png) [@huetherb](https://devforum.zoom.us/u/huetherb)\
**Post date:** [September 9, 2019, 8:42pm UTC](https://devforum.zoom.us/t/webhooks-not-triggering-my-callback-ideas/5826/4 "2019-09-09T20:42:35Z")

</div>

![02%20PM](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/2X/1/13c621708ab6cf4d182c66ec2dd7e901472d9858.png)

This is the screenshot. I am not using the token for verification (not while testing anyway) so maybe that is the issue?

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [September 9, 2019, 9:16pm UTC](https://devforum.zoom.us/t/webhooks-not-triggering-my-callback-ideas/5826/5 "2019-09-09T21:16:07Z")

</div>

Hey @huetherb,

The verification token should not be the issue.

Can you try this simple code to see if your route is getting called?

```php
Route::post('zoom/webhook', function()
{
    error_log('webhook received');
    return 'webhook received';
});

```

Also are you testing this on your production domain of [https://www.guitar-dreams.com/zoom/webhook](https://www.guitar-dreams.com/zoom/webhook) ?

If you could send me the link to your code on github with instructions on how to reproduce the issue I can help debug further.

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![huetherb](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/huetherb/32/1758_2.png) [@huetherb](https://devforum.zoom.us/u/huetherb)\
**Post date:** [September 10, 2019, 6:52am UTC](https://devforum.zoom.us/t/webhooks-not-triggering-my-callback-ideas/5826/6 "2019-09-10T06:52:36Z")

</div>

> [@tommy](#):
>
> Route::post(‘zoom/webhook’, function() { error\_log(‘webhook received’); return ‘webhook received’; });

Hi, I tried above but still nothing. I think maybe something is just off with my app. I noticed this:

JWT  
Intend to publish: No  
Account Level

Maybe my app is in some state where it doesn’t trigger webhooks?

---

<div class="post-metadata">

**Author:** ![huetherb](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/huetherb/32/1758_2.png) [@huetherb](https://devforum.zoom.us/u/huetherb)\
**Post date:** [September 10, 2019, 9:39am UTC](https://devforum.zoom.us/t/webhooks-not-triggering-my-callback-ideas/5826/7 "2019-09-10T09:39:45Z")

</div>

It is working now. I added a webhook only app.

thanks,  
Brian

---

<div class="post-metadata">

**Author:** ![huetherb](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/huetherb/32/1758_2.png) [@huetherb](https://devforum.zoom.us/u/huetherb)\
**Post date:** [September 10, 2019, 9:47am UTC](https://devforum.zoom.us/t/webhooks-not-triggering-my-callback-ideas/5826/8 "2019-09-10T09:47:46Z")

</div>

So here is what I notice. In the payload there is no webinar description. The reason I am using the webhook is so that I can populate a webinars table on my site.

Now I could use restAPI to get the description, but if I do that from the webhook endpoint on my site that was setup with a webhook only app, will that somehow prevent me from getting data via the restAPI?

Also, I really wish Zoom had a way to categorize and bundle webinars. Maybe add a metadata object or something that lets users have more options for syncing with their own databases. For instance on my site I will have webinars organized like

This would be for an overall series (which will have several webinars)

WebianrSeriesID WebinarSeriesName WebinarCategoryID

And individual webinars would be like

WebinarID WebinarName WebinarSeriesID

See what I mean? Would be great if Zoom supported that…

Are you a Zoom developer by the way?

regards,  
Brian

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [September 10, 2019, 4:00pm UTC](https://devforum.zoom.us/t/webhooks-not-triggering-my-callback-ideas/5826/9 "2019-09-10T16:00:41Z")

</div>

> [@huetherb](#):
>
> Maybe my app is in some state where it doesn’t trigger webhooks?

Your JWT app settings are fine, make sure the JWT app is “Activated”.

 ![16%20AM](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/2X/e/e00f58eb20ed5b55fd6bb6d069aab27d0a4413fe.png)

> [@huetherb](#):
>
> It is working now. I added a webhook only app.

Great!

> [@huetherb](#):
>
> Now I could use restAPI to get the description, but if I do that from the webhook endpoint on my site that was setup with a webhook only app, will that somehow prevent me from getting data via the restAPI?

In order to call the Zoom APIs, you need to use a OAuth or JWT app. This is separate and will not effect your Webhook Only App. Since you already have a JWT app setup, here is a link back on how to call the API’s with a JWT token,

> [@How to use RestAPI to add panelist to my webinar?](https://devforum.zoom.us/t/how-to-use-restapi-to-add-panelist-to-my-webinar/5797/2):
>
> Hey @huetherb, thanks for reaching out and using Zoom! For your use case, I would suggest using the [JWT App Type](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-jwt-app) as it does not require OAuth. By creating a JWT App Type, you will get a client id and client secret which you can use to create a JWT token to call the [Zoom API’s](https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinarpanelistcreate). You can also generate a JWT token on the App Dashboard to easily test it out, Then in your request header, { "Authorization": "Bearer { JWT TOKEN HERE }" } Let me know if this helps! Thanks, Tommy

> [@huetherb](#):
>
> Also, I really wish Zoom had a way to categorize and bundle webinars.

You can accomplish this via occurrences, and then limiting the registration on each one. Although I see that there could be more customization here and will add this as a feature request.

Check out the `registration_type` and `approval_type` settings [when creating a webinar.](https://marketplace.zoom.us/docs/api-reference/zoom-api/webinars/webinarcreate)

 ![10%20AM](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/2X/0/06dea4b40f9454d0b1481d33420868f0944cc499.png) ![14%20AM](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/2X/7/7ec775cf2d028a14aa245fcc9cbd52c42d682684.png)

> [@huetherb](#):
>
> Are you a Zoom developer by the way?

I am a Zoom Developer, but I do not work on the Webinars/Webinar API’s.

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![huetherb](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/huetherb/32/1758_2.png) [@huetherb](https://devforum.zoom.us/u/huetherb)\
**Post date:** [September 10, 2019, 6:14pm UTC](https://devforum.zoom.us/t/webhooks-not-triggering-my-callback-ideas/5826/10 "2019-09-10T18:14:26Z")

</div>

Hi, my JWT app settings seem normal, but I just couldn’t get the webhook triggering with it. I only have webhooks working with the webhook app. My JWT app is working elsewhere, for instance I have a Stripe webhook and in that webhook I call Zoom restAPI via my JWT app.

So in the end, just not sure why my JWT app doesn’t work to trigger webhooks on my site…

---

<div class="post-metadata">

**Author:** ![huetherb](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/huetherb/32/1758_2.png) [@huetherb](https://devforum.zoom.us/u/huetherb)\
**Post date:** [September 10, 2019, 6:57pm UTC](https://devforum.zoom.us/t/webhooks-not-triggering-my-callback-ideas/5826/11 "2019-09-10T18:57:12Z")

</div>

Hi, the problem with using occurrences in that way is that a webinar has same name across occurrences. So that doesn’t let me accomplish this hierarchy:

Webinar Series A  
Webinar Topic X  
Webinar Topic Y

Or more ideal would be

Category 1  
Webinar Series A  
Webinar Topic X  
Webinar Topic Y

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [September 10, 2019, 8:03pm UTC](https://devforum.zoom.us/t/webhooks-not-triggering-my-callback-ideas/5826/12 "2019-09-10T20:03:34Z")

</div>

I will try to reproduce the JWT event subscriptions not firing.

Webinar hierarchy would be a cool feature to have! I will pass it on to the team!

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![dev6](https://avatars.discourse-cdn.com/v4/letter/d/c67d28/32.png) [@dev6](https://devforum.zoom.us/u/dev6)\
**Post date:** [April 19, 2020, 8:00pm UTC](https://devforum.zoom.us/t/webhooks-not-triggering-my-callback-ideas/5826/13 "2020-04-19T20:00:23Z")

</div>

I have the same issue with JWT webhook doesn’t trigger.  
My setting is similar too.  
@tommy Was you able to replicate this issue?

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [April 21, 2020, 12:04am UTC](https://devforum.zoom.us/t/webhooks-not-triggering-my-callback-ideas/5826/14 "2020-04-21T00:04:53Z")

</div>

Hey @dev6,

Were your webhooks working before?

Please share more details about your issue and steps to reproduce.

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![DeveloperBot](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/developerbot/32/12632_2.png) [@DeveloperBot](https://devforum.zoom.us/u/DeveloperBot)\
**Post date:** [August 21, 2020, 8:50pm UTC](https://devforum.zoom.us/t/webhooks-not-triggering-my-callback-ideas/5826/15 "2020-08-21T20:50:34Z")

</div>


