NEUAGEOPS
Standard Operating Procedure
Internal Use Only
Sales & Marketing Automation

5-Day Lead Outreach Campaign Salesforce Flow Build Guide

How to build the automated SMS nurture sequence that works new leads over five days and drives them to book an initial consultation with a NEUAGE sales rep — orchestrated in Salesforce, delivered through RingCentral.

Platform
Salesforce Flow + RingCentral SMS
Objective
Book initial consultations
Cadence
5 touches · reply-aware
Owner
Operations / RevOps
00

Verify Before You Build

Two details are specific to your org and version of the RingCentral managed package. Confirm both before building — the rest of this guide assumes them.

1
The RingCentral Send SMS Flow action label
RingCentral now supports SMS actions inside Salesforce Flows. In Flow Builder, add an Action element and search for the RingCentral send-SMS action (label varies by package version). Confirm its required inputs — typically a To number, Message body, and your messaging-enabled From number.
2
The object where inbound replies are logged
RingCentral most commonly logs incoming SMS as a Task (Activity) tied to the Lead, but some configs use a custom message object. Confirm the object and the field that stores the message body — that object is the trigger for Flow 3, and the body field feeds the classifier.
01

System Overview

Don't try to run a 5-day, branching, reply-aware campaign in one Flow. The reliable pattern is three cooperating Flows plus a small set of custom fields on the Lead that act as the campaign's memory — letting any Flow pick up exactly where the last one left off.

Flow 1
Enrollment
Record-Triggered · fires when a Lead is flagged Enrolled. Sends Day 1, starts the clock.
Flow 2
Daily Cadence
Schedule-Triggered · runs each morning. Sends Days 2–5, resumes snoozed leads, closes out non-responders.
Flow 3
Reply Classifier & Router
Record-Triggered · fires on every inbound reply. Runs the prompt, routes the lead.

The campaign's memory lives in these Lead statuses:

Enrolled In Progress Booked Not Interested Snoozed Completed – No Response
02

Custom Fields to Create First

Add these to the Lead object before building any Flow. They give every Flow shared state and make the funnel reportable.

API NameTypePurpose
Campaign_Status__cPicklistEnrolled · In Progress · Booked · Not Interested · Snoozed · Completed – No Response
Campaign_Day__cNumber (0–5)Which touch the lead is on
Next_Touch__cDateDate the next message is due (the daily Flow controls the send hour)
Snooze_Until__cDateWhen a snoozed lead re-enters the cadence
Last_Reply_Intent__cTextStores the classifier's output for visibility and reporting
Last_Inbound__cDate/TimeTimestamp of the most recent reply
03

Flow 1 — Enrollment

Type Record-Triggered (after-save)· Object Lead· Entry Campaign_Status = Enrolled AND MobilePhone ≠ null

Using a status flip as the entry point lets you control exactly when a lead is pulled into the campaign — set Enrolled manually, by list, or from an upstream intake Flow.

  1. AssignmentInitialize Campaign
    Set Campaign_Status__c = In Progress, Campaign_Day__c = 1, and Next_Touch__c = TODAY() + 1.
  2. ActionRingCentral — Send SMS
    To = {!$Record.MobilePhone}; Message = your Day 1 copy (reference {!$Record.FirstName} in a text template).
  3. Update RecordsSave the Lead
    Write the three field values from Step 1 back to {!$Record.Id}.
04

Flow 2 — Daily Cadence

Type Schedule-Triggered· Frequency Daily ~9:00 AM· Scope Campaign_Status IN (In Progress, Snoozed)

The scheduled run-time sets your send hour, so it stays within quiet hours automatically. The Flow runs once per matching Lead, with that Lead as {!$Record}.

  1. DecisionWhat's due today?
    Branch on four outcomes: Resume Snooze (Snoozed AND Snooze_Until ≤ TODAY()) · Send Next Touch (In Progress AND Next_Touch ≤ TODAY() AND Campaign_Day < 5) · Final Exhausted (In Progress AND Campaign_Day ≥ 5 AND Next_Touch ≤ TODAY()) · Default (do nothing).
  2. Resume SnoozeRe-engage
    Assignment: Status = In Progress, Next_Touch = TODAY() + 1 → Send SMS (re-engagement copy) → Update Records.
  3. Send Next TouchAdvance the sequence
    Assignment: Campaign_Day = Campaign_Day + 1, Next_Touch = TODAY() + 1 → sub-Decision "Which Day Message" branching on the new day value (2, 3, 4, 5), each routing to its own Send SMS action → Update Records.
  4. Final ExhaustedClose out & hand off
    Assignment: Status = Completed – No Response → Create Records: a Task to the sales queue ("5-day campaign complete, no booking — manual review") → Update Records.
05

Flow 3 — Reply Classifier & Router

