SMS loyalty member club compliance issues and tips

Understanding compliance is a huge issue when spinning up a customer loyalty system especially in highly regulated markets. We have compiled a list of top things to lookout for in order to run successful SMS programs in both the United States and Canada.

Alpine IQ SMS / MMS campaign builder

Opt-in / consent
Always offer transparent opt-in options such as via email, text message, e-signature, or voice recording confirmations. At Alpine IQ we provide you with a dedicated multi-device friendly form for users to opt-in to your loyalty programs. However, if you are importing data into Alpine via flat files, POS, or other type of data storage systems, it is up to you to ensure your checkout staff only obtain loyalty phone numbers with full consent before importing. This is clearly defined in our Terms And Conditions of using our platform in section 10.6: Consumers must consent clearly to all recurring messages. After you receive a phone number from the customer always attempt to send a confirmation of the subscription to your loyalty membership and that their age is above the local law for highly regulated communications (This is automated in Alpine IQ because of our local compliance law engine). For recurring messages programs, confirmation messages must include clear opt-out instructions.

It is extremely important that you initiate a double-opt-in. This means that when someone joins your club, you have Alpine IQ send them a “Please confirm your subscription to the club by replying Y or YES.” The drop-off of users that do not reply Y is minimal and this feature protects you from:

  1. Accidentally texting someone underage for your products/ services
  2. Texting a fake phone number your customers give you in order to bypass requirements in order to receive club perks manually entered in store (if applicable)
  3. Texting someone that an employee added in a non-compliant fashion
  4. Breaking CTIA, FTC, GDPR, CCPA, CASTL, etc. privacy acts.

Points systems and incentivizing purchases
Based on geography retailers have different interpretations of the law. There are 2 main options and Alpine IQ has both readily available.

  1. Publicly notify the user that they are accruing points for spending money with your store. Example: For every $100 you spend you get $1 dollars worth of points. (1% cash back essentially). This is the most common and easy to understand system for consumers.
  2. Message users with product discounts/ promotions but do not make it about points or is triggered by specific their “usage” or “high volume of consumption with your brand”. This incentivizes “excessive use” mentality and IS a common interpretations of the law especially in British Columbia for example. If you fall into this bucket of operators please refrain from rewarding points. Instead you can simply get loyalty members on the per-disposition that they will receive current store product promotions, news, and other information related to your store. Like a mailing list but triggered by other audience builder traits we might offer in Alpine.

NOTE: In Alpine IQ you can use our macros and dynamically generated redemption page to populate and showcase the following values to your loyalty members:

{{loyaltyPointValueUSD}} | {{loyaltyPointValueCAD}} | {{loyaltyPoints}} | {{redeemLoyaltyURL}}

In highly regulated markets, due to still looming Federal laws in the US, using custom short codes is still very much frowned upon by US carriers and filtration could severely disrupt your loyalty system if you get flagged. Most carriers will not even notify you that you have been flagged and your messages will not reach customers.

You also should not use a short code because they have seen heavy filtration by Sprint and T-mobile. Also, if you create a short code and build up a loyalty program with a platform you end up hating or who goes belly up, you cannot transfer your old loyalty members to the new short code without obtaining e-sign opt-in all over again! The CTIA Short Code Monitoring Handbook addendum states that you cannot transfer opt-ins across short codes! Meaning your stuck with your provider unless you want to lose your amazing customer base and hope they all opt-in again.

Instead we recommend having a local number based on your stores location. In Alpine this is automatically purchased for you to ensure maximum delivery.


Sending multimedia through with your SMS is generally great if you want to make a more branded experience. With Alpine IQ you can send images, videos, audio files, or informational PDF’s. Please note that any visual file sent should also include any compliance restricted special statements required by your local laws. In Alpine, we surface those special statements through our geo guide for compliance.

Message length
Up to 1600 characters is common across most carriers (AT&T, Verizon, T-Mobile) except (Sprint) who does not support concatenation and messages are sent via several blocks. In Canada (Rogers Wireless, Bell Mobility, Telus, Fido Solutions) message length is limited to Inbound long code: GSM 3.38=136, Unicode=70 Outbound long code: GSM 3.38=136, Unicode=70.

Blacklisted words
It is highly recommend you leave out highly regulated terms. Repeated use of such words can draw attention to your brand. Instead focus on the customers favorite products in your messages, events you are sponsoring or mentioning wanting to see them. You will see blacklisted words surface in the platform to notify you of specific restrictions.

Sending messages outside of 8am-9pm local time for the device is prohibited by the TCPA (Telephone Consumer Protection Act) and Alpine IQ enforces this in our software and as a safety net, we have a 10-8pm window. We find local time for each device based on the address or zip on file for their persona, or if that is empty, we deduce timezone from the area code of the phone number. If neither option is available (extremely rare) we default to CST timezone.

Appending opt-out instructions at least once per month is recommended by the CTIA. In Alpine IQ if the number of days since the last SMS sent to a customer is over 25 days, we automatically append opt-out instructions to comply.

Personalized messages
Dynamically generating messages is a great way to set yourself apart from being annoying and being their best friends down the block. Macros let you populate a specific slot in your messages with a value that is specific to the user receiving the message. If a value isn’t available for that user then they will just not receive the message.

Examples of Macros:
{{firstName}} | {{lastName}} | {{fullName}} | {{email}} | {{state}} | {{city}} | {{lastOrderedProduct}} | {{lastOrderedBrand}} | {{lastOrderedCategory}} | {{favoriteStore}} | {{reviewWidgetURL}} | {{redeemLoyaltyURL}} | {{loyaltyPoints}} | {{loyaltyPointValueUSD}} | {{loyaltyPointValueCAD}} | {{date}}

You put this:
“Hey {{firstName}}, This is Jason down at {{favoriteStore}}.Just thought I’d let you know we have a brand discount going on for {{lastOrderedBrand}}. You can use your loyalty reward available here:{{redeemLoyaltyURL}} when you come in. Hope to see you soon.

Consumer sees this:
“Hey Nick, This is Jason down at Pine & Pow CO. I just thought I’d let you know we have a brand discount going on for Marley Natural. You can use your loyalty reward available here: http// when you come in. Hope to see you soon.

Max messages to a single number per month should not exceed 20.
This isn’t a law but is optimal to prevent mass unsubscribes and annoyed customers. Alpine IQ automatically stops you from messaging more than 20 times per month regardless of their loyalty position, other SMS campaigns they fall into, etc.

To get the latest updates on our suite of services, make sure to subscribe to our blog today!