Salesforce Use case · Marketing · Campaign

Run a message sequence that stops when someone replies.

A scheduled flow walks each contact through the steps, a reply ends the sequence and hands the person to a human, and every message is on the record. The whole thing is Salesforce automation, not a second marketing tool.

ObjectContact, Lead or Campaign Member
Fires onA daily sweep of who is due the next step
Reply landsTask on the record, sequence stopped
ChannelSMS, or WhatsApp where a template applies
01 · What quietly breaks

A sequence that keeps sending after someone answers is worse than no sequence.

The failure is not the copy. It is that the person replied on day three and step three still went out on day five, addressed to someone the sender had already spoken to. Every recipient learns from that exactly how automated the attention was.

It happens because the sequence lives outside the CRM. The tool that sends does not know about the reply, the call or the closed deal, so it keeps counting days.

The second failure is quieter. When the messages are held somewhere else, the record shows a contact who was messaged four times and no trace of what was said.

02 · The idea

Put the sequence where the reply lands. If the same system holds the step counter and the inbound message, stopping is a decision element rather than an integration.

03 · The pattern

Three parts, and the stop condition is the one that matters.

A field for the step, a scheduled flow that advances it, and a rule that ends the sequence on any sign of life. Build the stop first.

01

Hold the step on the record

A step number and a next-send date on the Contact or the Campaign Member. Because they are fields, anyone can see where a person is in a sequence by opening the record, and a report can show you the whole cohort at once.

It also means a person can be pulled out by hand, which is the thing everyone eventually needs to do.

In Salesforce FieldsSequence_Step__c, Next_Send_Date__c, Sequence_Status__cSet onEntry to the campaignStatusesActive, Replied, Completed, StoppedVisible onThe record, and in any report
02

Advance it on a schedule, one step a day at most

A daily scheduled flow collects everyone whose next send date is today and whose status is still Active, sends that step's template, and moves the counter on.

One flow runs every sequence. A new campaign is rows of data and a template set, not another flow to maintain.

In Salesforce Flow typeSchedule-triggered, dailyEntrySequence_Status__c = Active AND Next_Send_Date__c = TODAYActionSend Message, then increment the stepGuardrailThe shared subflow runs before every send
03

Stop on any reply, and hand the person over

An inbound message sets the status to Replied, which takes the record out of tomorrow's collection, and raises a Task for the owner with the thread attached.

Widen the stop conditions as you learn: a booked meeting, a closed opportunity, an opened case. Anything that means a human is already engaged should end the sequence, and each one is a line in the same decision.

In Salesforce TriggerInbound message on a record with Sequence_Status__c = ActiveSetsSequence_Status__c = RepliedCreatesTask for the record owner, thread attachedAlso stop onMeeting booked, Opportunity closed, Case opened
Fig 01 · Campaign: Q4 onboarding · Ana Duarte
Hi Ana, you set up your account last week but have not sent a message yet. The five minute setup guide is the fastest way in, and I can send the link.
Sent Day 3 09:00 · step 2 of 4 · template Onboarding_Nudge
Yes please. I got stuck on connecting our number.
Received Day 3 09:14 · sequence STOPPED · Task on Contact
Sending it now. Connecting a number is the step most people stop on, so I will stay on this thread until yours is through.
Sent Day 3 09:20 · sent by the CSM from the Converse view
04 · Replies and exceptions

Every reply ends the sequence. That is the design, not an exception.

There is no branch where a person who answered keeps receiving scheduled messages. What varies is who picks it up.

ReplyWhat happensWhere it lands
Interested Sequence stops, Task for the owner, thread open in the Converse view with every step already sent visible. Sequence_Status__c = Replied
"Not now" Sequence stops and the record is marked for a later cohort rather than resumed. Resuming a paused sequence is how people get messaged twice about the same thing. Sequence_Status__c = Stopped
A question Sequence stops. A person answers, because the point of the sequence was to start this conversation. Task on the record
STOP Opt-out on the record, sequence ended, and every future campaign skips it. Contact.SMS_Opt_Out__c
05 · Guardrails

Four, and marketing consent is not the same as having a number.

