Timeline showing Drift WordPress plugin closed December 2022, August 2025 OAuth breach, and the March 2026 gradual sunset announcement
/* mxchat-css */ /* MxChat — Fullwidth Theme Reset */ /* Generic WordPress themes */ .entry-content-wrap, .entry-content, .post-inner .entry-content, .container.site-content, article .entry-content, .content-area .site-main, .single-content .entry-content, .type-post .entry-content, .type-page .entry-content, .page .entry-content, .single .entry-content { padding: 0 !important; max-width: 100% !important; width: 100% !important; } /* Outer wrappers that themes use to add spacing */ .site-main > article, .content-area, .site-content, #content, #primary, .hentry, .post, .page .post, .single .post { padding: 0 !important; margin-left: 0 !important; margin-right: 0 !important; max-width: 100% !important; } /* Astra */ .ast-container .entry-content, .site-content .ast-container, .ast-separate-container .ast-article-single, .ast-separate-container .ast-article-post, .ast-separate-container .ast-article-page { padding: 0 !important; margin: 0 auto !important; max-width: 100% !important; width: 100% !important; background: transparent !important; } .ast-separate-container .entry-content { margin: 0 !important; } /* GeneratePress */ .inside-article .entry-content, .generate-columns-container, .inside-article { padding: 0 !important; max-width: 100% !important; width: 100% !important; } /* Kadence */ .kb-row-layout-wrap, .entry-content-wrap, .content-container.site-container { padding: 0 !important; max-width: 100% !important; width: 100% !important; } .content-style-unboxed .entry:not(.loop-entry), .content-style-boxed .entry:not(.loop-entry) { box-shadow: none !important; border-radius: 0 !important; margin: 0 !important; padding: 0 !important; } /* OceanWP */ .ocean-content .entry, #content-wrap .container { padding: 0 !important; max-width: 100% !important; width: 100% !important; } /* Neve */ .nv-single-post-wrap .entry-content, .nv-content-wrap .entry-content { padding: 0 !important; max-width: 100% !important; width: 100% !important; } /* Hello Elementor / Elementor default theme */ .site-main .elementor-section-wrap, .elementor-page .page-content .entry-content, .elementor-default .entry-content { padding: 0 !important; max-width: 100% !important; width: 100% !important; } /* Bricks Builder */ .brxe-post-content .entry-content, .bricks-layout-wrapper .entry-content, .brxe-container .entry-content { padding: 0 !important; max-width: 100% !important; width: 100% !important; } /* Divi */ .et_pb_post .entry-content, #main-content .container .entry-content, .et_full_width_page .entry-content { padding: 0 !important; max-width: 100% !important; width: 100% !important; } /* Beaver Builder */ .fl-post-content .entry-content, .fl-content-full .entry-content { padding: 0 !important; max-width: 100% !important; width: 100% !important; } /* Blocksy */ .entry-content[data-source], .site-main > article > .entry-content { padding: 0 !important; max-width: 100% !important; width: 100% !important; } /* Spectra / starter templates */ .uagb-body-wrapper .entry-content, .starter-template-content .entry-content { padding: 0 !important; max-width: 100% !important; width: 100% !important; } /* WordPress Block Themes (Twenty Twenty-Two → Twenty Twenty-Five) These use theme.json layout constraints rather than classic .entry-content, so the selectors above do not apply — neutralize them here. */ .wp-site-blocks, .wp-block-post-content, .wp-block-group.has-global-padding, .has-global-padding { padding-left: 0 !important; padding-right: 0 !important; max-width: 100% !important; } .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)), .wp-block-post-content > :where(:not(.alignleft):not(.alignright):not(.alignfull)) { max-width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; } /* MxChat — CSS Isolation & Responsive Overrides */ .mxg-wrapper { box-sizing: border-box; } .mxg-wrapper *, .mxg-wrapper *::before, .mxg-wrapper *::after { box-sizing: inherit; } .mxg-wrapper img { max-width: 100%; height: auto; } .mxg-wrapper section { clear: both; } .mxg-row { display: flex; flex-wrap: wrap; } .mxg-col { min-width: 0; } .mxg-grid { display: flex; flex-wrap: wrap; } .mxg-container { box-sizing: border-box; width: 100%; } @media (max-width: 768px) { .mxg-row { flex-direction: column !important; gap: 24px !important; } .mxg-col { flex: 1 1 100% !important; width: 100% !important; max-width: 100% !important; } .mxg-hero-heading { font-size: 2.2rem !important; } .mxg-section-heading { font-size: 1.6rem !important; } .mxg-container { padding-left: 20px !important; padding-right: 20px !important; } .mxg-card { flex: 1 1 100% !important; } .mxg-grid { gap: 16px !important; } } @media (max-width: 480px) { .mxg-hero-heading { font-size: 1.75rem !important; } .mxg-section-heading { font-size: 1.35rem !important; } .mxg-container { padding-left: 16px !important; padding-right: 16px !important; } } /* MxChat — AI Generated Styles */ .mxg-container { max-width: 800px; margin: 0 auto; padding: 2rem 1.5rem 3rem; } .mxg-hero-heading { font-size: 2.5rem; font-weight: 800; line-height: 1.2; margin: 0 0 1rem; color: #0f172a; letter-spacing: -0.02em; } .mxg-hero-subheading { font-size: 1.15rem; line-height: 1.75; color: #475569; margin: 0 0 1.25rem; } .mxg-meta { font-size: 0.875rem; color: #94a3b8; margin: 0 0 2rem; display: flex; gap: 1rem; flex-wrap: wrap; align-items: center; } .mxg-meta-divider { color: #cbd5e1; } .mxg-img { width: 100%; height: auto; border-radius: 12px; display: block; margin: 2rem 0; box-shadow: 0 4px 24px rgba(0, 0, 0, 0.10); } .mxg-section-heading { font-size: 1.75rem; font-weight: 700; line-height: 1.3; color: #0f172a; margin: 2.5rem 0 1rem; letter-spacing: -0.01em; } .mxg-subheading { font-size: 1.2rem; font-weight: 600; color: #1e293b; margin: 1.75rem 0 0.6rem; } .mxg-p { font-size: 1.1rem; line-height: 1.8; color: #334155; margin: 0 0 1.25rem; } .mxg-ul { margin: 0.75rem 0 1.5rem 0; padding-left: 0; list-style: none; } .mxg-ul li { font-size: 1.1rem; line-height: 1.8; color: #334155; padding: 0.35rem 0 0.35rem 1.75rem; position: relative; } .mxg-ul li::before { content: "→"; position: absolute; left: 0; color: #3b82f6; font-weight: 700; } .mxg-ol { margin: 0.75rem 0 1.5rem 0; padding-left: 1.5rem; } .mxg-ol li { font-size: 1.1rem; line-height: 1.8; color: #334155; padding: 0.25rem 0; padding-left: 0.5rem; } .mxg-ol li::marker { color: #3b82f6; font-weight: 700; } .mxg-blockquote { border-left: 4px solid #3b82f6; background: #f0f7ff; border-radius: 0 8px 8px 0; margin: 1.75rem 0; padding: 1.25rem 1.5rem; color: #1e40af; font-size: 1.1rem; line-height: 1.75; font-style: italic; } .mxg-blockquote cite { display: block; margin-top: 0.75rem; font-size: 0.9rem; font-style: normal; color: #3b82f6; font-weight: 600; } .mxg-takeaway { background: linear-gradient(135deg, #eff6ff 0%, #f0fdf4 100%); border: 1.5px solid #93c5fd; border-radius: 12px; padding: 1.5rem 1.75rem; margin: 2rem 0; } .mxg-takeaway-heading { font-size: 1rem; font-weight: 700; color: #1d4ed8; text-transform: uppercase; letter-spacing: 0.08em; margin: 0 0 0.75rem; display: flex; align-items: center; gap: 0.5rem; } .mxg-takeaway-heading::before { content: "✦"; color: #3b82f6; } .mxg-takeaway ul { margin: 0; padding-left: 0; list-style: none; } .mxg-takeaway ul li { font-size: 1rem; line-height: 1.75; color: #1e3a5f; padding: 0.2rem 0 0.2rem 1.5rem; position: relative; } .mxg-takeaway ul li::before { content: "✓"; position: absolute; left: 0; color: #16a34a; font-weight: 700; } .mxg-highlight { color: #1d4ed8; font-weight: 700; } .mxg-highlight-warning { color: #dc2626; font-weight: 700; } .mxg-highlight-green { color: #16a34a; font-weight: 700; } .mxg-divider { border: none; border-top: 1.5px solid #e2e8f0; margin: 2.5rem 0; } .mxg-comparison-table { width: 100%; border-collapse: collapse; margin: 1.5rem 0 2rem; font-size: 1rem; border-radius: 10px; overflow: hidden; box-shadow: 0 2px 12px rgba(0,0,0,0.07); } .mxg-comparison-table th { background: #1d4ed8; color: #fff; font-weight: 700; padding: 0.85rem 1rem; text-align: left; font-size: 0.95rem; letter-spacing: 0.02em; } .mxg-comparison-table td { padding: 0.8rem 1rem; color: #334155; font-size: 0.97rem; line-height: 1.6; border-bottom: 1px solid #e2e8f0; vertical-align: top; } .mxg-comparison-table tr:nth-child(even) td { background: #f8fafc; } .mxg-comparison-table tr:last-child td { border-bottom: none; } .mxg-badge { display: inline-block; font-size: 0.78rem; font-weight: 700; padding: 0.2rem 0.55rem; border-radius: 999px; letter-spacing: 0.04em; text-transform: uppercase; } .mxg-badge-green { background: #dcfce7; color: #15803d; } .mxg-badge-blue { background: #dbeafe; color: #1d4ed8; } .mxg-badge-orange { background: #fff7ed; color: #c2410c; } .mxg-cta-box { background: linear-gradient(135deg, #1d4ed8 0%, #0ea5e9 100%); border-radius: 16px; padding: 2.25rem 2rem; margin: 2.5rem 0 1rem; text-align: center; } .mxg-cta-heading { font-size: 1.6rem; font-weight: 800; color: #ffffff; margin: 0 0 0.75rem; line-height: 1.25; } .mxg-cta-subheading { font-size: 1.05rem; color: #bfdbfe; line-height: 1.7; margin: 0 0 1.5rem; } .mxg-cta-link { display: inline-block; background: #ffffff; color: #1d4ed8; font-weight: 700; font-size: 1rem; padding: 0.8rem 2rem; border-radius: 8px; text-decoration: none; transition: background 0.2s, color 0.2s; letter-spacing: 0.01em; } .mxg-cta-link:hover { background: #eff6ff; color: #1e40af; } .mxg-link { color: #1d4ed8; text-decoration: underline; text-underline-offset: 3px; font-weight: 500; } .mxg-link:hover { color: #1e40af; } .mxg-step-list { counter-reset: mxg-steps; list-style: none; padding-left: 0; margin: 0.75rem 0 1.5rem; } .mxg-step-list li { counter-increment: mxg-steps; font-size: 1.1rem; line-height: 1.8; color: #334155; padding: 0.5rem 0 0.5rem 3rem; position: relative; border-bottom: 1px solid #f1f5f9; } .mxg-step-list li:last-child { border-bottom: none; } .mxg-step-list li::before { content: counter(mxg-steps); position: absolute; left: 0; top: 0.5rem; width: 2rem; height: 2rem; background: #1d4ed8; color: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 0.9rem; line-height: 2rem; text-align: center; } .mxg-alert-box { background: #fef2f2; border: 1.5px solid #fca5a5; border-radius: 10px; padding: 1.1rem 1.4rem; margin: 1.5rem 0; color: #991b1b; font-size: 1rem; line-height: 1.7; } .mxg-alert-box strong { color: #7f1d1d; } .mxg-tag-row { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.5rem 0 1.5rem; } .mxg-conclusion-box { background: #f8fafc; border: 1.5px solid #cbd5e1; border-radius: 12px; padding: 1.5rem 1.75rem; margin: 2rem 0; } .mxg-conclusion-box p { font-size: 1.05rem; line-height: 1.8; color: #334155; margin: 0 0 0.75rem; } .mxg-conclusion-box p:last-child { margin-bottom: 0; } @media (max-width: 768px) { .mxg-container { padding: 1.5rem 1.1rem 2.5rem; } .mxg-hero-heading { font-size: 2rem; } .mxg-section-heading { font-size: 1.45rem; } .mxg-cta-heading { font-size: 1.35rem; } .mxg-cta-box { padding: 1.75rem 1.25rem; } .mxg-comparison-table { font-size: 0.9rem; } .mxg-comparison-table th, .mxg-comparison-table td { padding: 0.65rem 0.75rem; } .mxg-step-list li { padding-left: 2.75rem; } .mxg-takeaway { padding: 1.25rem 1.25rem; } } @media (max-width: 480px) { .mxg-container { padding: 1rem 0.85rem 2rem; } .mxg-hero-heading { font-size: 1.65rem; letter-spacing: -0.01em; } .mxg-section-heading { font-size: 1.25rem; } .mxg-hero-subheading { font-size: 1rem; } .mxg-p, .mxg-ul li, .mxg-ol li, .mxg-step-list li { font-size: 1rem; } .mxg-comparison-table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; } .mxg-cta-heading { font-size: 1.2rem; } .mxg-cta-subheading { font-size: 0.95rem; } .mxg-cta-link { padding: 0.7rem 1.4rem; font-size: 0.95rem; } .mxg-blockquote { padding: 1rem 1.1rem; font-size: 1rem; } .mxg-takeaway { padding: 1rem 1rem; } } /* MxChat — Hide Title */ .entry-title, .page-title, .post-title, .wp-block-post-title, .ast-title-with-post-meta-wrapper, .ast-the-title, .generate-page-header .page-hero, .entry-header .entry-title, .entry-hero .entry-title, .kadence-page-title, .wp-site-blocks .entry-title, .ocean-single-post-header, .page-header, .nv-page-title-wrap, .nv-post-title, .elementor-page-title, .et_pb_title_container .entry-title, .brxe-post-title, [data-hero] .page-title, .hero-section .page-title, .entry-header { display: none !important; }

