Meta Ads + SalesCrew
Spend and campaign performance from the Meta Ads API, collected read-only into the database that holds your leads. Lead forms and Instagram DMs are a separate question, answered below.
- Read-only collector
- Spend beside leads
- Lead forms not connected

The short answer
- What ships: a read-only collector pulling Meta Ads spend and campaign data into the marketing tables in your own Postgres project.
- What does not ship: Meta lead forms and Instagram or Facebook direct messages. Both are later roadmap items, so a business that runs on Instagram DMs should read this before deciding anything.
- Until lead forms are connected, the honest path for a Meta lead is a webhook or an automation tool posting into your instance's inbound endpoint, which lands the lead with its source recorded.
Mechanism
One row available, and two absences that matter more than the presence.
| What | Mechanism | Direction | Objects | Status |
|---|---|---|---|---|
| Spend and campaign data | Read-only collector against the Meta Ads API | Inbound | Marketing tables in your instance | Available |
| Channel economics | Spend joined to leads and deals in one database | Internal | Marketing tables, leads, deals | Available |
| Meta lead forms | Not connected | None | None | Later on the roadmap |
| Instagram and Facebook direct messages | Not connected | None | None | Later on the roadmap |
| Leads from Meta today | Webhook or automation tool into the inbound endpoint | Inbound | Leads, contacts | You configure it |
| Changing budgets or campaigns | Not built and not planned. Spend is human-only | None | None | By design |
Mechanisms read from the SalesCrew integration and roadmap tables, September 2026. Meta's own documentation is the authority on Marketing API access and permissions.
Setup
The collector is quick. Getting leads in takes the thought.
- 1
Grant read access to the ad account
The collector reads spend and campaign performance. It cannot change a campaign, and no agent can either.
- 2
Store the credentials
They go into your instance's Supabase Vault and are never shown again after entry.
- 3
Backfill, then schedule
marketing_pull runs one on demand; the scheduled pulls keep the tables current.
- 4
Decide how leads arrive
With lead forms unconnected, route them through your website form, a webhook, or an automation tool calling the inbound endpoint.
- 5
Record the source on every lead
Without a source, spend and leads sit in the same database and still cannot be joined. This is the step that makes the collector worth having.
- 6
Set a sample floor
Agree the minimum spend or clicks you will judge a campaign on, and write it down before the first review rather than during an argument.
Questions
- Can I get Meta lead form submissions into SalesCrew?
- Not with a built connector. Meta lead forms are a later roadmap item. Today you would post them in through a webhook or an automation tool, which works but is your setup rather than a supported feature.
- What about Instagram DMs?
- Not connected, and worth saying plainly to anyone whose leads arrive that way. Meta and Instagram direct messages sit later on the roadmap.
- Can an agent pause a campaign that is wasting money?
- No. Every action that spends money is human-only under the default policy. An agent can show you the numbers and can create a task about it.
- Does it collect Instagram ad spend?
- Ad spend collected from the Meta Ads API covers the placements that account reports on. Google Ads, Microsoft Ads and PostHog are collected the same way into the same tables.
- Which tier has the marketing module?
- Agency at $1,200 a month, with unlimited seats.
Collect the spend, and be honest about the leads
Read-only campaign data today, with lead forms and DMs written on the roadmap.