Salesforce Use case · Volunteers for Salesforce · Volunteer Shift

Remind volunteers about their shift, and take attendance by reply.

A scheduled flow texts every confirmed volunteer the evening before. Y keeps the shift, N frees it, and a reply on the day marks the hours as Completed.

ObjectVolunteer Hours (V4S)
Fires onScheduled, 17:00 the day before
Reply landsTask on the Contact, Status on the Hours record
ChannelSMS or WhatsApp, same flow
01 · What quietly breaks

The sign-up sheet says 18. Eleven turn up.

Volunteers sign up weeks ahead and forget. The coordinator finds out at 09:05 on Saturday how many came, and the shift is understaffed or overstaffed with no time to fix either. The email reminder went out, and had a 22 percent open rate.

Attendance is then written on paper and typed into the Hours records on Monday, if at all. The hours report the board sees in the quarterly pack is a guess.

02 · The idea

Keep the process where the record is. The Volunteer Hours record already holds the person, the shift and a Status field. Text from it, and let the reply change the status.

03 · The pattern

Three parts, on the objects V4S already gives you.

Volunteers for Salesforce ships the Volunteer Shift and Volunteer Hours objects and a Status picklist with Confirmed, Completed and No-Show. Everything here uses those, plus one scheduled flow.

01

Write the reminder against Volunteer Hours

A dynamic template on Volunteer Hours. Merge fields pull the shift start and end from the parent Volunteer Shift, the site from the Volunteer Job, and the volunteer's first name from the Contact. It ends with the Y or N instruction and the opt-out line.

In Salesforce ObjectGW_Volunteers__Volunteer_Hours__cTemplateShift_Reminder (dynamic)Merge fieldsContact.FirstName, Volunteer_Shift__r.Start_Date_Time__c, Volunteer_Job__r.Location__cSegments1
02

Send it on a schedule the day before

A scheduled flow runs daily at 17:00. It collects Volunteer Hours where the shift starts tomorrow and Status is Confirmed or Prospect, and calls the send action for each. A decision element skips any Contact with the opt-out field set.

One flow covers every job and every site. Adding a new shift in V4S needs no change to the flow.

In Salesforce Flow typeSchedule-triggered, daily 17:00EntryShift start = TOMORROW AND Status IN (Confirmed, Prospect)ActionValueText: Send MessageInputsRecordId, TemplateName, Channel
03

Let the reply set the status

Keyword rules map Y to Status = Confirmed, N to Status = Canceled, and HERE on the shift day to Status = Completed with Hours Worked filled from the shift length. The coordinator opens the shift at 09:00 and the count is already there.

N also frees the slot in the V4S job calendar, so a standby volunteer can be texted the same evening from the Converse view.

In Salesforce KeywordY → Status = ConfirmedKeywordN → Status = CanceledKeywordHERE → Status = Completed, Hours_Worked__c = shift lengthAnything elseTask on Contact, owner = coordinator
Fig 01 · Saturday pantry · 18 volunteers
Hi Marcus, you are down for the Saturday pantry shift, 09:00 to 12:00 at Elm Street. Reply Y to confirm or N if you can't make it.
Sent Fri 17:00 · scheduled flow · template Shift_Reminder
Y
Received Fri 17:12 · Volunteer Hours Status = Confirmed
HERE
Received Sat 08:54 · Volunteer Hours Status = Completed
04 · Replies and exceptions

Three words the volunteer needs.

Y, N and HERE. Anything else goes to the coordinator's inbox as an open Task, on the volunteer's Contact.

ReplyWhat happensWhere it lands
Y Status stays or becomes Confirmed. No further message. Volunteer_Hours__c.Status__c
N Status becomes Canceled and the slot reopens on the job. The coordinator sees the open slot on the shift record that evening. Volunteer_Hours__c.Status__c, Shift open slots
HERE On the shift day only, Status becomes Completed and Hours Worked is filled from the shift length. Outside the day, it is treated as free text. Volunteer_Hours__c.Hours_Worked__c
Free text Task stays open on the Contact, owner set to the coordinator. They reply from the Converse view on the same thread. Task on Contact
STOP Opt-out set on the Contact. The scheduled flow skips them from the next run. Contact.SMS_Opt_Out__c
05 · Guardrails

Short, because volunteers are not customers.

