Engage
SMS and WhatsApp

SMS marketing for restaurants: costs, consent and what to send

You will be able to work out what each restaurant text really costs per segment, collect SMS consent at your guest WiFi login that meets the TCPA and CAN-SPAM, and send three targeted messages that bring diners back.

14 min read3,378 words

A marketing SMS is billed per segment: 160 plain characters, or 70 if it contains an emoji. Under the TCPA and CAN-SPAM you need specific opt-in consent for SMS. The three messages that bring diners back are a welcome-back offer, a quiet-shift fill and a lapsed-diner win-back, sent to numbers captured at your guest WiFi login.

What does SMS marketing do for your restaurant?

SMS marketing turns one visit into a second one. It reaches the cell phone your diner used to join your WiFi. They read it without opening an app or an inbox. That suits restaurant messages that expire: a free table tonight, a midweek set menu, or a reason to return before the menu changes.

Judge it on commercial outcomes. Measure four of them:

  • Repeat visits.
  • The opt-in rate at your WiFi login.
  • Revenue per send.
  • Lifetime value per diner.

Delivery and click counts help you diagnose problems, but they do not pay for the send.

Sending is the easy part. Mailchimp, Klaviyo, and HubSpot can all send campaigns, but only to contacts you already hold. None of them collects a consented mobile number from the diner at table 12. That gap is real: venues typically know only a small fraction of their guests.

Guest WiFi closes the gap. A diner joins your network, ticks an SMS opt-in on your branded login page and confirms their number. That number joins your first-party data, with a record of the consent behind it. Purple Engage then turns those contacts into campaigns, so the list builds itself while you serve. The Product overview shows how Engage sits on top of your WiFi.

What does SMS marketing cost a restaurant per message?

The real per-message cost is not the headline rate on a provider's price page. It is the rate multiplied by the segments each message uses, multiplied by the people you send it to.

How SMS providers bill you

Every SMS is split into segments under the GSM character standard (3GPP TS 23.038). A message written only in the basic GSM-7 character set fits 160 characters into one segment. One emoji, or one character outside that set, switches the whole message to UCS-2 encoding. A single UCS-2 segment holds only 70 characters.

Longer messages are stitched together from several segments. Each segment gives up a few characters to the joining data. A multi-part GSM-7 message carries 153 characters per segment, and a multi-part UCS-2 message carries 67. Twilio publishes the same limits in its developer documentation.

Your cost formula is: segments per message × recipients × your provider's rate per segment.

The table below shows how length and character choice change the bill. The final column uses 4¢ per segment as a round illustrative figure, not a quoted price. Replace it with your own contract rate.

Message Encoding Characters Segments Cost per 1,000 sends at an illustrative 4¢
Plain-text offer GSM-7 120 1 $40
Plain-text offer at the limit GSM-7 160 1 $40
Plain-text offer with a long link GSM-7 200 2 $80
Plain-text menu announcement GSM-7 320 3 $120
Short offer with one emoji UCS-2 60 1 $40
Offer with one emoji UCS-2 120 2 $80
Offer with one emoji UCS-2 150 3 $120

Compare the last row with the first two. A 150-character offer costs $40 per 1,000 sends in plain text and $120 with a single emoji. Curly quotation marks sit outside the GSM-7 set too. Text pasted from a word processor can trigger the same switch on some platforms, so preview every message before you send it.

What else to ask your provider

