Setting up CRM Sync

Everything a new user does, in order. Six steps, about thirty minutes. Five are yours; the last one is your setup partner's.

Before you start: have your Google Analytics login to hand — one with Admin on the property for your store. You never give CRM Sync your Google login, and you never grant anyone Google Admin. Every key below is one you copy across yourself.
Need security approval to purchase? If procurement asks for a security review, share the Setup Reference with your CISO, DPO, or CTO — the same setup in full technical depth: every connection, scope, and data path. You follow the steps below; they review the reference. Neither of you needs the other's page.

The steps

Step 1 You

Install the app

Open Get the App and install CRM Sync. It runs as its own window on desktop, or from the Home Screen on iPhone and iPad. If your browser doesn't offer to install it, reload the page once — the prompt only activates after the service worker finishes registering.

Step 2 You

Sign in with the account you purchased on

Your entitlement is attached to the account that bought the app. If Keys or Teams tell you there's no entitlement and you have just purchased, give it a minute and reload before contacting support.

Step 3 You

Generate your admin key

Open Your Keys and generate it. This key is minted for you — it isn't fetched from Google or Shopify. It is shown once, so put it in a password manager the moment you see it.

Rotate or revoke it whenever you like; every change is recorded in the fingerprint audit ledger.

Step 4 You

Connect your store

Install the CRM Sync app on your Shopify store. The wizard doesn't take your word for this: it checks that your store has a live app session and then makes a real Admin API call to read your shop name back. The row turns solid only when that call actually succeeds.

Step 5 You

Connect Google Analytics

Open Connect Google and fill the cards in order. Each value and where it lives is in the table below. The Measurement Protocol card is verified live against Google when you save — if it goes green, the credentials genuinely work.

The BigQuery card additionally needs a one-time grant on your side: give crm-sync-runtime@crm-sync-prod.iam.gserviceaccount.com the BigQuery Data Viewer role on your export dataset. That single read-only grant on one dataset is the maximum access that ever leaves your side, and you can revoke it at any time.

Step 6 Your partner

Going live

You don't run the cutover, and the final button is not meant to be yours. Going live is restricted to the Release Engineer persona — the people who review a build are deliberately not the people who ship it. Once your connections are verified, the go-live wizard reads "Ready for your partner", and that is the finished state for you.

Where to find every key

Five values to copy, plus one the app mints for you. Anything not in this table — your Shopify access token, your OAuth credentials — is handled by the connect flows and never pasted by hand.

Every credential a CRM Sync user supplies, and its exact source.
KeyLooks likeWhere to get itWhere it goesNeeded?
GA4 Measurement ID G-XXXXXXXXXX analytics.google.com → Admin (gear, bottom-left) → Data Streams → your web stream. The Measurement ID is top-right on the stream panel. Connect Google → GA4 Measurement Protocol Required
GA4 Measurement Protocol API secret a ~22-char string Same Data Stream panel → Measurement Protocol API secrets → Create. Copy the secret value — Google shows it once. Connect Google → GA4 Measurement Protocol Required
GA4 Property ID a number, e.g. 545206186 analytics.google.com → Admin → Property Settings. It is the number under the property name, not the G- ID. Keep it — your export dataset is named after it. Connect Google → GA4 Property Required
GA4 → BigQuery export dataset analytics_ analytics.google.com → Admin → BigQuery Links → Link → pick the project → enable Daily. Google then creates the dataset; its name is analytics_ plus your Property ID. Connect Google → GA4 → BigQuery export Required for reports
Merchant Center ID a number, e.g. 1234567 merchants.google.com → the account selector, top-right. Only needed if you run a product feed. Connect Google → Merchant Center Optional
Tag Manager container ID GTM-XXXXXXX tagmanager.google.com → your container. The GTM- ID is at the top of the workspace. You do not need this to measure — CRM Sync loads GA4 itself. Add it only if you already keep your own marketing tags in a container, and we load that container behind the same consent gate. Connect Google → Tag Manager container Optional
Your admin key crm_t_… You do not fetch this one from anywhere — CRM Sync mints it for you. Open Your Keys and generate it. It is shown ONCE; put it straight in a password manager. Rotate or revoke it any time; every change lands in the audit ledger. Your Keys (/keys) Included with purchase

Questions people actually ask

Do I need Google Tag Manager?

No — not to measure. CRM Sync delivers GA4 through gtag in its own stack loader, so a container is never required. Tag Manager is optional: if you already keep your own marketing tags in a container, paste its GTM- ID into Connect Google and we load that container behind the same consent gate as everything else. Point it at your own tags, not at the GA4 property you gave us above — configuring the same property twice double-counts every hit.

The Connect Google page says my store is something.myshopify.com — is that wrong?

That's your store's internal Shopify identifier, which stays the same even after you connect a custom domain. Once your store connection is live, the page shows your real address instead. If it's showing a store you don't recognise, you likely opened the page with the wrong ?shop= in the URL.

Why is a card still "Pending" when I filled it in?

Pending means the value is saved but not yet verified, or not yet set. "Action needed" means we tried and it genuinely failed — the card tells you which grant or value to fix. Only the Merchant Center card is optional; it never blocks your overall status.