ConsentVolunteers opt in on the sign-up form, and the field lives on the Contact. The flow checks it before every send.
Quiet hoursThe scheduled run is 17:00 org time. The org-level window blocks anything outside 08:00 to 20:00 in the recipient's time zone.
One per shiftThe flow filters on shift start = tomorrow, so a volunteer with two shifts gets two messages and never a duplicate for the same one.
Opt-out lineReply STOP to opt out is in the template. It fits in one segment with the shift details.
06 · Reporting afterwards

Attendance is a report, not a spreadsheet.

Status and Hours Worked are standard V4S fields. A Volunteer Hours report grouped by shift shows confirmed against completed, by Monday morning with nothing typed in.

Saturday pantry · attendanceVolunteer Hours
VolunteerRemindedReplyStatus
Marcus BellFri 17:00Y, HERECompleted · 3.0 h
Aisha OkaforFri 17:00YNo-Show
Tom ReyesFri 17:00NCanceled
Lena FischerFri 17:00HERECompleted · 3.0 h
RemindedCount of Tasks with Subject starting SMS: Shift_Reminder, per shift.
Confirmed vs completedTwo Status counts on the same report. The gap is your no-show rate, per site and per job.
HoursSum of Hours Worked, the number that goes in the board pack.
07 · Implementation note

Where ValueText fits.

ValueText is the send action and the inbound handler. It installs from AppExchange as a managed package, adds the Send Message action to Flow Builder, and writes every inbound message as a Message Bucket record and a Task on the Contact. Keyword rules that update the parent Volunteer Hours record are set up in ValueText Setup. V4S, the scheduled flow and the report are yours and stay if you leave.

Works with Volunteers for Salesforce and NPSP · Nonprofit pricing on request · 1 SMS segment per reminder at the published per-country rate
AppExchange review

“After some research we found ValueText app as best to meet our needs. By using this app we’ve achieved time zone based scheduling for different business hours.”

Bala Peri Bala PeriDevelopment Manager and Salesforce Architect · AppExchange
This page sits underSMS for SalesforceThe channel page: how sending, receiving and billing work for SMS.
In the docs
01 Add the Send Message action to a scheduled flowDaily runs, collections and the test run → 02 Keyword rules that update a field on the parent recordY, N and HERE against Volunteer Hours →

Run your messaging inside your CRM.

Rated 4.98 on Salesforce AppExchange
Salesforce Use case · Volunteers for Salesforce · Volunteer Shift

Remind volunteers about their shift, and take attendance by reply.

A scheduled flow texts every confirmed volunteer the evening before. Y keeps the shift, N frees it, and a reply on the day marks the hours as Completed.

ObjectVolunteer Hours (V4S)
Fires onScheduled, 17:00 the day before
Reply landsTask on the Contact, Status on the Hours record
ChannelSMS or WhatsApp, same flow
01 · What quietly breaks

The sign-up sheet says 18. Eleven turn up.

Volunteers sign up weeks ahead and forget. The coordinator finds out at 09:05 on Saturday how many came, and the shift is understaffed or overstaffed with no time to fix either. The email reminder went out, and had a 22 percent open rate.

Attendance is then written on paper and typed into the Hours records on Monday, if at all. The hours report the board sees in the quarterly pack is a guess.

02 · The idea

Keep the process where the record is. The Volunteer Hours record already holds the person, the shift and a Status field. Text from it, and let the reply change the status.

03 · The pattern

Three parts, on the objects V4S already gives you.

Volunteers for Salesforce ships the Volunteer Shift and Volunteer Hours objects and a Status picklist with Confirmed, Completed and No-Show. Everything here uses those, plus one scheduled flow.

01

Write the reminder against Volunteer Hours

A dynamic template on Volunteer Hours. Merge fields pull the shift start and end from the parent Volunteer Shift, the site from the Volunteer Job, and the volunteer's first name from the Contact. It ends with the Y or N instruction and the opt-out line.

In Salesforce ObjectGW_Volunteers__Volunteer_Hours__cTemplateShift_Reminder (dynamic)Merge fieldsContact.FirstName, Volunteer_Shift__r.Start_Date_Time__c, Volunteer_Job__r.Location__cSegments1
02

Send it on a schedule the day before

A scheduled flow runs daily at 17:00. It collects Volunteer Hours where the shift starts tomorrow and Status is Confirmed or Prospect, and calls the send action for each. A decision element skips any Contact with the opt-out field set.

One flow covers every job and every site. Adding a new shift in V4S needs no change to the flow.