ConsentMarketing consent, checked in the shared subflow before every step. A phone number on a record is not permission to run a campaign at it.
Quiet hoursEvaluated in the recipient's time zone. A sequence crossing time zones is the most common way an org sends at 03:00 without meaning to.
One step a dayThe scheduled flow sends at most one message per record per run, so two overlapping campaigns cannot stack on the same person.
Opt-out lineIn the first message of every sequence, not just the last. It fits in the segment.
06 · Reporting afterwards

Report on where people stop, not on how many were sent.

Because the step is a field, the sequence reports as a funnel. The step where replies dry up is the step to rewrite, and it is usually not the one anyone guessed.

Q4 onboarding · sequenceCampaign Members
StepSentRepliedStill active
1 · Welcome1,4201821,238
2 · Nudge1,238241997
3 · Guide99788909
4 · Last check90964845
REPLIEDRecords with an inbound message at that step. It is the only success measure here, because a send that starts no conversation did nothing.
STILL ACTIVERecords that carried on to the next step. The drop between two rows is where the sequence is losing people.
STOPPED EARLYRecords ended by a meeting, an opportunity or a case rather than a reply. Count them as wins, not as drop-off.
07 · Implementation note

Where ValueText fits.

ValueText is the send action and the inbound handler. It adds the Send Message invocable action to Flow Builder, writes every inbound message back to the record, and holds the templates and the org-level send window. The step fields, the scheduled flow, the stop conditions and the funnel report are yours, built with standard tools, and they keep working if you change the number or the carrier.

Professional edition or above · Marketing consent required, transactional exemptions do not apply · 1 SMS segment per step at the published per-country rate
AppExchange review

“One of the standout features for me is the customizable templates. They save me so much time, especially when I need to send similar messages to different recipients.”

Rajeswari Ramachandran Rajeswari RamachandranAppExchange review
This page sits underSMS for SalesforceThe channel page: how sending, receiving and billing work for SMS.
In the docs
01 Schedule Messages via Process Builder in SalesforceScheduled sends and the fields that drive them → 02 SMS Template CreationOne template per step, with merge fields → 03 Opt-Out and Opt-In Management in SalesforceWhere the opt-out lives and what honours it →

Run your messaging inside your CRM.

Rated 4.98 on Salesforce AppExchange
Salesforce Use case · Marketing · Campaign

Run a message sequence that stops when someone replies.

A scheduled flow walks each contact through the steps, a reply ends the sequence and hands the person to a human, and every message is on the record. The whole thing is Salesforce automation, not a second marketing tool.

ObjectContact, Lead or Campaign Member
Fires onA daily sweep of who is due the next step
Reply landsTask on the record, sequence stopped
ChannelSMS, or WhatsApp where a template applies
01 · What quietly breaks

A sequence that keeps sending after someone answers is worse than no sequence.

The failure is not the copy. It is that the person replied on day three and step three still went out on day five, addressed to someone the sender had already spoken to. Every recipient learns from that exactly how automated the attention was.

It happens because the sequence lives outside the CRM. The tool that sends does not know about the reply, the call or the closed deal, so it keeps counting days.

The second failure is quieter. When the messages are held somewhere else, the record shows a contact who was messaged four times and no trace of what was said.

02 · The idea

Put the sequence where the reply lands. If the same system holds the step counter and the inbound message, stopping is a decision element rather than an integration.

03 · The pattern

Three parts, and the stop condition is the one that matters.

A field for the step, a scheduled flow that advances it, and a rule that ends the sequence on any sign of life. Build the stop first.

01

Hold the step on the record

A step number and a next-send date on the Contact or the Campaign Member. Because they are fields, anyone can see where a person is in a sequence by opening the record, and a report can show you the whole cohort at once.

It also means a person can be pulled out by hand, which is the thing everyone eventually needs to do.

In Salesforce FieldsSequence_Step__c, Next_Send_Date__c, Sequence_Status__cSet onEntry to the campaignStatusesActive, Replied, Completed, StoppedVisible onThe record, and in any report
02

Advance it on a schedule, one step a day at most

A daily scheduled flow collects everyone whose next send date is today and whose status is still Active, sends that step's template, and moves the counter on.

One flow runs every sequence. A new campaign is rows of data and a template set, not another flow to maintain.

In Salesforce Flow typeSchedule-triggered, dailyEntrySequence_Status__c = Active AND Next_Send_Date__c = TODAYActionSend Message, then increment the stepGuardrailThe shared subflow runs before every send
03

