Back to Blog
integration

The State of App Uninstall Notifications in 2026

Sean Matthews
10 min read

We reviewed 88 platforms for uninstall notification support. 71% have nothing documented. A reference guide for integration builders evaluating platforms.

The State of App Uninstall Notifications in 2026
Left Hook

A client asked us to support uninstall notifications for an integration we were building. Simple enough request. They wanted to trigger some cleanup logic and maybe flag accounts for outreach when users disconnected.

Which got us curious: how many platforms actually support this? We had a hunch it was inconsistent. We didn't realize how inconsistent until we started digging.

The Problem, Briefly

When a user uninstalls your app (or revokes your OAuth authorization), what happens?

From their side: tokens get revoked, features turn off, maybe data gets cleaned up. Pretty clean.

From your side as the integration partner: your code tries a request and gets a 401. Unauthorized. Now you're guessing. Was the token revoked? Did the user uninstall? Is it a temporary auth issue? Should you run cleanup? Should you reach out and help them set up a different integration? Are they a churn risk?

Some providers indicate "revoked" in the 401 response. Most don't. You're left polling endpoints and checking token status, hoping to figure out what happened.

The ideal solution is an uninstall notification webhook. The provider tells you "hey, this user just disconnected your app." You run your cleanup, update your records, maybe trigger a win-back flow. Done.

But how many providers actually offer this?

What We Found

We reviewed 88 platforms. Here's the breakdown:

Clear support: 23 platforms (~26%)

Partial/workarounds: 3 platforms (~3%)

No support: 62 platforms (~71%)

Seventy percent. More than two-thirds of the platforms we reviewed have no documented way to know when a user disconnects your app.

And even among the platforms that do support it, the mechanisms are all over the place.

The Good News: When It Exists, It's a Callback

For the platforms that do support uninstall notifications, the implementation is pretty consistent: it's some form of callback. Webhook, Events API, lifecycle endpoint, deauthorization notification—different names, same concept. Your app registers a URL, the platform hits it when a user disconnects.

The naming varies (Shopify calls it APP_UNINSTALLED, Slack calls it app_uninstalled, Stripe calls it account.application.deauthorized), but you're not dealing with fundamentally different architectures. It's a POST to your endpoint with event data.

A few outliers exist:

  • HubSpot recently added app_uninstall events to their Webhooks v4 Journal (you poll the journal; push webhook coming soon)
  • Google Workspace Marketplace and Box require parsing audit logs
  • Salesforce AppExchange runs an Apex script inside the subscriber's org rather than calling out to you

But for most platforms with support, you're subscribing to a webhook and handling a callback. The real problem isn't mechanism inconsistency—it's that 70% of platforms don't offer any mechanism at all.

Some marketplaces are raising the bar here. Jobber requires apps to subscribe and respond to APP_DISCONNECT webhooks before publishing. Pipedrive's approval process explicitly tests that you handle their uninstall callback. As a partner, these requirements add friction—one more thing to build and test before you can ship. But in the long run, it's better for you and your shared users. You're not left guessing when someone disconnects, and users get cleaner data hygiene on both sides.

Platforms With Clear Support

These providers have documented uninstall or deauthorization notifications:

PlatformMechanismEvent/Signal
JobberWebhook (required for listing)APP_DISCONNECT
ShopifyWebhookAPP_UNINSTALLED
SlackEvents APIapp_uninstalled
monday.comApp lifecycle eventsapp_uninstalled
Stripe ConnectWebhookaccount.application.deauthorized
SquareWebhookoauth.authorization.revoked
GitHubGitHub App webhooksinstallation (action: deleted)
Atlassian Connect (Jira/Confluence)Lifecycle callback/uninstalled event
Microsoft TeamsGraph change notificationsteamsAppInstallation delete
Wix App MarketApp lifecycle webhookApp uninstalled
PipedriveCallbackDELETE to callback URL
ZoomDeauthorization endpointapp_deauthorized
BigCommerceCallback handlerGET /uninstall
HubSpotWebhooks v4 Journal (push coming)app_uninstall
HighLevel (GoHighLevel)Marketplace webhookAppUninstall
Google ChatInteraction eventREMOVED_FROM_SPACE
Zoho CliqUninstallation handlerIn-platform cleanup handler
Salesforce AppExchangeApex uninstall scriptRuns in subscriber org
AWS Marketplace (SaaS)SNS notificationsSubscription cancellation
Google Cloud MarketplacePub/SubEntitlement changes
Microsoft Commercial MarketplacePartner Center webhookUnsubscribe event