In Salesforce Flow typeSchedule-triggered, daily 17:00EntryShift start = TOMORROW AND Status IN (Confirmed, Prospect)ActionValueText: Send MessageInputsRecordId, TemplateName, Channel
03

Let the reply set the status

Keyword rules map Y to Status = Confirmed, N to Status = Canceled, and HERE on the shift day to Status = Completed with Hours Worked filled from the shift length. The coordinator opens the shift at 09:00 and the count is already there.

N also frees the slot in the V4S job calendar, so a standby volunteer can be texted the same evening from the Converse view.

In Salesforce KeywordY → Status = ConfirmedKeywordN → Status = CanceledKeywordHERE → Status = Completed, Hours_Worked__c = shift lengthAnything elseTask on Contact, owner = coordinator
Fig 01 · Saturday pantry · 18 volunteers
Hi Marcus, you are down for the Saturday pantry shift, 09:00 to 12:00 at Elm Street. Reply Y to confirm or N if you can't make it.
Sent Fri 17:00 · scheduled flow · template Shift_Reminder
Y
Received Fri 17:12 · Volunteer Hours Status = Confirmed
HERE
Received Sat 08:54 · Volunteer Hours Status = Completed
04 · Replies and exceptions

Three words the volunteer needs.

Y, N and HERE. Anything else goes to the coordinator's inbox as an open Task, on the volunteer's Contact.

ReplyWhat happensWhere it lands
Y Status stays or becomes Confirmed. No further message. Volunteer_Hours__c.Status__c
N Status becomes Canceled and the slot reopens on the job. The coordinator sees the open slot on the shift record that evening. Volunteer_Hours__c.Status__c, Shift open slots
HERE On the shift day only, Status becomes Completed and Hours Worked is filled from the shift length. Outside the day, it is treated as free text. Volunteer_Hours__c.Hours_Worked__c
Free text Task stays open on the Contact, owner set to the coordinator. They reply from the Converse view on the same thread. Task on Contact
STOP Opt-out set on the Contact. The scheduled flow skips them from the next run. Contact.SMS_Opt_Out__c
05 · Guardrails

Short, because volunteers are not customers.

ConsentVolunteers opt in on the sign-up form, and the field lives on the Contact. The flow checks it before every send.
Quiet hoursThe scheduled run is 17:00 org time. The org-level window blocks anything outside 08:00 to 20:00 in the recipient's time zone.
One per shiftThe flow filters on shift start = tomorrow, so a volunteer with two shifts gets two messages and never a duplicate for the same one.
Opt-out lineReply STOP to opt out is in the template. It fits in one segment with the shift details.
06 · Reporting afterwards

Attendance is a report, not a spreadsheet.

Status and Hours Worked are standard V4S fields. A Volunteer Hours report grouped by shift shows confirmed against completed, by Monday morning with nothing typed in.

Saturday pantry · attendanceVolunteer Hours
VolunteerRemindedReplyStatus
Marcus BellFri 17:00Y, HERECompleted · 3.0 h
Aisha OkaforFri 17:00YNo-Show
Tom ReyesFri 17:00NCanceled
Lena FischerFri 17:00HERECompleted · 3.0 h
RemindedCount of Tasks with Subject starting SMS: Shift_Reminder, per shift.
Confirmed vs completedTwo Status counts on the same report. The gap is your no-show rate, per site and per job.
HoursSum of Hours Worked, the number that goes in the board pack.
07 · Implementation note

Where ValueText fits.

ValueText is the send action and the inbound handler. It installs from AppExchange as a managed package, adds the Send Message action to Flow Builder, and writes every inbound message as a Message Bucket record and a Task on the Contact. Keyword rules that update the parent Volunteer Hours record are set up in ValueText Setup. V4S, the scheduled flow and the report are yours and stay if you leave.

Works with Volunteers for Salesforce and NPSP · Nonprofit pricing on request · 1 SMS segment per reminder at the published per-country rate
AppExchange review

“After some research we found ValueText app as best to meet our needs. By using this app we’ve achieved time zone based scheduling for different business hours.”

Bala Peri Bala PeriDevelopment Manager and Salesforce Architect · AppExchange
This page sits underSMS for SalesforceThe channel page: how sending, receiving and billing work for SMS.
In the docs
01 Add the Send Message action to a scheduled flowDaily runs, collections and the test run → 02 Keyword rules that update a field on the parent recordY, N and HERE against Volunteer Hours →

Run your messaging inside your CRM.