If you run a WordPress site with a Drift chat widget on it, the platform you embedded is being retired. Not hypothetically, and not according to a competitor's blog post — according to Salesloft itself.

This guide covers what was actually announced, how to tell whether your site is still loading Drift's script right now, how to remove it cleanly, and what to weigh when you pick a replacement. It also covers a piece of the story that the dozens of "best Drift alternative" posts published this year have all missed: for WordPress users specifically, Drift's official support ended more than three years before the sunset was announced.

What Clari + Salesloft actually announced

On 5 March 2026, Clari + Salesloft published a press release announcing a partnership with 1mind. The relevant sentence is this one:

"As part of this strategic partnership, Clari + Salesloft is announcing the gradual sunset of its Drift conversational marketing solution."

Two words in that sentence are doing a lot of work, and most of the coverage has dropped both of them.

The first is "gradual." Drift is not switched off. As of this writing, drift.com still returns HTTP 200, app.drift.com still responds, and the widget CDN at js.driftt.com is still serving normally. No end-of-life date has been published. If you go looking for one because a blog post told you Drift "is dead," you will not find it — because there isn't one.

The second is "refer." The same release says Clari + Salesloft "will refer existing Drift clients to 1mind as the successor." A referral is not a migration. Nobody is moving your conversations, your routing rules, or your playbooks. You are being pointed at a different vendor and left to do the work.

