Managing SMS Messages

For the basic steps to establish an account with PBT or Twilio and setting up SMS in your TouchPoint database, see the articles Set Up TouchPoint for Texting and either Establish an Account with Powered By Text (PBT) or Establish an Account with Twilio.

To manage SMS Messages in TouchPoint, go to Admin > Communication > SMS Log. To access this page, you will need the Admin or ManageSMS role. To see Sent/Received messages or Reply Words for a texting group, you will also need the SendSMS role and be added to that texting group under Admin > Communication > SMS Setup.

Sent Tab

This is a list of sent or scheduled SMS messages, sorted by most recent at the top. The section at the top allows you to filter the results using the following criteria:

Group

Select a specific SMS group to only see SMS messages sent/scheduled for that group.

Group Member

After selecting a Group, select a specific person to only see SMS messages sent/scheduled from that person.

Message

Enter any text to find SMS messages that contain specific text.

Start Date

Use the date picker to filter out any SMS messages sent prior to this date.

End Date

Use the date picker to filter out any SMS messages sent after this date.

Send to Group

This option will take you to a Group Send Options page where you can type a message to send to all subscribers of the group you selected from the Group drop down menu.

Note

This option is only available with the PBT integration.

System Messages

Check this box to display system-generated text messages, such as Attendance Reminders.

The main section contains the filtered list of sent or scheduled SMS messages and several columns of information.

Sent/Scheduled

The date and time that the message was sent or is scheduled to send. Scheduled messages will be highlighted in green.

From

The name of the person that sent the message.

Message

The content of the message. If the message is longer than the width of the column, you will see “…” at the end of the message.

Note

Click on the message link to view the full message text and the list of recipients. Inside that list of Recipients, you will find each person’s Name, their Cell Phone number, an indication of whether or not they were Sent the text message, and then why/why not, based on the information in the Number and Opt-In columns. The Number column indicates whether that person has a cell phone on their record. The Opt-In column indicates whether they are opted in to receive SMS messages or not.

Included

The number of people in the recipient list that received the message.

Excluded

The number of people in the recipient list that did not receive the message. This could be because the person did not have a cell phone number on their record, or because they were not opted-in to receive SMS messages. Click on the Message link to see those details.

Action

Click the red Delete button to delete a scheduled SMS message.

Received Tab

This is a list of received SMS messages, sorted by most recent at the top. The top section allows you to filter the results the same way you do on the Sent tab. The main section contains several columns of information.

Received

The date and time that the message was received.

Recipient

The name of the group (and associated number) that received the message.

Sender

The name of the person (if they exist in the database) and number who sent the message. Click the person’s name to go directly to their record.

Note

Click the blue arrow to the left of the person’s name or number to reply. The Reply To Received Text dialog box will pop up. Enter your message in the Message field and click the blue Send button to send it. Once you send a reply, the arrow will turn gray to indicate that someone has already replied to that message. The reply message will also display on the Sent tab.

Message

The content of the message. Click the message link to see the details.

Reply Words Tab

Here you can configure reply words for each group. Each group can have their own reply words and the same word can be configured to trigger a different action in each group.

UNSTOP, STOP, START, STOPALL, and STOP ALL (along with corresponding messages) are automatically configured for each Twilio group. The START reply is automatically sent when someone opts in to a group, whether through a reply word, through checking the box on their Subscriptions tab, or the first time they are sent a text message from that group.

START and STOPALL are automatically configured for each MBT group.

Note

Compliance messaging (i.e. START and STOPALL) for PBT Groups is managed and sent by PBT.

When an SMS recipient replies with a configured Reply Word, an action is triggered. Along with specifying the action to be performed, you may also indicate a message that will be sent in response to their reply. You may configure different messages for those who are Known Senders (in your church database) than for the Unknown Senders (those who may not be in your database or who don’t have a phone number on their record). If no message is configured, a default message will be sent. Available actions and default Reply Messages are below:

  • Attending: The replying person RSVPs for the designated meeting.

    Default Message: {name} has been marked as {markedas} to {orgname} for {meetingdate}.

  • Regrets: The replying person sends Regrets for the designated meeting.

    Default Message: {name} has been marked as {markedas} to {orgname} for {meetingdate}.

  • Record Attendance: The replying person is marked present for the designated meeting.

    Default Message: Recorded Attendance to {orgname} on {meetingdate} for {name}.

  • Add to Organization: The replying person is joined to the designated Involvement.

    Default Message: {name} has been added to {orgname}.

  • Add to Smallgroup: The replying person is added to the designated small group in the designated Involvement. If the person is not already a member of the Involvement, they are joined.

    Default Message: {name} has been added to {smallgroup} group for {orgname}.

  • Send a Reply: The configured reply is sent to the person who replied with this word; this is good for sending links to people who express an interest. Known Senders are numbers from people that exist in your database. Unknown Senders are numbers from people that are not in your database.

    Default Message: Thank you for your message.

  • Run Python Script: Upon reception of the Reply Word, the system runs a python script. See the section below for information on available variable to use in the script.

    Default Message: Script run.

