If a webhook fails, four more attempts are made to deliver the event notification within an hour. If the webhook continues to fail after the fourth try, the webhook will be deactivated, and all Gladly users assigned the API Userrole are notified by email indicating which webhook(s) was deactivated.
Avoid reactivating a webhook without first troubleshooting the cause of the failure using the webhook logs.
Click on the top left corner of the screen.
Click Settings.
Under the App Developer Tools category, click Webhooks. The Webhooks page will show you a list of webhooks you currently have configured.
Look for the webhook with next to it, indicating the webhook was deactivated. Hover over the webhook and click .
Scroll down to the Logs section to find the event(s) log.
Note – Click Show More to see all events, up to the last 100 events.
Each event in the webhook will show one of these statuses:
[A] – Error – Your webhook threw an error that caused Gladly to deactivate the webhook (i.e., they failed all of the retry attempts Gladly made). These are the events you need to troubleshoot first before [C]. Use the log to help you determine the root cause of the failure.
[B] – Success – The request was delivered to your webhook. No action is needed for these events.
[C] – Debug – Your webhook threw an error, but we did not deactivate your webhook. Expect to see debug errors if your webhook fails on the first delivery or during one of our retry queues leading up to deactivating the webhook. Troubleshoot these events after [A].
Click next to the event that failed to see the Request and Response log.
Review the information in the Request and Response tabs:
Request contains the payload sent by the Lookup Adaptor to the external system.
Response displays the response or error sent by the external system.
Below are the most common response errors, along with suggested actions to help determine the root cause of the error. The types of errors that may appear depend on your external system.
Code
Type
Description
Suggested Actions
400 or 500
Bad Request
Check the response body for more information regarding the error.
Verify that the Webhook URL field on the webhook page is correct. – Verify the host is correct. – Verify you are using the correct path.
Manually request your endpoint and check for a successful response.
Confirm that the application that receives webhook messages is running.
Check the response body for more information about the error.
401
Unauthorized
Check the response body for more information regarding the error.
Manually request your endpoint and check for a successful response.
Check the logs of your application for more information regarding the error.
We were unauthorized to request your endpoint.
404
Not Found
We were unable to find your endpoint.
We were unable to request your endpoint after 15 seconds.
408, 409, 429, 504
Error
Transient errors, including DNS failures or network-related errors.
Automatically retry each request up to three times in five-second intervals before it’s added to the next retry queue.
timeout
Timeout
We were unable to make a request to your endpoint after 15 seconds.
We were unable to request your endpoint after 15 seconds.
As a user assigned the API User role, go to Settings> Webhooks and check if any Webhooks are enabled. If they are, you are utilizing Webhooks. You can click on each webhook to see what Events you are subscribed to and which URLs they ping.
What does it mean for a webhook to fail?
A webhook fails if it sends a response outside the 2xx HTTP status code range or does not send a response/times out within 15 seconds of Gladly’s request.
Webhooks could also get deactivated if rate limits are exceeded. We understand that there are legitimate business processes in place that might unintentionally deactivate webhooks due to exceeding rate limits, causing errors. Please contact Gladly Support if you experience these issues.
How do I make sure we receive these email notifications?
Make sure you’re assigned the API User role.
Allowlist [email protected] to prevent the webhook alerts from going to spam. We suggest allowing @gladly.com domain to prevent any Gladly emails from going to spam.
What happens when a webhook is deactivated?
When a webhook is deactivated, it stops receiving notifications for the specific events it was subscribed to. For example, if a webhook is subscribed to the “CONVERSATION/CREATED” event and gets deactivated, it will no longer receive any notifications when a new conversation is created.
Will I lose data while my webhook is deactivated?
Potentially. When a webhook is deactivated, all event notifications will be ignored. For instance, if a webhook is subscribed to both “CONVERSATION/CREATED” and “CONVERSATION/CLOSED” events, and a notification for the “CONVERSATION/CREATED” event fails to deliver within an hour, you will no longer receive notifications for both the “CONVERSATION/CREATED” and “CONVERSATION/CLOSED” events.
How can I recover my data when my webhook is deactivated?
To retrieve any missing event data that would have been delivered to your deactivated webhook, you can utilize our Events API. We will provide a timestamp indicating when we first encountered a delivery issue for your webhook’s notifications. You can filter and retrieve the missing events using this timestamp as a date parameter in the Event API.
Note that this is only available for 24 hours, and the Events API is unable to retrieve some information like Customer Profile updated, Customer Profile created, Customer Profile deleted, Export job completed, the Export job failed, Payment request created, Payment status changed, Payment request viewed and Automation message received.
Historical data can be retrieved via reports, for example, Contact Timestamps, Agent Timestamps, and Task Timestamps, though these reports are subject to the same limitations that the Events API.
Is Gladly able to send me the data I missed manually?
No. To recover your data, you may use our Event API. See the previous question for more details.
How will I get notified when my webhook fails? What if I am unavailable?
API users in your organization will be notified via email when a webhook has been deactivated.
Suppose you only have one API User listed, API users that belong to partners/are not real email addresses vs. in-house employees. In that case, we recommend adding at least another API User (e.g., in case the API user is on vacation).
What if a third party owns a webhook and it’s deactivated?
If a third party owns a webhook and it gets deactivated, we recommend contacting the owner to determine the necessary steps to get it working. Additionally, if a third-party system is down for more than an hour and then comes back online, you should visit the Webhook admin page and proceed to reactivate your webhook.
Does deactivating a webhook only affect certain events within that webhook?
No, when a notification for one event within a webhook fails to deliver within an hour, we deactivate all events for that webhook.
Are all webhooks subject to deactivation if they don’t respond after the fourth attempt?
No. We are excluding the following webhook-based Apps developed by Gladly: Klaviyo, Qualtrics, Segment, and Zauis.
How to prevent webhook failures?
Make sure to audit the status codes you are sending with your webhook to ensure you respond with a 2xx if successfully processed so your webhook doesn’t get accidentally turned off.
Make sure to add at least one (ideally two) API User roles in your organization with real email addresses so that you can be appropriately notified when a webhook is deactivated due to the retry limit.
This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
Cookie
Duration
Description
__cf_bm
29 minutes
This cookie, set by Cloudflare, is used to support Cloudflare Bot Management.
_wpfuuid
1 year 1 month 4 days
This cookie is used by the WPForms WordPress plugin. The cookie is used to allows the paid version of the plugin to connect entries by the same user and is used for some additional features like the Form Abandonment addon.
BIGipServer*
session
Marketo sets this cookie to collect information about the user's online activity and build a profile about their interests to provide advertisements relevant to the user.
cookielawinfo-checkbox-advertisement
1 year
Set by the GDPR Cookie Consent plugin, this cookie records the user consent for the cookies in the "Advertisement" category.
cookielawinfo-checkbox-analytics
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional
11 months
The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
CookieLawInfoConsent
1 year
CookieYes sets this cookie to record the default button state of the corresponding category and the status of CCPA. It works only in coordination with the primary cookie.
PHPSESSID
session
This cookie is native to PHP applications. The cookie stores and identifies a user's unique session ID to manage user sessions on the website. The cookie is a session cookie and will be deleted when all the browser windows are closed.
viewed_cookie_policy
11 months
The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Cookie
Duration
Description
li_gc
5 months 27 days
Linkedin set this cookie for storing visitor's consent regarding using cookies for non-essential purposes.
lidc
1 day
LinkedIn sets the lidc cookie to facilitate data center selection.
UserMatchHistory
1 month
LinkedIn sets this cookie for LinkedIn Ads ID syncing.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Cookie
Duration
Description
_ga
1 year 1 month 4 days
Google Analytics sets this cookie to calculate visitor, session and campaign data and track site usage for the site's analytics report. The cookie stores information anonymously and assigns a randomly generated number to recognise unique visitors.
_ga_*
1 year 1 month 4 days
Google Analytics sets this cookie to store and count page views.
_gd_session
4 hours
This cookie is used for collecting information on users visit to the website. It collects data such as total number of visits, average time spent on the website and the pages loaded.
_gd_visitor
1 year 1 month 4 days
This cookie is used for collecting information on the users visit such as number of visits, average time spent on the website and the pages loaded for displaying targeted ads.
_sp_id.*
1 year 1 month 4 days
Snowplow sets this cookie to store user information that is created when a user first visits a site and is updated on subsequent visits.
_sp_ses.*
30 minutes
Snowplow sets this cookie to store user information that is created when a user first visits a site and is updated on subsequent visits.
AnalyticsSyncHistory
1 month
Linkedin set this cookie to store information about the time a sync took place with the lms_analytics cookie.
mf_user
3 months
Mouseflow sets this cookie to identify whether a visitor is new or returning.
vuid
1 year 1 month 4 days
Vimeo installs this cookie to collect tracking information by setting a unique ID to embed videos on the website.
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
Cookie
Duration
Description
_mkto_trk
1 year 1 month 4 days
This cookie, provided by Marketo, has information (such as a unique user ID) that is used to track the user's site usage. The cookies set by Marketo are readable only by Marketo.
bcookie
1 year
LinkedIn sets this cookie from LinkedIn share buttons and ad tags to recognize browser IDs.
bscookie
1 year
LinkedIn sets this cookie to store performed actions on the website.
li_sugr
3 months
LinkedIn sets this cookie to collect user behaviour data to optimise the website and make advertisements on the website more relevant.