4 Integrated Short Codes for $25/mo Shared by Josh LeVeque, West Side Christian Church 4 years ago 10.0 Communications Intermediate We've used a 3rd party for text message announcements for a while now. We've found that people respond well to texting a keyword to a short code during our services.Earlier this year, we found simpletexting. They offer unlimited keywords for as low as $25 per month. For stage announcements and announcement screens, we try to use a keyword and a short code for the action. For example: "text rock to 94090 to sign up"The only downside was, we didn't have a way to know who texted without doing 2 things. Logging into our simpletexting account to see the numbers that texted in.Looking up those numbers in Rock and doing something with them.Well, their API resolved that for us.If you have them activate an API you can configure a Webhook to forward your SMS messages to.Each new message that is delivered will be forward to a URL you choose with ?subject=&from=2175551234&to=94090&text=rock added to the URL.With that you can create a workflow to process these responses into something in Rock.Disclosure: We did use the Blue Box Workflow Stimpack to accomplish creating groups dynamically in Rock.Here's the workflow I used on the page.Attributes:from FT: Phone Numbertext FT: Textto FT: TextPerson FT:PersonGroup FT:GroupWaitCounter FT:IntegerAlert FT: IntegerACTIVITIES Start Actions: Persist (Workflow Persist) Filter: to = 94090 I usually don't set my WFs to auto persist, just in case they get lots of clicks Process (Activate Activity) Filter: text is not blank Activates PROCESS activity Process Actions: Set Person (Attribute Set Value) Attribute: Person Lava:{% phonenumber where:'Number == {{Workflow | Attribute:'from'}}' Limit:'1' %} {% for item in phonenumberItems %} {{item.Person.PrimaryAlias.Guid}} {% endfor %} {% endphonenumber %} Set Group (Attribute Set Value) Attribute: Group Lava:{% assign textMessage = {{Workflow | Attribute:'text'}} %} {% group where:'Name == "{{textMessage}}" && GroupTypeId==42' securityenabled:'false' %} {% for item in groupItems %} {% assign groupId = {{item.Guid}} %} {% endfor %} {% endgroup %} {{groupId}} NOTE: Securityenabled:'false' is why you need v10 or higher. Without this, it will create a new group every time it gets a text because it can't lookup the existing groups. Notify Of New Group (Email Send) Filter: Group is blank I have the system send me an email for any time that a new group is created. Creating a new text Group for keyword: {{Workflow | Attribute:'text'}} View the group here. Sender: {{Workflow | Attribute:'Person'}} NOTE: I have all these as a specific group type under a specific branch. My view the group here links to that branch expanded in group viewer. Create Group (Set Entity Properties) Filter: Group is blank Entity Type: Group Properties Key:GroupTypeId Value:(the group type I use for my text response groups) Key:ParentGroupId Value:(the parent group Id I use for my text response groups) Key:Name Value:{{Workflow | Attribute:'text' }} NOTE: This is the Stimpack! Add to Group (Group Member Add From Attribute) Filter: Person Is Not Blank NOTE: hopefully you don't have to ask which attributes to select, they're your only options. Wait if person not in Rock (Activate Activity) Filter: Person Is Blank Activates WAIT activity Wait Actions: Set Alert on new or 7 day increments (Attribute Set Value) Filter: WaitCounter Greater than 0 Attribute: Alert Lava: {% assign MyCounter = {{Workflow | Attribute:'WaitCounter' %} {{ MyCounter | Modulo:7 }} Notify (Email Send) Filter: Alert = 0 {{Workflow | Attribute:'from' }} texted {{Workflow | Attribute:'text'}} on {{Workflow.CreatedDateTime}}. This name was unmatched, we'll keep trying. To delete this request, visit: URL NOTE: Sends me an alert on the first try and every 7 days thereafter Increment Counter (Attribute Set Value) Attribute: WaitCounter Lava: {{Workflow | Attribute:'WaitCounter' | Plus:1}} Wait (Delay) Minutes to delay: 1440 Reprocess (Activate Activity) Reactivates PROCESS activity. And there you have it, just place that workflow on a page of your choosing and enter the URL into the API settings on simpletexting. It will dynamically create new groups as you get texts. Each time it creates a new group,it will notify a person of you choosing. If it can't find a person, it will wait until the next day to try again. If it can't find a person after 7 days, it will email you to let you know.