# Migrating to OptinStack from another CMP

> A migration hub for moving from Cookiebot, CookieYes, OneTrust, Axeptio, or another CMP to OptinStack without breaking GTM.

Author: OptinStack Team  
Published: 2026-07-01  
Page: https://community.optinstack.com/articles/migrating-to-optinstack-from-another-cmp  
Markdown: https://community.optinstack.com/llms.md/articles/migrating-to-optinstack-from-another-cmp

Use this hub when you are moving from another consent management platform to OptinStack and your site uses Google Tag Manager\. Most migration issues are caused by leaving old CMP templates, events, variables, or category triggers in the GTM container\.

> **Warning:** Your tags may stop firing, fire too early, or send the wrong Consent Mode signals if you publish OptinStack while old CMP triggers and variables are still controlling GTM tags.

## The migration model

- Remove the old CMP as the consent authority\. Keep only one system setting Google consent defaults and updates\.
- Install the OptinStack runtime early so it can control direct trackers outside GTM\.
- Import the official downloadable OptinStack template under Templates \> Tag Templates \> New \> Import\. It is not currently published in the Community Template Gallery\. Fire the OptinStack tag on Consent Initialization – All Pages\.
- Replace old CMP event names and variables with OptinStack category events and GTM Additional Consent Checks\.
- Test with GTM Preview, Tag Assistant, DevTools, and an OptinStack scan before publishing\.

*Common old CMP concepts and OptinStack replacements*

| Old concept | OptinStack replacement |
| --- | --- |
| Old CMP GTM template | OptinStack GTM template on Consent Initialization - All Pages |
| Old CMP category event | optinstack_necessary_accepted, optinstack_analytics_accepted, optinstack_marketing_accepted, optinstack_preferences_accepted |
| Old CMP consent variable or first-party cookie condition | GTM Additional Consent Checks using Google consent types |
| Old per-vendor gating | OptinStack category gating unless the tag truly needs vendor-specific logic |

## Start with the guide for your current CMP

- [Migrate from Cookiebot to OptinStack](https://community.optinstack.com/articles/migrate-from-cookiebot-to-optinstack)
- [Migrate from CookieYes to OptinStack](https://community.optinstack.com/articles/migrate-from-cookieyes-to-optinstack)
- [Migrate from OneTrust to OptinStack](https://community.optinstack.com/articles/migrate-from-onetrust-to-optinstack)
- [Migrate from Axeptio to OptinStack](https://community.optinstack.com/articles/migrate-from-axeptio-to-optinstack)

### Can I keep my old CMP triggers and only swap the banner?

No. The banner is only part of the setup. GTM tags often depend on CMP-specific event names, category variables, or template behavior, so those need to be mapped to OptinStack before publishing.

### Should I migrate every GTM tag at once?

Use a staging workspace if possible. Start with the CMP tag, Google tags, analytics tags, and marketing pixels, then test category by category before publishing.