Stop on any reply, and hand the person over

An inbound message sets the status to Replied, which takes the record out of tomorrow's collection, and raises a Task for the owner with the thread attached.

Widen the stop conditions as you learn: a booked meeting, a closed opportunity, an opened case. Anything that means a human is already engaged should end the sequence, and each one is a line in the same decision.

In Salesforce TriggerInbound message on a record with Sequence_Status__c = ActiveSetsSequence_Status__c = RepliedCreatesTask for the record owner, thread attachedAlso stop onMeeting booked, Opportunity closed, Case opened
Fig 01 · Campaign: Q4 onboarding · Ana Duarte
Hi Ana, you set up your account last week but have not sent a message yet. The five minute setup guide is the fastest way in, and I can send the link.
Sent Day 3 09:00 · step 2 of 4 · template Onboarding_Nudge
Yes please. I got stuck on connecting our number.
Received Day 3 09:14 · sequence STOPPED · Task on Contact
Sending it now. Connecting a number is the step most people stop on, so I will stay on this thread until yours is through.
Sent Day 3 09:20 · sent by the CSM from the Converse view
04 · Replies and exceptions

Every reply ends the sequence. That is the design, not an exception.

There is no branch where a person who answered keeps receiving scheduled messages. What varies is who picks it up.

ReplyWhat happensWhere it lands
Interested Sequence stops, Task for the owner, thread open in the Converse view with every step already sent visible. Sequence_Status__c = Replied
"Not now" Sequence stops and the record is marked for a later cohort rather than resumed. Resuming a paused sequence is how people get messaged twice about the same thing. Sequence_Status__c = Stopped
A question Sequence stops. A person answers, because the point of the sequence was to start this conversation. Task on the record
STOP Opt-out on the record, sequence ended, and every future campaign skips it. Contact.SMS_Opt_Out__c
05 · Guardrails

Four, and marketing consent is not the same as having a number.

ConsentMarketing consent, checked in the shared subflow before every step. A phone number on a record is not permission to run a campaign at it.
Quiet hoursEvaluated in the recipient's time zone. A sequence crossing time zones is the most common way an org sends at 03:00 without meaning to.
One step a dayThe scheduled flow sends at most one message per record per run, so two overlapping campaigns cannot stack on the same person.
Opt-out lineIn the first message of every sequence, not just the last. It fits in the segment.
06 · Reporting afterwards

Report on where people stop, not on how many were sent.

Because the step is a field, the sequence reports as a funnel. The step where replies dry up is the step to rewrite, and it is usually not the one anyone guessed.

Q4 onboarding · sequenceCampaign Members
StepSentRepliedStill active
1 · Welcome1,4201821,238
2 · Nudge1,238241997
3 · Guide99788909
4 · Last check90964845
REPLIEDRecords with an inbound message at that step. It is the only success measure here, because a send that starts no conversation did nothing.
STILL ACTIVERecords that carried on to the next step. The drop between two rows is where the sequence is losing people.
STOPPED EARLYRecords ended by a meeting, an opportunity or a case rather than a reply. Count them as wins, not as drop-off.
07 · Implementation note

Where ValueText fits.

ValueText is the send action and the inbound handler. It adds the Send Message invocable action to Flow Builder, writes every inbound message back to the record, and holds the templates and the org-level send window. The step fields, the scheduled flow, the stop conditions and the funnel report are yours, built with standard tools, and they keep working if you change the number or the carrier.

Professional edition or above · Marketing consent required, transactional exemptions do not apply · 1 SMS segment per step at the published per-country rate
AppExchange review

“One of the standout features for me is the customizable templates. They save me so much time, especially when I need to send similar messages to different recipients.”

Rajeswari Ramachandran Rajeswari RamachandranAppExchange review
This page sits underSMS for SalesforceThe channel page: how sending, receiving and billing work for SMS.
In the docs
01 Schedule Messages via Process Builder in SalesforceScheduled sends and the fields that drive them → 02 SMS Template CreationOne template per step, with merge fields → 03 Opt-Out and Opt-In Management in SalesforceWhere the opt-out lives and what honours it →

Run your messaging inside your CRM.

