GA4 + SalesCrew

A read-only collector pulls your Google Analytics 4 data into the same Postgres project that holds your leads and deals. Nothing is written back to GA4.

An admin approves every new account by hand. Nothing is created until then. We reply by email; no newsletter, no sequence.

  • Read-only collector
  • Lands in your own database
  • Joins to leads and deals
app.salescrew.io/settings
Settings: MCP tokens, integrations and the audit log

The short answer

  • The mechanism is a read-only collector into the marketing module. SalesCrew reads from the GA4 Data API on a schedule and writes rows into your instance. It never writes to GA4 and never changes your property.
  • The reason to bother is the join. Sessions and channels sitting in the same database as leads and deals turn cost per lead by channel into a query instead of a spreadsheet built from two dashboards.
  • Analytics is a tab in SalesCrew, not the product. GA4 stays the source of truth for web behaviour; SalesCrew is where that data meets a pipeline.

Mechanism

One direction, on a schedule, into tables you own.

WhatMechanismDirectionObjectsStatus
Sessions and channel dataRead-only collector against the GA4 Data APIInboundMarketing tables in your instanceAvailable
Where it landsYour own Supabase Postgres projectNoneMarketing tablesAvailable
The explorerQuery, filter and drill in the marketing moduleInternalMarketing tablesAvailable
Niche scoreboard and KPI scorecardBuilt on the collected rowsInternalMarketing tablesAvailable
Channel economicsSpend beside leads and deals in one queryInternalMarketing tables, leads, dealsAvailable
Cost-per-lead tilePlanned view over the same dataNoneNoneOn the roadmap
Writing events or conversions into GA4Not built. The collector is read-onlyNoneNoneNot available

Mechanisms read from the SalesCrew integration table, September 2026. Google's own documentation is the authority on GA4 Data API quotas and on data sampling.

Setup

Twenty minutes, and one decision worth making carefully.

  1. 1

    Create read access

    Give the collector read access to the GA4 property. Read-only is enough because that is all it does.

  2. 2

    Store the credentials

    They go into your instance's Supabase Vault and are not displayed again. integration_set_key is the MCP twin.

  3. 3

    Pick the property and the date range

    The first pull backfills, the scheduled pulls keep it current. marketing_pull runs one on demand and marketing_pull_status shows how it went.

  4. 4

    Agree the channel names

    This is the decision that matters. GA4's channel grouping and your own lead source values have to line up, or the join gives you two vocabularies for the same traffic.

  5. 5

    Check freshness before you trust a number

    marketing_freshness says how current each source is. Search Console in particular lags by a couple of days, so a fresh dashboard is not the same as a complete one.

  6. 6

    Read it from the explorer or from an agent

    The marketing_* tools return the same rows the explorer shows, so an agent can answer a question about spend without a screenshot.

Questions

Does this replace GA4?
No, and it should not. GA4 stays your web analytics tool. The collector copies what you need into the database where the pipeline lives so the two can be joined.
Does SalesCrew send conversions back to Google?
No. The collector is read-only. Sending conversions into Google Ads is something you set up in your own tag configuration.
How current is the data?
It depends on the source, which is why freshness is a visible field rather than an assumption. Check marketing_freshness before quoting a number in a meeting.
Which tier has the marketing module?
Agency at $1,200 a month carries the marketing module along with marketplaces, data sources and all agents. Seats are unlimited on every tier.
Can an agent analyse it for me?
It can read the same rows through the marketing tools. Treat the answer as analysis over your data rather than as a separate source of truth.

Put sessions next to deals in one database

One collector, one schema, and a cost-per-lead question you can answer with SQL.

An admin approves every new account by hand. Nothing is created until then. We reply by email; no newsletter, no sequence.