You can also add a default action that will be taken when the incoming SMS does not contain a defined reply word. To do this, create a reply word as described below, but leave the Reply Word blank and select the desired Action.

Reply Words can be followed by other text as long as (1) the Reply Word is at the beginning of the SMS message and (2) is followed by a space or punctuation. For example, if your reply word is Send info, the action will be triggered by the incoming SMS message Send info to me, please, but not by the message Send information, please since in the latter case Send info was not followed immediately by a space or by punctuation.

Follow the steps below to add a reply word for a group:

  1. Select one of the Twilio groups from the drop down list of available groups.

  2. Click the + Reply Word button to add a reply word.

  3. Enter the keyword in the Reply Word field. See below for a list of keywords that cannot be used since they are already used by the Twilio system.

  4. Select the Action that will be triggered by the reply word.

  5. Enter a Reply Message for Known Senders and/or Unknown Senders. If nothing is entered in this field, a default message is sent (see above). If you don’t want a message to be sent, enter None. The limit for Reply Messages is 160 characters. See the Note below for more information on Replies from Unknown Numbers.

  6. Depending on the Action selected, you may also need to enter additional information. If so, you will be prompted to the right of the Reply Message field. For example, for the Attending action, you will need to enter the meeting ID.

    Note

    Replies from Unknown Numbers

    When replies with a Reply Word are received from an unknown number, the system can not complete actions such as opting in/out or adding the person to an Involvement, meeting, or small group. For such situations, you can define a Reply Message to send to the unknown number.

    You may define a Reply Message per Action, or leave that blank to allow the Default Reply Message to be sent to the unknown number. For example, you might want to send the reply, “We don’t recognize this number. Please update your account here: https://yourchurch.app.tpsdb.co/profile/information,” providing the deeplink so the user can update their cell phone number in the mobile app.

    To configure the Default Reply Message for all Twilio groups, enter the message as the Value for the Administrative Setting DefaultReplyUnknownNumbers by navigating to Admin > Advanced > Settings > Integration > Twilio. If you do not want any reply sent in such cases, enter None as the value for this setting.

Tip

The “Insert Special Link” button allows you to include the same special links you can use with emails. For example, TouchPoint can automatically reply with an event’s registration link when someone texts a specific reply word to the church. This only works with Known Senders, not Unknown Senders.

Warning

There are certain default keywords used by Twilio that should never be used for your own Reply Words. They are:

  • CANCEL, END, UNSUBSCRIBE, or QUIT

  • YES

  • HELP or INFO

HELP and INFO will never be forwarded to TouchPoint. The others should only be used for Opt Out and Opt In, although with the Opt Out keywords above, the TouchPoint Reply Message will never be received since the user’s phone number has already been unsubscribed in the Twilio system.

Opt In and Opt Out

  • START and UNSTOP Twilio keywords are used for opting in and opting out of groups. However, be aware of the following: Twilio is not aware of the groups in TouchPoint, so if someone opts in or out using a Twilio keyword, Twilio will subscribe or unsubscribe them to the phone number that sent the message they are replying to, while TouchPoint will subscribe or unsubscribe them to the group.

  • If someone unsubscribes using STOP, TouchPoint will unsubscribe the user from the appropriate group and the sender will only receive a compliance message from Twilio.

  • If someone unsubscribes using STOP ALL, or STOPALL, TouchPoint will toggle the Allow SMS flag to off, and the sender will receive a compliance message from Twilio.

  • If someone opts in using START, they will receive a message from Twilio and TouchPoint.

  • If they text using UNSTOP, they will receive a reply message only from Twilio.

Context Information Available for the Run Python Script Action

If a Python script is triggered by a Reply Word, you will likely need to use some of the context data available. Below is a list of variable you can use in the Python script:

  • Data.ToNumber the Twilio phone number used to send the original message

  • Data.ToGroupId the Twilio Group ID in Touchpoint (Should you need to use this, the information is stored in dbo.SMSGroups. You can see the ID for a group with the simple SQL command SELECT * FROM dbo.SMSGroups.)

  • Data.FromNumber the user’s number from which the reply was sent

  • Data.Message the contents of the reply (in this case, the Reply Word)

  • Data.PeopleId the sender’s TouchPoint people ID

  • Data.Name the sender’s full name

  • Data.First the sender’s first name