Salesloft's own Drift product page now leads with "We've transitioned from Drift to 1mind." That is the clearest signal available about where the product is going.

A note on dates, since precision matters here: a large number of posts covering this give the announcement date as 6 March 2026. The press release on Salesloft's newsroom is dated 5 March. The 6th is when the coverage picked it up.

The WordPress timeline is different — and much older

Here is the part that matters if your interest in Drift is specifically a WordPress interest.

Drift's official WordPress plugin is not in the plugin directory, and hasn't been for years. Querying the WordPress.org plugin API for the drift slug returns this:

{"error":"closed","name":"Drift","slug":"drift","description":"This plugin has been closed as of December 9, 2022 and is not available for download. Reason: Guideline Violation.","closed":true,"closed_date":"2022-12-09","reason":"guideline-violation"}

Drift's WordPress plugin was closed on 9 December 2022 for a guideline violation — three years and three months before the sunset announcement. Anyone who installed it from the directory has been running unmaintained, undistributed code ever since. Anyone who installed it after that date got it from somewhere other than WordPress.org, or pasted the JavaScript snippet directly into their theme.

This reframes the whole question. The 2026 announcement is the end of the corporate story. For WordPress site owners, the practical abandonment happened in 2022 and was published, in machine-readable form, the entire time.

Is your site still loading Drift? Three ways to check

