You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Drift is being officially sunset by Clari + Salesloft (announced 2026-03-06, ~60-90 day customer wind-down) — wrapper should be marked deprecated and the live API gaps below largely become migration concerns.
Gaps found
Missing API surface
drift.api.widget.show() / drift.api.widget.hide() — current show()/hide() call top-level drift.show()/drift.hide() (snippet methods), but the documented force-show/force-hide for both live chat and playbooks lives under drift.api.widget.* — https://devdocs.drift.com/docs/widget-start
drift.api.setUserAttributes(attrs) — typed in our DriftAPI interface but never exported (code comment confirms); should be a public method or folded into identify for anonymous attribute updates — https://devdocs.drift.com/docs/using-drift-apis
drift.page() — Drift's own SPA page-change snippet method; our pageView() calls drift.track("pageView") instead, losing path/locale and the documented SPA-tracking behavior — https://devdocs.drift.com/docs/installation
drift.config({ locale, enableWelcomeMessage, enableCampaigns, enableChatTargeting, backgroundColor, foregroundColor, autoAssignee, inboxId, cookieDomain, disableNewConversations, verticalOffset, horizontalOffset, messages: { welcomeMessage, awayMessage, thankYouMessage, emailCaptureMessage } }) — none of these are surfaced; in particular locale (we accept it on pageView and drop it) and cookieDomain matter for cross-subdomain identity — https://devdocs.drift.com/docs/widget-configuration
Deprecations in our current code
pageView({ path, locale }) ignores both args and emits a generic track("pageView"); replace with drift.page(path) (or wire through drift.config({ locale })) — https://devdocs.drift.com/docs/installation
Legacy driftt window alias is read in destroy() but never queried in load(); either drop it or use it as a fallback when window.drift is missing — https://devdocs.drift.com/docs/installation
Vendor product status
Drift is being sunset. Clari + Salesloft announced the gradual sunset on 2026-03-06; existing customers have ~60–90 days before contract/access ends. Drift was taken offline in Sept 2025 after the Salesloft OAuth breach affecting 700+ orgs. Recommend marking ahize/drift as @deprecated in JSDoc, adding a console warn on load(), and skipping further API parity work in favor of a migration note. — https://www.salesloft.com/company/newsroom/salesloft-acquires-drift
Intentionally out of scope
Agent-side / admin / Conversation API surfaces.
Region/self-hosted endpoints (Drift docs list none beyond js.driftt.com).
Building a 1mind successor adapter (separate work item if desired).
Summary
Drift is being officially sunset by Clari + Salesloft (announced 2026-03-06, ~60-90 day customer wind-down) — wrapper should be marked deprecated and the live API gaps below largely become migration concerns.
Gaps found
Missing API surface
drift.api.widget.show()/drift.api.widget.hide()— currentshow()/hide()call top-leveldrift.show()/drift.hide()(snippet methods), but the documented force-show/force-hide for both live chat and playbooks lives underdrift.api.widget.*— https://devdocs.drift.com/docs/widget-startdrift.api.toggleChat()— not exposed — https://devdocs.drift.com/docs/widget-startdrift.api.goToConversation(conversationId)— not exposed; would let callers resume a known conversation — https://devdocs.drift.com/docs/widget-startdrift.api.startInteraction({ interactionId, goToConversation, replaceActiveConversation })— playbook fire-by-id; not exposed — https://devdocs.drift.com/docs/widget-startdrift.api.setUserAttributes(attrs)— typed in ourDriftAPIinterface but never exported (code comment confirms); should be a public method or folded intoidentifyfor anonymous attribute updates — https://devdocs.drift.com/docs/using-drift-apisdrift.page()— Drift's own SPA page-change snippet method; ourpageView()callsdrift.track("pageView")instead, losing path/locale and the documented SPA-tracking behavior — https://devdocs.drift.com/docs/installationEvents not bridged
chatOpen/chatClose— https://devdocs.drift.com/docs/drift-eventsmessage/message:sent— noonMessagehook — https://devdocs.drift.com/docs/drift-eventsstartConversation,conversation:selected,conversation:firstInteraction,conversation:playbookFired,conversation:playbookClicked,conversation:playbookDismissed,conversation:buttonClicked— https://devdocs.drift.com/docs/drift-eventswelcomeMessage:open/welcomeMessage:close,awayMessage:open/awayMessage:close,sliderMessage:close— https://devdocs.drift.com/docs/drift-eventscampaign:open/campaign:dismiss/campaign:click/campaign:submit— https://devdocs.drift.com/docs/drift-eventsscheduling:requestMeeting/scheduling:meetingBooked— https://devdocs.drift.com/docs/drift-eventsemailCapture/phoneCapture— useful for forwarding to identity store — https://devdocs.drift.com/docs/drift-eventsgdprClicked— https://devdocs.drift.com/docs/drift-eventsConfig options not exposed
drift.config({ locale, enableWelcomeMessage, enableCampaigns, enableChatTargeting, backgroundColor, foregroundColor, autoAssignee, inboxId, cookieDomain, disableNewConversations, verticalOffset, horizontalOffset, messages: { welcomeMessage, awayMessage, thankYouMessage, emailCaptureMessage } })— none of these are surfaced; in particularlocale(we accept it onpageViewand drop it) andcookieDomainmatter for cross-subdomain identity — https://devdocs.drift.com/docs/widget-configurationDeprecations in our current code
pageView({ path, locale })ignores both args and emits a generictrack("pageView"); replace withdrift.page(path)(or wire throughdrift.config({ locale })) — https://devdocs.drift.com/docs/installationdrifttwindow alias is read indestroy()but never queried inload(); either drop it or use it as a fallback whenwindow.driftis missing — https://devdocs.drift.com/docs/installationVendor product status
ahize/driftas@deprecatedin JSDoc, adding a console warn onload(), and skipping further API parity work in favor of a migration note. — https://www.salesloft.com/company/newsroom/salesloft-acquires-driftIntentionally out of scope
js.driftt.com).Sources