Type Record-Triggered (after-save)· Object Inbound SMS (Task / custom — see §00)· Entry Inbound SMS related to a Lead

This is where your Einstein Prompt Template lives. It runs on every reply, independent of the daily schedule — so a "yes" at 11 PM on Day 2 is actioned immediately, not at the next checkpoint.

  1. Get RecordsLoad the Lead
    Pull the related Lead so you have current campaign fields and the mobile number.
  2. DecisionOpt-Out Check (before the AI)
    If the body contains STOP / UNSUBSCRIBE / CANCEL → set HasOptedOutOfSms = True, Status = Not Interested, and end. Never let the classifier decide opt-outs — this is a compliance guardrail.
  3. LoopAssemble the Conversation
    Get all SMS records for this Lead sorted by date, then concatenate them into a single text variable (varConversation) — the prompt expects the full thread in {!$Input:Conversation}. (If RingCentral already stores the whole thread in one field, skip this and pass that field directly.)
  4. ActionPrompt Template — Classify
    Call your classifier with Conversation = {!varConversation} and the Lead. Store the returned phrase in varIntent.
  5. AssignmentRecord the intent
    Set Last_Reply_Intent__c = {!varIntent} and Last_Inbound__c = NOW().
  6. Formula + DecisionRoute the intent
    Map the phrase to a category with a Formula resource, then branch on the category (see §06) rather than maintaining 24 separate branches.
  7. Update RecordsApply the outcome
    Write the Lead changes. Flow 2 respects the new status on its next run.
06

Intent Routing Map

This translates the 24 approved classifier phrases into Flow outcomes. Group them into these six categories in your Decision element.

Classifier OutputOutcomeStatusTiming
Open for Appointment Notify / assign sales rep, create Task to call & book, halt cadence BOOKED Immediate
No interest (all DQs, hard nos, wrong number) Suppress, halt cadence NOT INTERESTED Immediate
Not a good time · Now's not ideal · Timing isn't great · Not today · Busy / swamped · Tied up · Thanks but not right now Stay in cadence, push next touch IN PROGRESS +1 day
Check back in a few days Pause cadence SNOOZED +3 days
Try me again in a bit · Follow up later Pause cadence SNOOZED +5 days
Reach out next week · Connect down the road · I'll revisit soon Pause cadence SNOOZED +7 days
Hit me up next month · Maybe in the future Long pause SNOOZED +30 days
I'll think about it · Still thinking · On the fence · Decide later · Get back to you · Reach out if I decide · Need to think it through · Talk to spouse · Ask my doctor Soft nurture nudge, pause SNOOZED +4 days
No response from lead Continue cadence as normal IN PROGRESS Next scheduled day

When a snoozed lead's date arrives, Flow 2 drops them back to In Progress and resumes from the warm re-engagement message — not back at Day 1.

07

SMS Cadence Copy

Drafted to stay on-brand and compliant. The first message identifies the sender and includes the opt-out, which carriers require.

Day 1 — Introduction
Hi {FirstName}, this is Rocky with NEUAGE Health + Wellness. You recently expressed interest in optimizing your health — I'd love to set up a quick consult with our team. Do you have a few minutes this week? Reply STOP to opt out.
Day 2 — Value
Hi {FirstName}, just following up from NEUAGE. Our consultations are complimentary and built entirely around your goals. Would mornings or afternoons work better for you?
Day 3 — Address hesitation
{FirstName}, a lot of our patients tell us they wish they'd started sooner. Happy to answer any questions before we book — what's holding you back right now?
Day 4 — Scarcity
Hi {FirstName}, I don't want you to miss your window. We have a few consultation slots opening up this week. Want me to hold one for you?
Day 5 — Graceful close
{FirstName}, this is my last check-in for now. If the timing isn't right, no problem — just reply and let me know when to circle back, and I'll keep your info on file.
Re-engagement — after a snooze
Hi {FirstName}, Rocky with NEUAGE again — you'd asked me to reach back out. Still interested in setting up that consultation?
08

Compliance & Go-Live Checklist

!
Do not skip A2P 10DLC registration
Confirm your A2P 10DLC brand and campaign registration is complete with RingCentral before going live. Without it, automated outbound SMS will be filtered or blocked by carriers.
  • A2P 10DLC brand & campaign registered and approved with RingCentral.
  • The two §00 details confirmed: Send SMS action label and inbound-SMS object/field.
  • All six custom fields created on the Lead object.
  • Quiet hours enforced — no sends before 8 AM or after 9 PM in the lead's local time.
  • Opt-out path writes to a field your Send SMS step actually checks, so an opted-out lead can never re-enter Flows 1 or 2.
  • STOP / opt-out branch sits ahead of the AI classifier in Flow 3.
  • Booked outcome notifies a real sales rep / queue with a call-and-book Task.
  • End-to-end tested with a live test lead through all branches before enabling at scale.