Sites accumulate scripts. It is entirely normal to be running a widget nobody has thought about in two years. Check properly rather than assuming:

  1. View source and search for the script. Load your site, view page source, and search for driftt (note the double "t" — the CDN domain is js.driftt.com, not drift.com) or drift.load. A match means the widget is still being requested on every page view.
  2. Check the network tab. Open DevTools → Network, filter on "drift", and reload. This catches injections from a tag manager or a caching layer that don't appear in your theme files.
  3. Search your database and theme. Snippets get pasted into a lot of places. Check your theme's header.php and functions.php, any custom-code plugin (Code Snippets, Insert Headers and Footers), your Google Tag Manager container, and widget areas.

Removing it cleanly

Once you've found where it's injected, removal is straightforward — but do these in order:

  1. Back up first. A database snapshot and a copy of any file you're about to edit. This is a two-minute step that turns a mistake into an undo.
  2. Remove at the source, not with CSS. Hiding the widget with display: none leaves the script loading on every page view — you keep the performance cost and the third-party request, and lose only the visible bubble.
  3. Deactivate before deleting. If it came in via a plugin, deactivate, confirm the site renders correctly, then delete.
  4. Purge every cache. Your page cache, your object cache, and your CDN. On a site running W3 Total Cache or similar, a stale cached page will keep serving the old script long after you've removed it.
  5. Revoke the integration. If you connected Drift to a CRM, revoke that OAuth connection on the CRM side. Deleting a plugin does not revoke a token that was granted to a third party.