Rated 4.98 on Salesforce AppExchange
Salesforce Use case · Marketing · Campaign

Run a message sequence that stops when someone replies.

A scheduled flow walks each contact through the steps, a reply ends the sequence and hands the person to a human, and every message is on the record. The whole thing is Salesforce automation, not a second marketing tool.

ObjectContact, Lead or Campaign Member
Fires onA daily sweep of who is due the next step
Reply landsTask on the record, sequence stopped
ChannelSMS, or WhatsApp where a template applies
01 · What quietly breaks

A sequence that keeps sending after someone answers is worse than no sequence.

The failure is not the copy. It is that the person replied on day three and step three still went out on day five, addressed to someone the sender had already spoken to. Every recipient learns from that exactly how automated the attention was.

It happens because the sequence lives outside the CRM. The tool that sends does not know about the reply, the call or the closed deal, so it keeps counting days.

The second failure is quieter. When the messages are held somewhere else, the record shows a contact who was messaged four times and no trace of what was said.

02 · The idea

Put the sequence where the reply lands. If the same system holds the step counter and the inbound message, stopping is a decision element rather than an integration.

03 · The pattern

Three parts, and the stop condition is the one that matters.

A field for the step, a scheduled flow that advances it, and a rule that ends the sequence on any sign of life. Build the stop first.

01

Hold the step on the record

A step number and a next-send date on the Contact or the Campaign Member. Because they are fields, anyone can see where a person is in a sequence by opening the record, and a report can show you the whole cohort at once.

It also means a person can be pulled out by hand, which is the thing everyone eventually needs to do.

In Salesforce FieldsSequence_Step__c, Next_Send_Date__c, Sequence_Status__cSet onEntry to the campaignStatusesActive, Replied, Completed, StoppedVisible onThe record, and in any report
02

Advance it on a schedule, one step a day at most

A daily scheduled flow collects everyone whose next send date is today and whose status is still Active, sends that step's template, and moves the counter on.

One flow runs every sequence. A new campaign is rows of data and a template set, not another flow to maintain.

In Salesforce Flow typeSchedule-triggered, dailyEntrySequence_Status__c = Active AND Next_Send_Date__c = TODAYActionSend Message, then increment the stepGuardrailThe shared subflow runs before every send
03

Stop on any reply, and hand the person over

An inbound message sets the status to Replied, which takes the record out of tomorrow's collection, and raises a Task for the owner with the thread attached.

Widen the stop conditions as you learn: a booked meeting, a closed opportunity, an opened case. Anything that means a human is already engaged should end the sequence, and each one is a line in the same decision.

In Salesforce TriggerInbound message on a record with Sequence_Status__c = ActiveSetsSequence_Status__c = RepliedCreatesTask for the record owner, thread attachedAlso stop onMeeting booked, Opportunity closed, Case opened
Fig 01 · Campaign: Q4 onboarding · Ana Duarte
Hi Ana, you set up your account last week but have not sent a message yet. The five minute setup guide is the fastest way in, and I can send the link.
Sent Day 3 09:00 · step 2 of 4 · template Onboarding_Nudge
Yes please. I got stuck on connecting our number.
Received Day 3 09:14 · sequence STOPPED · Task on Contact
Sending it now. Connecting a number is the step most people stop on, so I will stay on this thread until yours is through.
Sent Day 3 09:20 · sent by the CSM from the Converse view
04 · Replies and exceptions

Every reply ends the sequence. That is the design, not an exception.

There is no branch where a person who answered keeps receiving scheduled messages. What varies is who picks it up.

ReplyWhat happensWhere it lands
Interested Sequence stops, Task for the owner, thread open in the Converse view with every step already sent visible. Sequence_Status__c = Replied
"Not now" Sequence stops and the record is marked for a later cohort rather than resumed. Resuming a paused sequence is how people get messaged twice about the same thing. Sequence_Status__c = Stopped
A question Sequence stops. A person answers, because the point of the sequence was to start this conversation. Task on the record
STOP Opt-out on the record, sequence ended, and every future campaign skips it. Contact.SMS_Opt_Out__c
05 · Guardrails

Four, and marketing consent is not the same as having a number.

