Step 1: Set Up your Webhook
- Navigate to your app by going to Developer > Developer Console in the navigation bar and clicking on your app. If you don’t have an app yet, follow our to quickly set one up.
- Once you’re in your app, click Webhooks and then the Add a Webhook button.
Select the type of webhook you would like to configure by clicking the corresponding tile and then selecting Next in the bottom-right. If you’ve selected the Streams webhook, you will also need to select which stream you want the webhook to send messages from. More information about Streams can be found in our .
Enter your Webhook URL and click Send Test Message.
If the webhook URL received a successful response, then you’re all set up! You can click Finish and Add.
If the test failed, then please debug by reviewing the response body that we received from your webhook by clicking View Logs in the left side bar of your app’s details page.
Another way you can test your webhook is by triggering the action the webhook is supposed to push notifications for. For example, if you set up the Entities webhook, you can further test your webhook by creating new entities or updating existing ones (See our guide). The webhook should fire off events to the URL you configured in step 5.
Apps Linked to Multiple Yext Accounts
Events for all accounts linked to your app will be sent to the webhook endpoints you configure. For example, if your app has 10 customers linked to it, and you subscribe to the Entities webhook, you will receive webhook events for all 10 customers at the same webhook URL. To distinguish between which webhook payload is associated with which Yext account, the webhook payload includes an app-specific account ID in the
meta object that matches the value returned during the customer OAuth process.
Handling Failed Requests
When developing with webhooks, keep in mind that we reattempt failed requests as follows:
- If a webhook request fails, we will automatically resend the request in 5 minutes.
- If that request fails, we periodically resend it, with an exponential backoff, over a 24-hour period until we receive a successful response.
- If we do not receive a successful response within 24 hours–or after about 8 attempts have been made–we will no longer retry the request.