(Note: Some platforms appear twice in our data because they have multiple integration surfaces. We've consolidated here.)

Platforms With Partial Support

These have workarounds but no first-class uninstall webhook:

PlatformWhat's Available
Google Workspace MarketplaceDetect via audit logs / Reports API (polling)
BoxEnterprise events / admin audit logs
RingCentral App GalleryUninstall flow guidance, notification pattern

Platforms With No Support

These have no documented uninstall notification mechanism. Your options are polling token status or catching 401s:

B2B SaaS / Productivity:

Airtable, Asana, ClickUp, Coda, DocuSign, Dropbox, Figma, Freshworks, Intercom, Mailchimp, Miro, Notion, PagerDuty, ServiceNow, Smartsheet, Trello, Webflow, Wrike, Zendesk

HR / Recruiting / Payroll:

ADP, BambooHR, Greenhouse, Lever, Personio, Rippling, UKG, Workable, Workday

Finance / ERP:

Intuit QuickBooks Online, NetSuite, Oracle Cloud, SAP, Xero

Developer / DevOps:

Azure DevOps, Datadog, New Relic, Splunk

Data / Analytics:

Databricks, Segment, Snowflake

Identity:

Okta, OneLogin

iPaaS / Automation:

Boomi, Make, MuleSoft, n8n, Tray.io, Workato, Zapier

Other:

Aha!, Canva, Cisco Webex, Egnyte, Lucid, Mural, SendGrid, Twilio, Zoho (CRM, Creator, Desk)

Some of these are surprising. QuickBooks, Zendesk, ServiceNow, and Workday are massive ecosystems with thousands of integration partners. Notion and Figma have rapidly growing developer platforms. The entire iPaaS category (Zapier, Make, Workato, etc.) doesn't have documented uninstall notifications for apps built on their platforms.

(Side note on Miro: They had experimental webhooks for board content changes, which they sunset in December 2025. But those were never app lifecycle events. Miro has never had an app uninstall notification, as far as we can tell.)

What This Means for Integration Builders

If you're building integrations, plan for the worst case: assume you won't get an uninstall notification.

Your fallback pattern should be:

  1. Catch 401s and check if the response indicates revocation (some providers include this, most don't)
  2. Periodically validate token status via the provider's API (if available)
  3. Flag connections that fail auth repeatedly
  4. Surface "reconnect or disconnect" prompts to users when auth fails
  5. Build your cleanup logic to be idempotent and triggerable from multiple paths

If the platform does support uninstall notifications:

Subscribe to them. They're worth the implementation effort. You get cleaner data, faster response to churn signals, and less guessing about connection state.

When evaluating new platforms:

Check for app lifecycle webhooks early. If they don't exist, factor that into your maintenance estimates. You'll be writing more defensive code and handling more ambiguous states.

A Note on "Deauthorization" vs "Uninstall"

Some platforms (Stripe, Square, Zoom) send deauthorization events rather than uninstall events. These aren't quite the same thing:

  • Uninstall: User explicitly removed your app from their account
  • Deauthorization: User revoked your OAuth tokens (which might happen during uninstall, or separately)

For most integration use cases, deauthorization is close enough. If your tokens are revoked, you can't do anything anyway. But if you're tracking app installs for marketplace metrics, the distinction matters.

GitHub actually sends both: installation (deleted) for the app being removed, and github_app_authorization (revoked) for token revocation. That's the cleanest separation we've seen.

We're Adding This to Our Platform Profiles

We're incorporating uninstall notification support into the API and platform definitions on lefthook.com. If you're evaluating a specific platform, you'll be able to check whether it supports app lifecycle events alongside other integration considerations.


Last updated: February 2026

Have corrections or additions? Email us at hello@lefthook.com or hit us up on LinkedIn.

IntegrationsEcosystemsOAuthWebhooksAPI Strategy

Need Integration Expertise?

From Zapier apps to custom integrations, we've been doing this since 2012.

Book Discovery Call