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.
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.
| Key | Looks like | Where to get it | Where it goes | Needed? |
|---|---|---|---|---|
| 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.