Meta overview
How Facebook & Instagram ads connect to the CRM — who does what, where everything lives, and how the pieces fit together.
Meta overview
Facebook and Instagram are where many businesses win their leads — and where money quietly leaks: forms that fail, pages that reject leads, campaigns that spend without producing. Zodiac Tech CRM connects your Meta world (pages, lead forms, ad accounts) directly to the CRM, so a form submission becomes a lead with an owner in seconds.
This page is the map. The other marketing guides go deep on each area.
Who this is for
-
Business owners (clients) — see what ads produce without asking the agency for a spreadsheet.
-
Admins — connect Meta, choose pages and forms.
-
Ad specialists — run campaigns, creatives and QA.
-
Difficulty: Easy
-
Time: 8 minutes to understand the layout
-
Prerequisites: None to read. Connecting needs admin access and a Meta login with access to your business's pages.
The three surfaces
Meta work touches three different panels. Knowing which one you are in saves confusion:
| Surface | URL | Who works there | What it does |
|---|---|---|---|
| Tenant CRM | /admin |
Your team | Connect Meta, choose pages/forms, see ad results, approve creatives, build campaign drafts. |
| Agency console | /agency |
Account managers, ads specialists, creative/QA/support staff | Run the ads service: setup queue, QA, active campaigns, client support. |
| Super Admin | /super-admin |
Platform owner | The platform's Meta app credentials, all clients, health/issues oversight. |
If you are a client: your day-to-day is the tenant CRM's Ads group — [Ads overview dashboard, Campaign drafts, Creative approvals]. If an agency runs your ads, the agency console is their workspace; you will see the outputs in your CRM and receive creatives for approval.
What the connection gives you
- Lead delivery — Facebook/Instagram lead-form submissions land in the CRM as leads with source, campaign, ad and form details attached (see Meta lead capture pipeline).
- Ad results next to sales results — the Ads dashboard shows 30-day spend, impressions, clicks, leads, cost per lead, qualified leads, appointments, sales and ROAS, per campaign. Numbers are deterministic database aggregates, not estimates.
- A governed workflow — campaigns are drafted in the CRM, approved by the client, QA-checked and launched paused by a QA reviewer (see Campaigns).
- Honest health monitoring — connections are pinged every 6 hours, and a scanner flags problems (cost spikes, dead connections, zero-lead campaigns) so nothing silently breaks (see Ads health & needs attention).
The tenant Ads group (what you see in /admin)
| Menu item | Where | What it is |
|---|---|---|
| Ads → Overview | /admin/ads-dashboard |
30-day performance summary + per-campaign table. Shown to managers and above. |
| Ads → Campaigns | /admin/meta-campaign-drafts |
Draft campaigns built from a brief — nothing is sent to Meta until approved and QA-passed. |
| Ads → Creative Approvals | /admin/creative-approvals |
Where you approve or request changes on ad creatives. |
| Settings → Connections | /admin/lead-source-connections |
Connect Meta, pick your Page and Ad Account, manage lead forms. |
| Settings → Meta (super admin only) | /super-admin/...meta developer settings |
Platform-level Meta app credentials — one app for the whole platform; tenants never type credentials. |
Steps: see what your ads produced (client)
- Open Ads → Overview.
Expected result: last-30-day numbers: what was spent, how many leads arrived, what they cost, and how many became appointments or sales. Until Meta is connected, a friendly empty state explains how to connect.
- Scroll to the campaign table and open a lead list filter for a campaign to see the actual people.
Expected result: you move from "the ads cost X" to "here are the leads and what they became".
Steps: connect Meta (admin)
- Go to Settings → Connections, find the Meta source, and click Connect.
- Sign in to Facebook and accept the permissions (this grants access to your Pages, their engagement, and ad management for the pages you pick).
- Back in the CRM, Select Page from the pages the system found, and repeat for the ad account where your campaigns live.
Expected result: the connection turns active; lead forms become available for selection; health checks begin. Full detail in OAuth & permissions.
Expected result
Announcements of where everything lives: your team connects and monitors, the agency runs ads, and the numbers land where the work happens. No spreadsheets, no copy-pasting leads.
Common mistakes
- Trying to add Meta credentials as a client. You cannot and should not — the platform app handles authentication; you only grant permission to your Pages.
- Connecting with a personal Facebook account that lacks Page access. Ask a Page admin to grant access first.
- Confusing the Ads Overview with Meta Ads Manager. The CRM shows your agreed metrics and CRM outcomes; Ads Manager remains Meta's own tool.
- Running campaigns outside the workflow. If a campaign was never drafted in the CRM and QA-passed, it cannot be launched through the agency console — that gate is deliberate.
Troubleshooting
| Symptom | Fix |
|---|---|
| Overview is empty | No Meta connection yet, or the daily ad-metrics sync has not run — see Cron & queue workers. |
| No lead forms to select | The connected Page has no Instant Forms, or the connection needs re-authorising — see Meta won't connect. |
| Numbers differ from Ads Manager | Attribution in the CRM counts CRM leads tied to the ad; Meta counts its own attributed results. Both can be right; the CRM is the one showing outcomes. |
Technical details
- Platform app:
App\Settings\MetaSettings— app id/secret (encrypted) and environment (development/production), configured in Super Admin → Settings → Meta Developer. Tenants never store credentials for the OAuth flow; per-connection credentials exist only for backwards compatibility. - Tenant connect:
App\Http\Controllers\OAuthConnectionController(providers meta / instagram / tiktok / linkedin / google_ads / microsoft_ads; state-verified callbacks). Connection data:lead_source_connections.credentials(page list, chosen page, token). - Ingest:
App\Http\Controllers\InboundWebhookController→App\Services\LeadSources\MetaConnector→MetaLeadFormService(field mapping + form allowlist). - Health/sync:
leadhub:meta-healthevery 6 hours;leadhub:sync-meta-adsdaily 04:30 (last 30 days →MetaInsight); ops scanleadhub:meta-ops-scanevery 30 minutes +leadhub:meta-ops-brief07:15. - Metrics:
App\Services\MetaAds\MetaAdsMetrics(spend, CPL, CPL-qualified, appointments, sales, revenue, ROAS), attribution vialeads.meta_ad_id→meta_ads→meta_adsets→meta_campaigns.
Related guides
- OAuth & permissions — the connection walkthrough.
- Meta lead capture pipeline — how a form submission becomes a lead.
- Campaigns — the draft → approve → QA → launch workflow.
- Agency panel (Meta Ops) — the team running ads for you.
- Ads health & needs attention — the monitoring layer.
Was this page helpful?
Thanks — noted. ✦