Rated 4.98 on Salesforce AppExchange
Salesforce Use case · Volunteers for Salesforce · Volunteer Shift

Remind volunteers about their shift, and take attendance by reply.

A scheduled flow texts every confirmed volunteer the evening before. Y keeps the shift, N frees it, and a reply on the day marks the hours as Completed.

ObjectVolunteer Hours (V4S)
Fires onScheduled, 17:00 the day before
Reply landsTask on the Contact, Status on the Hours record
ChannelSMS or WhatsApp, same flow
01 · What quietly breaks

The sign-up sheet says 18. Eleven turn up.

Volunteers sign up weeks ahead and forget. The coordinator finds out at 09:05 on Saturday how many came, and the shift is understaffed or overstaffed with no time to fix either. The email reminder went out, and had a 22 percent open rate.

Attendance is then written on paper and typed into the Hours records on Monday, if at all. The hours report the board sees in the quarterly pack is a guess.

02 · The idea

Keep the process where the record is. The Volunteer Hours record already holds the person, the shift and a Status field. Text from it, and let the reply change the status.

03 · The pattern

Three parts, on the objects V4S already gives you.

Volunteers for Salesforce ships the Volunteer Shift and Volunteer Hours objects and a Status picklist with Confirmed, Completed and No-Show. Everything here uses those, plus one scheduled flow.

01

Write the reminder against Volunteer Hours

A dynamic template on Volunteer Hours. Merge fields pull the shift start and end from the parent Volunteer Shift, the site from the Volunteer Job, and the volunteer's first name from the Contact. It ends with the Y or N instruction and the opt-out line.

In Salesforce ObjectGW_Volunteers__Volunteer_Hours__cTemplateShift_Reminder (dynamic)Merge fieldsContact.FirstName, Volunteer_Shift__r.Start_Date_Time__c, Volunteer_Job__r.Location__cSegments1
02

Send it on a schedule the day before

A scheduled flow runs daily at 17:00. It collects Volunteer Hours where the shift starts tomorrow and Status is Confirmed or Prospect, and calls the send action for each. A decision element skips any Contact with the opt-out field set.

One flow covers every job and every site. Adding a new shift in V4S needs no change to the flow.

In Salesforce Flow typeSchedule-triggered, daily 17:00EntryShift start = TOMORROW AND Status IN (Confirmed, Prospect)ActionValueText: Send MessageInputsRecordId, TemplateName, Channel
03

Let the reply set the status

Keyword rules map Y to Status = Confirmed, N to Status = Canceled, and HERE on the shift day to Status = Completed with Hours Worked filled from the shift length. The coordinator opens the shift at 09:00 and the count is already there.

N also frees the slot in the V4S job calendar, so a standby volunteer can be texted the same evening from the Converse view.

In Salesforce KeywordY → Status = ConfirmedKeywordN → Status = CanceledKeywordHERE → Status = Completed, Hours_Worked__c = shift lengthAnything elseTask on Contact, owner = coordinator
Fig 01 · Saturday pantry · 18 volunteers
Hi Marcus, you are down for the Saturday pantry shift, 09:00 to 12:00 at Elm Street. Reply Y to confirm or N if you can't make it.
Sent Fri 17:00 · scheduled flow · template Shift_Reminder
Y
Received Fri 17:12 · Volunteer Hours Status = Confirmed
HERE
Received Sat 08:54 · Volunteer Hours Status = Completed
04 · Replies and exceptions

Three words the volunteer needs.

Y, N and HERE. Anything else goes to the coordinator's inbox as an open Task, on the volunteer's Contact.

ReplyWhat happensWhere it lands
Y Status stays or becomes Confirmed. No further message. Volunteer_Hours__c.Status__c
N Status becomes Canceled and the slot reopens on the job. The coordinator sees the open slot on the shift record that evening. Volunteer_Hours__c.Status__c, Shift open slots
HERE On the shift day only, Status becomes Completed and Hours Worked is filled from the shift length. Outside the day, it is treated as free text. Volunteer_Hours__c.Hours_Worked__c
Free text Task stays open on the Contact, owner set to the coordinator. They reply from the Converse view on the same thread. Task on Contact
STOP Opt-out set on the Contact. The scheduled flow skips them from the next run. Contact.SMS_Opt_Out__c
05 · Guardrails

Short, because volunteers are not customers.

