Google Ads + SalesCrew

Spend, clicks and campaign performance collected into the same database as the leads they produced. Read-only, by design: nothing here touches a budget.

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

  • Read-only collector
  • Spend beside leads
  • No agent touches a budget
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. Campaign, cost and click data lands in your own Postgres project on a schedule.
  • SalesCrew does not change bids, budgets or campaigns, and no agent can. Spend and anything outside the CRM is human-only under the default policy table, which is a deliberate line rather than a missing feature.
  • What you get for it is channel economics: ad spend in the same tables as leads and deals, so cost per lead and cost per booked meeting by campaign is a query.

Mechanism

One direction only, and the second row is the important one.

WhatMechanismDirectionObjectsStatus
Spend, clicks and campaign dataRead-only collector against the Google Ads APIInboundMarketing tables in your instanceAvailable
Changing bids, budgets or campaignsNot built and not planned. Spend is human-onlyNoneNoneBy design
Channel economicsSpend joined to leads and deals in one databaseInternalMarketing tables, leads, dealsAvailable
Paid versus organic viewmarketing_paid_organic over the collected rowsInternalMarketing tablesAvailable
Cost-per-lead tilePlanned view over the same dataNoneNoneOn the roadmap
Sending offline conversions to GoogleNot builtNoneNoneNot available

Mechanisms read from the SalesCrew integration table, September 2026. Google's own documentation is the authority on Ads API access levels and quotas.

Setup

Half an hour, most of it spent agreeing what a channel is called.

  1. 1

    Grant read access

    The collector needs read access to the Ads account. It asks for nothing that could change a campaign.

  2. 2

    Store the credentials

    In your instance's Supabase Vault, never displayed again after entry.

  3. 3

    Backfill and schedule

    marketing_pull runs a pull on demand; marketing_pull_status shows what happened on the last one.

  4. 4

    Align campaign names and lead sources

    This is the whole job. If the campaign name and the lead source do not share a vocabulary, the join is guesswork with a nice chart on top.

  5. 5

    Set a sample floor before you judge anything

    A campaign with a handful of clicks tells you nothing. Decide the minimum you will act on and write it down.

  6. 6

    Read it from the explorer or an agent

    marketing_breakdown, marketing_kpis and marketing_timeseries return the same rows the explorer shows.

Why an agent cannot spend your money

The default policy table puts every action that spends money, including ad budgets and credits, in the human-only class. That is not a limitation waiting to be lifted. An agent that can read the data and cannot move the budget is the correct arrangement.

Questions

Can SalesCrew optimise my campaigns?
No, and it is not designed to. It reads the data. Changing a bid or a budget stays a human action in the Google Ads interface.
Does it push offline conversions back?
No. Sending conversions to Google is something you configure in your own tag and conversion setup.
How do I get accurate cost per lead?
Land the lead with its source, keep the campaign naming consistent, and join in the database. The mechanism is simple; the discipline about naming is the part people skip.
Does Microsoft Ads work the same way?
Yes. Bing and Microsoft Ads data is collected the same read-only way into the same marketing tables.
Which tier includes this?
The marketing module is on Agency at $1,200 a month. Seats are unlimited on every tier.

See spend and pipeline in one query

Read-only collection, consistent naming, and a budget no agent can touch.

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