Ask four questions before you sign:

  • Is the rate charged per segment or per message, and does it change by destination country?
  • Do you pay for messages that fail to deliver?
  • Is there a monthly minimum, or a fee for an alphanumeric sender ID (your restaurant's name in place of a number)?
  • How are opt-out requests captured and applied to your list?

The last question matters more than it looks. Alphanumeric sender IDs are one-way, according to Twilio's documentation. A "Reply STOP" line only works from a number that accepts replies. If you send under your restaurant's name, include a short opt-out link instead.

Worked example: an 80-seat neighborhood restaurant

Situation. An independent 80-seat restaurant has built 1,500 consented mobile numbers from its guest WiFi over a season. Tuesdays run at half capacity. The owner's POS data shows an average spend of $30 per head.

What they do. The team writes a 150-character Tuesday set-menu message in plain GSM-7 text, with no emoji. That keeps it to one segment. They send it at 2 PM on the day to the full list. The message carries a code that staff note at the register.

Outcome. At the illustrative 4-cent rate, the send costs $60, so two guests pay for it. The first draft carried a smiley face. That version would have run to three segments and cost $180, needing six guests to break even. Deleting one emoji cuts the send cost by two thirds.

You need clear, opt-in consent for SMS specifically, recorded at the moment the diner gives it. In the US, the TCPA and CAN-SPAM apply together. CCPA/CPRA sets the standard for consent.

What CCPA/CPRA requires

CCPA/CPRA defines consent as a consumer's freely given, specific, informed, and unambiguous agreement. At your WiFi login, that means four things.

  • Opt-in, never pre-checked. Rules state that silence, pre-checked boxes, and inactivity do not count as consent.
  • Separate from access. Do not make SMS consent a condition of getting online. Consent tied to a service that does not need it is unlikely to be freely given.
  • Specific to the channel. Ask for SMS separately from email, so the diner knows exactly what they agreed to.
  • Easy to withdraw. Article 7(3) requires withdrawal to be as easy as giving consent. Article 21 gives every diner the right to object to direct marketing at any time.

Purple's conscious-choice opt-ins follow this pattern. The diner gets online either way, and marketing consent is a separate, deliberate check.

What the TCPA and CAN-SPAM add in the US

The Telephone Consumer Protection Act (TCPA) and CAN-SPAM Act govern marketing by text and email. Regulations require prior consent before you send marketing texts to individuals. There is one exception, known as the soft opt-in, where applicable under specific email rules, but texting is governed by strict prior express written consent standards.

The soft opt-in covers people whose details you collected during a sale, or negotiations for a sale. You may text them about similar products, as long as you offered an opt-out at collection and in every message.

A free WiFi login is not usually a sale. Do not rely on the soft opt-in for WiFi-captured numbers; ask for consent explicitly. The FTC and state attorneys general direct marketing guidance also expects every message to identify you and give a simple way to opt out.

What to record

Article 7(1) requires you to demonstrate that a person consented. For every opt-in, keep four records:

  • The date and time.
  • The venue.
  • The exact wording shown.
  • The channel the diner agreed to.

If a complaint reaches the FTC and state attorneys general, that record is what you show them.

If you operate outside the US

US venues fall under the Telephone Consumer Protection Act. FCC rules require prior express written consent for marketing texts sent with automated systems. Purple's login pages are built for compliance with GDPR, CCPA/CPRA and major global data protection acts. They run in over 25 languages, so one login flow can serve sites in several countries. Take local legal advice on the consent wording for each market.

How do you build your SMS list from guest WiFi logins?

You build it once, at the login page, and it grows every service. Purple has run guest WiFi since 2012 and handled 440 million logins in 2024 across 80,000+ live venues (Purple data). Here is the sequence. The linked support articles hold the exact steps.

Step 1: choose the plan that captures contact data

Purple Connect gets guests online securely through a branded login page. Purple Capture adds what SMS marketing needs. It captures contact and demographic information, enriches your CRM database and integrates with the CRM you already run. The Connect vs Capture support article sets out what each plan includes. For the wider picture, see Guest WiFi.

You keep your existing access points. Purple is hardware-agnostic and runs as a cloud overlay on Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme and Fortinet.

Step 2: add a cell phone field and a separate SMS opt-in

Put a cell phone number field on your splash page with an unchecked SMS consent box beside it. Keep the wording plain: what you will send, and how often. For example: "Text me offers and table availability, up to four times a month." Collect email consent on the same page with its own checkbox. Collect customer emails in a restaurant without sign-up forms covers the email side.\n\n### Step 3: connect an SMS provider and verify numbers\n\nPurple's SMS connectors send both marketing SMS and SMS verification messages. A verification text at login confirms the number reaches a working phone, so mistyped numbers never reach your list.\n\nThe MSEGAT connector, for the Saudi Arabian SMS network, shows how setup works. You add your provider's API key in the Purple platform. You then choose whether every venue in your company, or only one group of venues, can use the connector. Once saved, it can take up to ten minutes to appear. Only the cell phone number and the message text pass to the provider. The full steps sit in the MSEGAT support article.\n\n### Step 4: segment in Purple Engage\n\nEach WiFi login carries a date and a venue. That lets you segment diners by first visit, visit frequency and time since their last visit. These three fields drive every message in the next section.\n\n## Which three SMS messages bring diners back?\n\nThree messages do most of the work. Each answers a different commercial question:\n\n- Will a first-time diner return?\n- Can you fill a quiet shift?\n- Can you win back someone who stopped coming?\n\n| Message | Trigger | When to send | Target length | What it asks for | How you measure it |\n|---|---|---|---|---|---|\n| Welcome-back offer | First WiFi login with SMS consent | 2 to 3 days after the visit | Under 160 characters, 1 segment | A second visit within 30 days | Code redemptions and repeat WiFi logins within 30 days |\n| Quiet-shift fill | A shift forecast to run below half capacity | Same day, around 2:00 PM | Under 160 characters, 1 segment | A booking for that evening | Covers on that shift against the same shift over the previous 4 weeks |\n| Lapsed-diner win-back | No WiFi login for 60 days | Once, then not again for 90 days | Under 160 characters, 1 segment | A visit before a stated date | Return WiFi logins against a 10% holdout group |\n\n### Message 1: the welcome-back offer\n\nThis message turns a first visit into a habit. Send it two to three days after the visit, while the meal is still fresh in the diner's mind. Give them a concrete reason to return within a fixed window.\n\nExample (plain GSM-7, under 160 characters):\n\n"[Restaurant]: thanks for visiting on Friday. Show this text for a free dessert with any main before [date]. Opt out: [short link]"\n\nName the day they visited. It proves the message is about them, not a blast to everyone.\n\n### Message 2: the quiet-shift fill\n\nThis message protects margin on nights that would otherwise run half empty. Send it on the day at around 2:00 PM, early enough to change dinner plans. Target diners who have visited that location in the last 90 days, because they live or work nearby.

Example:

"[Restaurant]: tables free tonight. 2 courses for [price] from 5:00 PM, Tuesday only. Book: [short link]. Opt out: [short link]"

Only send it when the forecast is weak. If every Tuesday gets the same text, diners learn to wait for it.

Message 3: the lapsed-diner win-back

This message recovers diners who have drifted. Trigger it after 60 days without a WiFi login at their usual location. Send it once, then leave them alone for 90 days. Pair it with something new, such as a menu change, so the message gives news rather than pleading.

Example:

"[Restaurant]: our spring menu is live. Show this text for 20% off food, Monday to Thursday, until [date]. Opt out: [short link]"

Birthdays work too, but email gives you room for the occasion. Birthday and anniversary email campaigns for venues covers that program.

Worked example: a 12-location pub group

Situation. A 12-location pub group holds 24,000 consented cell phone numbers from guest WiFi logins. Its habit is one monthly text to everyone. At the illustrative 5-cent rate for a one-segment message, that costs $1,200 a send, or $14,400 a year.

What they do. The group replaces the blast with two targeted sends. The win-back goes only to diners with no WiFi login at their home location for 60 days. In a typical month that is 6,000 numbers. The quiet-shift fill goes only to diners at the two locations with the weakest Mondays, which is 4,000 numbers.

Outcome. The win-back costs $300 and the quiet-shift fill costs $200. Monthly spend falls from $1,200 to $500, a 58% reduction. Every text now reaches a diner it is relevant to. A 10% holdout in each segment shows how many return visits the messages actually caused.

How do you know your SMS marketing is working?

Measure what the register and the WiFi logins can prove. Six numbers tell you most of what you need.

  • Opt-in rate at login. This is the share of WiFi logins that check the SMS box. If it falls, rewrite the consent wording before you blame the offer.
  • Delivery rate. Failed deliveries point to bad numbers. Verification at login should keep this rate high.
  • Opt-out rate per send. A spike after one send tells you that message was too frequent, too late, or irrelevant.
  • Revenue per send. Divide attributable revenue from codes and bookings by the cost of the send. The 80-cover example above needed $75 back to break even.
  • Return visits. Count repeat WiFi logins within 30 days of the send. A returning diner's phone logs in again, so you see visits that never used a code.
  • Lifetime value. Compare 12-month visits and spend for diners who opted in to SMS with diners who did not.

Use a holdout group

Opted-in diners are often your regulars already, so raw comparisons flatter SMS. Hold back 10% of each segment at random and send them nothing. The difference in return visits between the two groups is the lift your message created. It is the number to quote when you defend the budget.

What goes wrong, and how do you avoid it?

Most SMS programs fail on cost control, consent or relevance, not on copy.

Emoji and pasted text multiply the bill

One emoji can triple the cost of a 150-character message. Write in plain text and preview the segment count before every send.

If diners must accept marketing to get online, that consent is unlikely to be freely given under CCPA/CPRA regulations. Keep access and marketing as separate choices.

One list for every message

A blast to everyone costs more and earns more opt-outs. The pub group example cut spend by 58% by sending each message only to the diners it fits.

An opt-out that does not work

"Reply STOP" fails from a one-way alphanumeric sender ID. Use a reply-capable number or a short opt-out link. Apply opt-outs to your list before the next send.

A full booking URL can push a 140-character message past 160. Use a short link and count the characters after you add it.

Sending too often or too late

Set a frequency cap, such as four marketing texts per diner per month, and state it at opt-in. A 10pm text about tonight's tables arrives too late to act on. Send same-day offers in the early afternoon.

Unverified cell phone numbers

A mistyped number costs you on every send and never converts. Verify numbers by SMS at login, so only working cell phones reach your list.

Frequently asked questions

How much does SMS marketing cost a restaurant per message?

The cost is your provider's rate per segment, multiplied by the segments in each message and the number of recipients. A plain-text message of up to 160 characters is one segment. Add an emoji and the limit drops to 70 characters, so a 150-character offer becomes three segments. That can triple the cost of every send. Ask providers whether they charge per segment, for failed deliveries, and for an alphanumeric sender ID.

No, a login on its own is not consent. Under CCPA/CPRA, consent must be freely given, specific, informed and unambiguous, and pre-checked boxes do not count. Ask for SMS consent with a separate, unchecked box, and never make it a condition of getting online. In the US, compliance with the TCPA and CAN-SPAM is required, meaning you must obtain prior express written consent before sending promotional texts. Record the time, venue and wording of every opt-in.

Do I need new WiFi hardware to collect cell phone numbers?

No, you keep the access points you already own. Purple is hardware-agnostic and runs as a cloud overlay on Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme and Fortinet. Your diners see a branded login page with a cell phone number field and an SMS opt-in. Their consented numbers then flow into your first-party data and on to Purple Engage for campaigns.

Which Purple plan collects cell phone numbers for SMS marketing?

Purple Capture collects them. Connect gets guests online securely through a branded login page, with CCPA/CPRA and GDPR compliance and WiFi analytics. Capture adds contact and demographic data capture, CRM integration and email verification. It also includes project management, deployment and onboarding services. Purple Engage then turns that captured data into segmented campaigns. The Connect vs Capture support article compares both plans line by line.

How is this different from sending SMS through Mailchimp or Klaviyo?

The difference is where the list comes from. Mailchimp, Klaviyo and HubSpot send campaigns to contacts you already hold, usually from web forms or imports. Purple builds the list at your door. Every diner who joins your guest WiFi can opt in to SMS and confirm their number. Venues typically know only a small fraction of their guests, which is the gap WiFi capture closes.

Can I keep using my existing CRM?

Yes, Purple Capture integrates with your existing CRM to enrich the profiles you already hold. Cell phone numbers, consent records and visit data captured at the WiFi login sit alongside your current records. You do not have to rebuild your database. You can run SMS campaigns from Purple Engage, or continue to use the CRM you have and feed it richer first-party data.

How long does it take to start sending SMS from WiFi data?

Connecting an SMS provider takes minutes once you have its API key. With the MSEGAT connector, you enter the key in the Purple platform, choose which venues can use it and save. It can take up to ten minutes to appear. Your list then grows with every login. Capture includes project management, deployment and onboarding services, so your team does not configure the login page alone.