Uprise SOP Β· Outbound

Audit-First Outreach β€” the alternative to cold calling

Match the size of your ask to the temperature of the relationship.

source: notes/audit-first-outreach-method.mdcreated 2026-07-24

🌑️ The framing principle: COLD vs WARM offers (Rio's learning 7/24)

Match the size of your ask to the temperature of the relationship.


Ingested 2026-07-24 from "I've Made Thousands of Cold Calls. Here's Why I Stopped And What I Do Instead." A HighLevel promo, but the method is gold and it maps exactly onto Rio's stack β€” he's already on GHL and already ran the Prospecting Tool tonight (the wrap + logistics lists). This is the next-level version of what he's doing: stop dialing cold, lead with a specific audit.

The core insight

Cold calling feels bad (and converts low) not because of nerves or a weak script, but because you show up with nothing but a pitch. You ask for time before you've given anything. The fix: show up already knowing something specific about them β€” a real problem you found before you said a word. That flips the energy from "who is this?" to "what did they find?"

The 3-step system

Step 1 β€” Find the problem BEFORE you reach out

Audit each business fast (Google Maps or GHL Prospecting Tool β€” Rio has both):

Step 2 β€” Lead with what you found (the message β€” save word-for-word)

Hey [name]. I was searching for [business type] in [city] and came across your business. You've got some solid reviews. I noticed a few things on your Google listing that might be costing you calls though. I put together a quick breakdown if you'd like to see it. No charge, no strings attached. Just thought it might help. Is it okay to send it over?

No pitch, no service mention, no meeting ask. Just proof you paid attention. Single-to-double-digit response rate vs. ~0 for generic "I help businesses get more leads." Works on any channel β€” SMS, email, DM, or as a call opener. Specificity + prior research matters more than the channel.

Step 3 β€” Follow up like a human (3-4 msgs, few days apart, each ADDS something)

Hey [name], forgot to mention, one of the fastest things I've seen work for [business type] is an automated review request that goes out after every job. I talk about that in the breakdown. Want me to send it over?

Hey [name], I know salespeople are the worst, so I get it if you'd like me to stop. That said, I'd hate for you to miss out on what I found just because I didn't send one more message. Still happy to send it over if you want.

Hey [name], before I close your file, I just wanted to check one last time. If you're not interested, no worries at all, I won't reach out again. But if the timing's just been off, I'm still happy to send over what I found.

When they reply "send it over"

Send the audit, walk them through it, then pick ONE problem and offer to fix it (not all β€” avoids paradox of choice). One problem β†’ one solution β†’ one price. Then stack more once the first is working and they can see results.

The offer stack in the video (a DIFFERENT model β€” consider, don't blindly adopt)

Productized recurring services, not project builds:

How this plugs into what Rio built tonight

πŸ“² BUILT-FOR-SMS: the 4-message drip (wrap list) β€” adopted 7/24

Rio's channel call 7/24: content + SMS/text + ringless voicemail, go all-in doing the work. First drip = audit-first, for wrap-dial-0724 (fits local/Google-driven shops; logistics needs its own angle β€” direct-shipper hook, build separately).

GHL workflow shape: Trigger = contact tag audit-drip added β†’ Send SMS 1 β†’ Wait 1 day β†’ Send SMS 2 β†’ Wait 3 days β†’ Send SMS 3 β†’ Wait 3 days β†’ Send SMS 4 β†’ End. Workflow Settings β†’ "Stop on Response" = ON (reply halts msgs 2-4). Sends from the (954) A2P line. Batch the enrollments.

⚠️ RULE: NO pitch, NO company intro ("Uprise"), NO "I help businesses" anywhere. Lead with the specific observation, offer free value, ask only for permission to send. The pitch comes ONLY after they reply and you send the breakdown. ⚠️ SPECIFICITY IS THE ENGINE (Rio's call 7/24): msg 1 must name the ACTUAL business + the ACTUAL specific reason for THAT shop. Generic "a few things on your listing" is weaker. Achieved at scale via merge fields + one custom field.

The mechanism β€” specificity at scale:

  1. Custom field on Contact: audit_note (text) = the one specific finding for that business.
  2. Audit the business (GHL Prospecting Tool or Google Maps) β†’ drop the finding into audit_note, e.g. "you've got solid reviews but haven't replied to any in months" / "there's no website linked to your Google listing" / "your listing's light on photos vs the shops ranking above you."
  3. Tag audit-drip β†’ msg 1 fires, naming them + the exact problem.
  4. {{contact.company_name}} and {{contact.audit_note}} are the merge fields. The audit work up front IS the method β€” no blind blast.

LOCKED COPY (finalized 7/24 β€” no em dashes, tightened, Rio's voice). Build from these verbatim.

⚠️ Msg 2 note: the review-automation nugget is a free tip, not tied to audit_note. If a shop's finding was already about reviews, msg 2 double-hits them β€” for those contacts, pick a non-review audit_note (photos, no website, listing gaps).

πŸ”“ REPORT-GRADE audit_notes from the API (cracked 7/24 β€” the scalable pipeline)

The GHL Prospecting "Marketing Audit Report" (analyzemy.business) data is pullable from a public, no-auth API using the share link's report id:

Pipeline: Rio copies share links from the Prospecting Tool β†’ paste to Claude β†’ /tmp/amb_oneliner.py <link…> fetches each + emits ranked sharp one-liners β†’ pick top β†’ push into GHL audit_note (field id 2p2e4wGNIFbDlGPf7kQN, format [{"id":...,"field_value":...}]). Report-grade > website-scrape because the tease matches the breakdown the prospect opens, and it's real numbers (e.g. RB VIP: "123 five-star reviews, replied to only ~1/3").

Why not fully native: GHL sends the report natively (report-link token / "Generate Marketing Audit Report" action), but has NO merge field that distills one specific finding into a sentence β€” that distillation is the custom edge (Rio's 7/24 specificity rule). This API pipeline automates it.

Build via GHL AI builder (same as the txt-back workflow) β€” paste prompt:

When a contact is tagged "audit-drip", send them an SMS, then wait 1 day and send a second SMS, then wait 3 days and send a third SMS, then wait 3 days and send a fourth SMS. If the contact replies at any point, stop the workflow so they get no more messages. Then paste the 4 messages into each Send SMS step, and turn ON Stop-on-Response in workflow Settings.