That last point deserves emphasis. In August 2025, Drift was at the centre of an OAuth token compromise — tracked as UNC6395 — in which attackers used stolen tokens to export data from the connected Salesforce environments of more than 700 organisations, among them Cloudflare, Palo Alto Networks and Zscaler. Salesforce revoked Drift's tokens and pulled the app from AppExchange on 20 August 2025. Notably, the victims' own systems were not breached; the tokens they had granted to a trusted third party were.

The lesson generalises well beyond Drift: a chat widget is not just a script on your page — it is frequently an authenticated connection to your customer data. When you retire one, revoke the grant as deliberately as you remove the embed.

How to choose a replacement (the signal most comparisons ignore)

Most "alternatives" posts compare feature checklists. Feature checklists are the least durable thing about a chat product — Drift had an excellent one.

The more useful question is whether the thing you install will still be maintained in three years. For WordPress plugins, that signal is public and checkable in about thirty seconds, from the plugin's directory listing:

Checklist of criteria for choosing a WordPress chat plugin: data ownership, update cadence, native integration, transparent pricing, plugin compatibility
  • Last updated. Months of silence on a plugin that touches every page load is a real risk.
  • "Tested up to." A plugin not tested against the current WordPress release is telling you how closely its author is tracking core.
  • Active installs and rating. Direction and support responsiveness matter more than the raw number.
  • Is it in the directory at all? Drift's wasn't, from December 2022 onward. That was the tell.

Here is that data for the plugins WordPress owners most often consider, pulled from the WordPress.org plugin API on 3 August 2026. WordPress current release at the time of writing is 7.0.2:

PluginActive installsLast updatedTested up toRating
DriftClosed 2022-12-09
Tawk.to Live Chat100,0002026-01-146.9.592
Tidio – Live Chat & AI Chatbots80,0002026-06-167.0.294
LiveChat – Live Chat Plugin for WP10,0002026-05-256.9.592
WPBot – AI ChatBot5,0002026-07-297.0.294
MxChat2,0002026-08-027.0.2100
Chart of WordPress chat plugin maintenance signals: active installs, last updated date and tested-up-to version, with Drift closed since December 2022

Read that table honestly and it does not say "pick the one at the bottom." MxChat has the smallest install base of the group by a wide margin — Tawk.to has fifty times as many. If installed base is your primary criterion, Tawk.to or Tidio is your answer and you should stop reading here.

What the table does show is that currency and install count are different axes. Tawk.to has the largest footprint and the oldest release in the set; it was last updated in January and is tested against WordPress 6.9.5 while core is on 7.0.2. Tidio, WPBot and MxChat are all tested against the current release.

The options, in practice

OptionModelBest whenWatch out for
1mindSaaS, referred successorYou're an enterprise Drift customer taking the official pathA referral, not a migration; you rebuild your setup either way
TidioHosted SaaS + pluginYou want live chat and bots in one hosted productConversation-based pricing scales with success
Tawk.toFree hostedBudget is the binding constraintFree tier is monetised via paid branding removal and hired agents
LiveChatHosted SaaSYou have staffed human agentsPer-agent pricing; AI is a separate product
MxChatSelf-hosted WordPress plugin, your own API keyYou want the bot and its data inside your own siteSmallest community; you manage your own model costs

The genuine architectural split here is hosted SaaS versus self-hosted plugin, and Drift's sunset is a reasonable argument for thinking about it. When a hosted platform is retired, the product leaves and takes its infrastructure with it. When a self-hosted plugin is abandoned, the code is still on your server and still runs — you have a maintenance problem rather than a deadline. Neither is strictly better. They fail differently, and it's worth choosing which failure mode you'd rather have.

For what it's worth on the transparency front: MxChat runs on your own OpenAI, Anthropic or other provider key, so conversations and knowledge base stay in your WordPress database. That also means the model bill is yours and is not included in the licence. MxChat's free version is on WordPress.org; MxChat Pro is a one-time $69.97, with an Agency tier at $174.97 covering five sites.

Frequently asked questions

Has Drift shut down yet?

No. Clari + Salesloft announced a "gradual sunset" on 5 March 2026 and have not published an end-of-life date. Drift's web properties and widget CDN were still responding normally when this article was written. Treat it as a product with no future roadmap rather than a product that has stopped working.

Will my Drift widget suddenly stop working?

Nobody outside Salesloft can promise otherwise, which is the point. There is no committed shutdown date to plan against, so the sensible posture is to migrate on a schedule you control rather than one you find out about.

Should I move to 1mind because it's the official successor?

Only if it fits your requirements. "Successor" here means Clari + Salesloft will refer you there, not that your Drift configuration transfers. Since you are rebuilding regardless, the referral carries no migration advantage — evaluate it against the alternatives on equal footing.

Why isn't Drift's WordPress plugin in the directory?

It was closed on 9 December 2022 for a guideline violation, per the WordPress.org plugin API. That is independent of and much earlier than the 2026 sunset.

Is a free chat plugin good enough?

For basic human live chat, often yes. The costs on free tiers usually appear as vendor branding, limited history, or per-agent charges once you grow. For AI answering, the real cost is model usage, which someone pays either inside a subscription or directly through your own API key.

The takeaway

Drift's retirement is a slow-moving event with no deadline attached, which makes it easy to defer. The specific lesson for WordPress owners is sharper than "go pick a new widget": the strongest early warning about Drift was not the 2026 press release but a plugin directory entry that went dark in December 2022 and stayed that way. That signal is public, free, and takes half a minute to check — for whatever you install next, and for whatever is on your site right now.

If you're weighing specific options, our Drift vs MxChat comparison goes deeper on that particular head-to-head, the best WordPress chatbot plugin guide covers the broader field, and if you arrived here from a different retirement, we have a similar breakdown of Zendesk alternatives. Setup steps for MxChat itself are in the documentation.

Similar Posts