ConsentMarketing consent, checked in the shared subflow before every step. A phone number on a record is not permission to run a campaign at it.
Quiet hoursEvaluated in the recipient's time zone. A sequence crossing time zones is the most common way an org sends at 03:00 without meaning to.
One step a dayThe scheduled flow sends at most one message per record per run, so two overlapping campaigns cannot stack on the same person.
Opt-out lineIn the first message of every sequence, not just the last. It fits in the segment.
06 · Reporting afterwards

Report on where people stop, not on how many were sent.

Because the step is a field, the sequence reports as a funnel. The step where replies dry up is the step to rewrite, and it is usually not the one anyone guessed.

Q4 onboarding · sequenceCampaign Members
StepSentRepliedStill active
1 · Welcome1,4201821,238
2 · Nudge1,238241997
3 · Guide99788909
4 · Last check90964845
REPLIEDRecords with an inbound message at that step. It is the only success measure here, because a send that starts no conversation did nothing.
STILL ACTIVERecords that carried on to the next step. The drop between two rows is where the sequence is losing people.
STOPPED EARLYRecords ended by a meeting, an opportunity or a case rather than a reply. Count them as wins, not as drop-off.
07 · Implementation note

Where ValueText fits.

ValueText is the send action and the inbound handler. It adds the Send Message invocable action to Flow Builder, writes every inbound message back to the record, and holds the templates and the org-level send window. The step fields, the scheduled flow, the stop conditions and the funnel report are yours, built with standard tools, and they keep working if you change the number or the carrier.

Professional edition or above · Marketing consent required, transactional exemptions do not apply · 1 SMS segment per step at the published per-country rate
AppExchange review

“One of the standout features for me is the customizable templates. They save me so much time, especially when I need to send similar messages to different recipients.”

Rajeswari Ramachandran Rajeswari RamachandranAppExchange review
This page sits underSMS for SalesforceThe channel page: how sending, receiving and billing work for SMS.
In the docs
01 Schedule Messages via Process Builder in SalesforceScheduled sends and the fields that drive them → 02 SMS Template CreationOne template per step, with merge fields → 03 Opt-Out and Opt-In Management in SalesforceWhere the opt-out lives and what honours it →

Run your messaging inside your CRM.

Rated 4.98 on Salesforce AppExchange
Salesforce Use case · Marketing · Campaign

Run a message sequence that stops when someone replies.

A scheduled flow walks each contact through the steps, a reply ends the sequence and hands the person to a human, and every message is on the record. The whole thing is Salesforce automation, not a second marketing tool.

ObjectContact, Lead or Campaign Member
Fires onA daily sweep of who is due the next step
Reply landsTask on the record, sequence stopped
ChannelSMS, or WhatsApp where a template applies
01 · What quietly breaks

A sequence that keeps sending after someone answers is worse than no sequence.

The failure is not the copy. It is that the person replied on day three and step three still went out on day five, addressed to someone the sender had already spoken to. Every recipient learns from that exactly how automated the attention was.

It happens because the sequence lives outside the CRM. The tool that sends does not know about the reply, the call or the closed deal, so it keeps counting days.

The second failure is quieter. When the messages are held somewhere else, the record shows a contact who was messaged four times and no trace of what was said.

02 · The idea

Put the sequence where the reply lands. If the same system holds the step counter and the inbound message, stopping is a decision element rather than an integration.

03 · The pattern

Three parts, and the stop condition is the one that matters.

A field for the step, a scheduled flow that advances it, and a rule that ends the sequence on any sign of life. Build the stop first.

01

Hold the step on the record

A step number and a next-send date on the Contact or the Campaign Member. Because they are fields, anyone can see where a person is in a sequence by opening the record, and a report can show you the whole cohort at once.

It also means a person can be pulled out by hand, which is the thing everyone eventually needs to do.

In Salesforce FieldsSequence_Step__c, Next_Send_Date__c, Sequence_Status__cSet onEntry to the campaignStatusesActive, Replied, Completed, StoppedVisible onThe record, and in any report
02

Advance it on a schedule, one step a day at most

A daily scheduled flow collects everyone whose next send date is today and whose status is still Active, sends that step's template, and moves the counter on.

One flow runs every sequence. A new campaign is rows of data and a template set, not another flow to maintain.

In Salesforce Flow typeSchedule-triggered, dailyEntrySequence_Status__c = Active AND Next_Send_Date__c = TODAYActionSend Message, then increment the stepGuardrailThe shared subflow runs before every send
03