ConsentVolunteers opt in on the sign-up form, and the field lives on the Contact. The flow checks it before every send.
Quiet hoursThe scheduled run is 17:00 org time. The org-level window blocks anything outside 08:00 to 20:00 in the recipient's time zone.
One per shiftThe flow filters on shift start = tomorrow, so a volunteer with two shifts gets two messages and never a duplicate for the same one.
Opt-out lineReply STOP to opt out is in the template. It fits in one segment with the shift details.
06 · Reporting afterwards

Attendance is a report, not a spreadsheet.

Status and Hours Worked are standard V4S fields. A Volunteer Hours report grouped by shift shows confirmed against completed, by Monday morning with nothing typed in.

Saturday pantry · attendanceVolunteer Hours
VolunteerRemindedReplyStatus
Marcus BellFri 17:00Y, HERECompleted · 3.0 h
Aisha OkaforFri 17:00YNo-Show
Tom ReyesFri 17:00NCanceled
Lena FischerFri 17:00HERECompleted · 3.0 h
RemindedCount of Tasks with Subject starting SMS: Shift_Reminder, per shift.
Confirmed vs completedTwo Status counts on the same report. The gap is your no-show rate, per site and per job.
HoursSum of Hours Worked, the number that goes in the board pack.
07 · Implementation note

Where ValueText fits.

ValueText is the send action and the inbound handler. It installs from AppExchange as a managed package, adds the Send Message action to Flow Builder, and writes every inbound message as a Message Bucket record and a Task on the Contact. Keyword rules that update the parent Volunteer Hours record are set up in ValueText Setup. V4S, the scheduled flow and the report are yours and stay if you leave.

Works with Volunteers for Salesforce and NPSP · Nonprofit pricing on request · 1 SMS segment per reminder at the published per-country rate
AppExchange review

“After some research we found ValueText app as best to meet our needs. By using this app we’ve achieved time zone based scheduling for different business hours.”

Bala Peri Bala PeriDevelopment Manager and Salesforce Architect · AppExchange
This page sits underSMS for SalesforceThe channel page: how sending, receiving and billing work for SMS.
In the docs
01 Add the Send Message action to a scheduled flowDaily runs, collections and the test run → 02 Keyword rules that update a field on the parent recordY, N and HERE against Volunteer Hours →

Run your messaging inside your CRM.

Rated 4.98 on Salesforce AppExchange
Salesforce Use case · Volunteers for Salesforce · Volunteer Shift

Remind volunteers about their shift, and take attendance by reply.

A scheduled flow texts every confirmed volunteer the evening before. Y keeps the shift, N frees it, and a reply on the day marks the hours as Completed.

ObjectVolunteer Hours (V4S)
Fires onScheduled, 17:00 the day before
Reply landsTask on the Contact, Status on the Hours record
ChannelSMS or WhatsApp, same flow
01 · What quietly breaks

The sign-up sheet says 18. Eleven turn up.

Volunteers sign up weeks ahead and forget. The coordinator finds out at 09:05 on Saturday how many came, and the shift is understaffed or overstaffed with no time to fix either. The email reminder went out, and had a 22 percent open rate.

Attendance is then written on paper and typed into the Hours records on Monday, if at all. The hours report the board sees in the quarterly pack is a guess.

02 · The idea

Keep the process where the record is. The Volunteer Hours record already holds the person, the shift and a Status field. Text from it, and let the reply change the status.

03 · The pattern

Three parts, on the objects V4S already gives you.

Volunteers for Salesforce ships the Volunteer Shift and Volunteer Hours objects and a Status picklist with Confirmed, Completed and No-Show. Everything here uses those, plus one scheduled flow.

01

Write the reminder against Volunteer Hours

A dynamic template on Volunteer Hours. Merge fields pull the shift start and end from the parent Volunteer Shift, the site from the Volunteer Job, and the volunteer's first name from the Contact. It ends with the Y or N instruction and the opt-out line.

In Salesforce ObjectGW_Volunteers__Volunteer_Hours__cTemplateShift_Reminder (dynamic)Merge fieldsContact.FirstName, Volunteer_Shift__r.Start_Date_Time__c, Volunteer_Job__r.Location__cSegments1
02

Send it on a schedule the day before

A scheduled flow runs daily at 17:00. It collects Volunteer Hours where the shift starts tomorrow and Status is Confirmed or Prospect, and calls the send action for each. A decision element skips any Contact with the opt-out field set.

One flow covers every job and every site. Adding a new shift in V4S needs no change to the flow.

