LeadPulse

AGENCYMODE
Loading

Viewing

Reporting window

PHYNYX company stats· agency view

Revenue, retention, margin & portfolio health — the agency's own numbers, not client campaign stats.

Demo data
MRR (managed revenue)

$184.5K

Retainers + management fees

+6.2%
Spend under management

$1.2M

Total client ad spend controlled

+9.1%
Avg revenue / client

$3,618

MRR ÷ active clients

+2.4%
Gross margin

58%

Revenue − media − delivery labor

+1.8pts
Active clients

51

Currently managed

+3 net
Net client growth

+3

New − churned this month

+5 new / −2 churn
Churn rate

3.9%

Lost this period

−0.6pts
Revenue concentration

34%

Top 10 clients as % of MRR

stable

Revenue by niche

Chiropractic$53.2K · 14 clients
Regenerative$38.4K · 9 clients
Weight loss$29.8K · 8 clients
TRT / Hormone$24.1K · 7 clients
Med spa$18.9K · 6 clients
Other$20.1K · 7 clients

Client health distribution

Healthy38
At-risk8
Paused3
Churned2

38 healthy · 8 at-risk · 3 paused · 2 churned this quarter

Cohort retention

CohortStartedRetainedRate
Q1 20259778%
Q2 202511982%
Q3 2025131185%
Q4 2025151493%

New business pipeline

1Leads in28
2Discovery calls12
3Proposals sent7$26.8K
4Won3$11.4K

Win rate 43% · avg deal $3,800

Showing placeholder figures · agency financials (revenue, margin, churn, pipeline) need a PHYNYX-internal source to go live.

Alerts & recommendations· agent

Scanning the live payload…

Support tickets & tasks· 4 items

Loading tickets…

Not connected

Showing demo tickets · connect the support desk in Settings → Tokens & integrations for live items.

GHL vs paid channels

CRM paid leads vs Meta paid-media leads - where they disagree and how to reconcile.

Paid-media leads0CRM paid leads0
Connect live data & Slack

Walkthrough to attach the CRM agency account + Meta, then wire Slack for notifications. No sub-accounts mapped yet.

CRM agency account

Appointments, confirm/show rates, sign-ups

Not connected
  1. 1

    Create a private-integration app

    In the CRM Agency view, create a private-integration app (or a marketplace app) and grant it access to the agency so it can list every sub-account location.
  2. 2

    Copy the agency access token

    Copy the agency (company) access token the app generates. This one token lists locations and reads appointments/opportunities for each.
  3. 3

    Store it as a server secret

    Add it as a secret named CRM_API_TOKEN. The server reads it inside each call (call-time) — it never reaches the browser.
  4. 4

    Confirm calendar statuses

    The funnel counts “confirmed” and “showed” appointments — confirm your location calendars use statuses the agent recognises (CRM_CONFIRMED_STATUSES, CRM_SHOW_STATUSES).

Meta Marketing API

Spend, CPL, CTR, paid-media leads

Not connected
  1. 1

    Create a Meta system user

    In Meta Business Manager, create a system user with ads_read on the ad accounts, then generate a long-lived token.
  2. 2

    Store the token + app secret

    Add the long-lived token as META_ACCESS_TOKEN and the app secret as META_APP_SECRET (used for the appsecret_proof on every call).
  3. 3

    Map each client's ad account id

    For each sub-account, set the real ad account id in the form act_<digits>. The id itself isn't a secret — placeholder display names in the roster are skipped as “not connected.”
  4. 4

    Verify lead action types

    Leads come from the actions array on ad insights — confirm your campaigns emit a lead action type the agent counts (e.g. lead, offsite_conversion.fb_lead_add).

Slack

Alerts & notifications

Not connected
  1. 1

    Create a Slack incoming webhook

    In a Slack app (or via the Incoming Webhooks feature), enable incoming webhooks and pick the channel LeadPulse should post to.
  2. 2

    Store the webhook URL

    Copy the webhook URL and add it as a secret named SLACK_WEBHOOK_URL. The server posts alerts to that URL.
  3. 3

    Send a test notification

    Use the Send test notification button below — it posts one message so you can confirm the channel is wired.

Slack notifications

Add SLACK_WEBHOOK_URL to enable alert notifications.

Secrets are read on the server only and never reach the browser. The CRM agency token lists every sub-account live, so the client switcher reflects the real roster the moment it's connected.