Stop on any reply, and hand the person over

An inbound message sets the status to Replied, which takes the record out of tomorrow's collection, and raises a Task for the owner with the thread attached.

Widen the stop conditions as you learn: a booked meeting, a closed opportunity, an opened case. Anything that means a human is already engaged should end the sequence, and each one is a line in the same decision.

In Salesforce TriggerInbound message on a record with Sequence_Status__c = ActiveSetsSequence_Status__c = RepliedCreatesTask for the record owner, thread attachedAlso stop onMeeting booked, Opportunity closed, Case opened
Fig 01 · Campaign: Q4 onboarding · Ana Duarte
Hi Ana, you set up your account last week but have not sent a message yet. The five minute setup guide is the fastest way in, and I can send the link.
Sent Day 3 09:00 · step 2 of 4 · template Onboarding_Nudge
Yes please. I got stuck on connecting our number.
Received Day 3 09:14 · sequence STOPPED · Task on Contact
Sending it now. Connecting a number is the step most people stop on, so I will stay on this thread until yours is through.
Sent Day 3 09:20 · sent by the CSM from the Converse view
04 · Replies and exceptions

Every reply ends the sequence. That is the design, not an exception.

There is no branch where a person who answered keeps receiving scheduled messages. What varies is who picks it up.

ReplyWhat happensWhere it lands
Interested Sequence stops, Task for the owner, thread open in the Converse view with every step already sent visible. Sequence_Status__c = Replied
"Not now" Sequence stops and the record is marked for a later cohort rather than resumed. Resuming a paused sequence is how people get messaged twice about the same thing. Sequence_Status__c = Stopped
A question Sequence stops. A person answers, because the point of the sequence was to start this conversation. Task on the record
STOP Opt-out on the record, sequence ended, and every future campaign skips it. Contact.SMS_Opt_Out__c
05 · Guardrails

Four, and marketing consent is not the same as having a number.

ConsentMarketing consent, checked in the shared subflow before every step. A phone number on a record is not permission to run a campaign at it.
Quiet hoursEvaluated in the recipient's time zone. A sequence crossing time zones is the most common way an org sends at 03:00 without meaning to.
One step a dayThe scheduled flow sends at most one message per record per run, so two overlapping campaigns cannot stack on the same person.
Opt-out lineIn the first message of every sequence, not just the last. It fits in the segment.
06 · Reporting afterwards

Report on where people stop, not on how many were sent.

Because the step is a field, the sequence reports as a funnel. The step where replies dry up is the step to rewrite, and it is usually not the one anyone guessed.

Q4 onboarding · sequenceCampaign Members
StepSentRepliedStill active
1 · Welcome1,4201821,238
2 · Nudge1,238241997
3 · Guide99788909
4 · Last check90964845
REPLIEDRecords with an inbound message at that step. It is the only success measure here, because a send that starts no conversation did nothing.
STILL ACTIVERecords that carried on to the next step. The drop between two rows is where the sequence is losing people.
STOPPED EARLYRecords ended by a meeting, an opportunity or a case rather than a reply. Count them as wins, not as drop-off.
07 · Implementation note

Where ValueText fits.

ValueText is the send action and the inbound handler. It adds the Send Message invocable action to Flow Builder, writes every inbound message back to the record, and holds the templates and the org-level send window. The step fields, the scheduled flow, the stop conditions and the funnel report are yours, built with standard tools, and they keep working if you change the number or the carrier.

Professional edition or above · Marketing consent required, transactional exemptions do not apply · 1 SMS segment per step at the published per-country rate
AppExchange review

“One of the standout features for me is the customizable templates. They save me so much time, especially when I need to send similar messages to different recipients.”

Rajeswari Ramachandran Rajeswari RamachandranAppExchange review
This page sits underSMS for SalesforceThe channel page: how sending, receiving and billing work for SMS.
In the docs
01 Schedule Messages via Process Builder in SalesforceScheduled sends and the fields that drive them → 02 SMS Template CreationOne template per step, with merge fields → 03 Opt-Out and Opt-In Management in SalesforceWhere the opt-out lives and what honours it →

Run your messaging inside your CRM.

Rated 4.98 on Salesforce AppExchange