In Salesforce Flow typeSchedule-triggered, daily 17:00EntryShift start = TOMORROW AND Status IN (Confirmed, Prospect)ActionValueText: Send MessageInputsRecordId, TemplateName, Channel
03

Let the reply set the status

Keyword rules map Y to Status = Confirmed, N to Status = Canceled, and HERE on the shift day to Status = Completed with Hours Worked filled from the shift length. The coordinator opens the shift at 09:00 and the count is already there.

N also frees the slot in the V4S job calendar, so a standby volunteer can be texted the same evening from the Converse view.

In Salesforce KeywordY → Status = ConfirmedKeywordN → Status = CanceledKeywordHERE → Status = Completed, Hours_Worked__c = shift lengthAnything elseTask on Contact, owner = coordinator
Fig 01 · Saturday pantry · 18 volunteers
Hi Marcus, you are down for the Saturday pantry shift, 09:00 to 12:00 at Elm Street. Reply Y to confirm or N if you can't make it.
Sent Fri 17:00 · scheduled flow · template Shift_Reminder
Y
Received Fri 17:12 · Volunteer Hours Status = Confirmed
HERE
Received Sat 08:54 · Volunteer Hours Status = Completed
04 · Replies and exceptions

Three words the volunteer needs.

Y, N and HERE. Anything else goes to the coordinator's inbox as an open Task, on the volunteer's Contact.

ReplyWhat happensWhere it lands
Y Status stays or becomes Confirmed. No further message. Volunteer_Hours__c.Status__c
N Status becomes Canceled and the slot reopens on the job. The coordinator sees the open slot on the shift record that evening. Volunteer_Hours__c.Status__c, Shift open slots
HERE On the shift day only, Status becomes Completed and Hours Worked is filled from the shift length. Outside the day, it is treated as free text. Volunteer_Hours__c.Hours_Worked__c
Free text Task stays open on the Contact, owner set to the coordinator. They reply from the Converse view on the same thread. Task on Contact
STOP Opt-out set on the Contact. The scheduled flow skips them from the next run. Contact.SMS_Opt_Out__c
05 · Guardrails

Short, because volunteers are not customers.

ConsentVolunteers opt in on the sign-up form, and the field lives on the Contact. The flow checks it before every send.
Quiet hoursThe scheduled run is 17:00 org time. The org-level window blocks anything outside 08:00 to 20:00 in the recipient's time zone.
One per shiftThe flow filters on shift start = tomorrow, so a volunteer with two shifts gets two messages and never a duplicate for the same one.
Opt-out lineReply STOP to opt out is in the template. It fits in one segment with the shift details.
06 · Reporting afterwards

Attendance is a report, not a spreadsheet.

Status and Hours Worked are standard V4S fields. A Volunteer Hours report grouped by shift shows confirmed against completed, by Monday morning with nothing typed in.

Saturday pantry · attendanceVolunteer Hours
VolunteerRemindedReplyStatus
Marcus BellFri 17:00Y, HERECompleted · 3.0 h
Aisha OkaforFri 17:00YNo-Show
Tom ReyesFri 17:00NCanceled
Lena FischerFri 17:00HERECompleted · 3.0 h
RemindedCount of Tasks with Subject starting SMS: Shift_Reminder, per shift.
Confirmed vs completedTwo Status counts on the same report. The gap is your no-show rate, per site and per job.
HoursSum of Hours Worked, the number that goes in the board pack.
07 · Implementation note

Where ValueText fits.

ValueText is the send action and the inbound handler. It installs from AppExchange as a managed package, adds the Send Message action to Flow Builder, and writes every inbound message as a Message Bucket record and a Task on the Contact. Keyword rules that update the parent Volunteer Hours record are set up in ValueText Setup. V4S, the scheduled flow and the report are yours and stay if you leave.

Works with Volunteers for Salesforce and NPSP · Nonprofit pricing on request · 1 SMS segment per reminder at the published per-country rate
AppExchange review

“After some research we found ValueText app as best to meet our needs. By using this app we’ve achieved time zone based scheduling for different business hours.”

Bala Peri Bala PeriDevelopment Manager and Salesforce Architect · AppExchange
This page sits underSMS for SalesforceThe channel page: how sending, receiving and billing work for SMS.
In the docs
01 Add the Send Message action to a scheduled flowDaily runs, collections and the test run → 02 Keyword rules that update a field on the parent recordY, N and HERE against Volunteer Hours →

Run your messaging inside your CRM.

Rated 4.98 on Salesforce AppExchange