To send a response by script, simply use the print command. Any printed text will be returned as a reply. If no reply is provided, the default reply will be used, which may not make sense.

Additionally, if an error occurs during the script execution, the error message will be sent as a reply ONLY if the person associated with the number has an Admin or Developer role. For other users, the default response will be sent.

Duplicate Cell Phone Numbers

It is possible that a cell phone number is on multiple records in your database. A child, for example, may have a parent’s cell phone number added during Check-In. When sending a text, this does not present a problem. The message is sent to everyone in the send group who has a valid cell phone number. If multiple people in the send group have the same cell phone number, the text is sent to that number once per person.

But when replies with a Reply Word are received from a cell phone that is on multiple records, how does the system determine who the reply is from? The system will assume the reply comes from the older person that has that cell phone number on record. If one of them has no age, family position will be considered. For example, records of Primary Adult or Secondary Adult would be selected before records of Child.

The solution described in the preceding paragraph, with its inadequacies, can be avoided by ensuring that duplicate cell phone numbers do not exist on your database. Below is code for an SQL script that will allow you to find any duplicates. In Administration > Special Content > SQL Scripts, create a file named Duplicate Cell Phones and copy the code below into it. After you save and run the file, you will have the option of adding it to your Reports menu for easy access.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
with dups as (
	select CellPhone, FamilyId, count(*) Cnt from dbo.People
	group by CellPhone, FamilyId
),
peeps as (
	select
		trim(dbo.FmtPhone(d.CellPhone)) Cell,
		Cnt,
		p.FamilyId,
		p.PeopleId,
		p.Name2 [Name],
		fp.Description Position,
		p.Age,
		g.Description Gender,
		p.GenderId,
		ms.Description MemberStatus,
		p.PositionInFamilyId
	from dups d join dbo.People p on p.FamilyId = d.FamilyId and p.CellPhone = d.CellPhone
	join lookup.FamilyPosition fp on fp.Id = p.PositionInFamilyId
	join lookup.MemberStatus ms on ms.Id = p.MemberStatusId
	join lookup.Gender g on g.Id = p.GenderId
	where Cnt > 1
)
select
	Cell,
	Cnt,
	LinkForNext = formatmessage('/Person2/%i', PeopleId),
	[Name],
	PeopleId,
	Position,
	Age,
	Gender,
	MemberStatus
from peeps
where len(Cell) > 0
order by MemberStatus, Cell, PositionInFamilyId, Age desc, GenderId

Blue Toolbar Functions

The options on the blue Toolbar are most useful when you have filtered the results on the page. You can, for example, filter to find messages sent by a particular person during a specific date range. The following blue toolbar functions can be performed on the filtered or unfiltered page results:

Envelope Icon

Under the envelope icon are options for emailing to all the recipients of the listed messages or sending a text to all the recipients of the listed messages.

Tip

To send a follow up email or SMS message to the recipients of a previous SMS message, you must first filter your SMS message list. Set your filter options so that only the message(s) you want to see is in your filtered list. Once filtered, use the envelope icon to send an email or SMS message to the recipients of the filtered message(s).

Cloud Icon

Under the cloud icon is the option to export the listed items. The exported Excel sheet will have the following columns when generated from the Sent tab:

  • PeopleID - the peopleID of the recipient

  • FirstName - the first name of the recipient

  • LastName - the last name of the recipient

  • CellNumber - the cell phone number of the recipient

  • EmailAddress - the email address of the recipient

  • MemberStatus - the recipient’s member status

  • Group - the Twilio group from which the message was sent

  • Sender - the name of the sender

  • DateReceived - the date the message was sent

  • Time - the time the message was sent

  • Message - the body of the message

When the export is generated from the Received tab, the following columns are included:

  • FromPeopleId - the PeopleId of the sender

  • FirstName - the first name of the sender

  • LastName - the last name of the sender

  • CellNumber - the cell phone number of the sender

  • EmailAddress - the email address of the sender

  • MemberStatus - the sender’s member status

  • Group - the Twilio group to which the reply was made

  • ToNumber - the specific number the reply was sent to

  • DateReceived - date the message was received

  • Time - time the message was received

  • Message - the body of the message

Gear Icon

Under the gear icon is the option to add all the recipients of the listed messages to a tag.



Latest Update

5/15/2024

Updated roles needed.