SMS Marketing Tool for Restaurants
Budget: $5,000 – $10,000 USD
Restaurant Text Marketing SMS Product Requirements
We are in need of a “Restaurant Text Marketing Product” that will be used at restaurants running our POS software and at other restaurants who do not run our software.
Restaurant text marketing products help restaurants engage with customers through SMS (text messaging). These tools typically allow restaurants to send promotions, and loyalty rewards directly to a customers’ phone. Here’s how they work:
1. Customer Opt-In
Sign-ups are the responsibility of the restaurant and will happen through QR codes, at reception desks, table tents, on menus, on receipts, on restaurant’s web site, on a facebook type social media page or on a business card.
Pros for using QR Codes:
Free or low cost to generate QR codes.
The restaurant will get a QR code that takes the customer to a url where the customer will fill out an opt in sign-up web form for the restaurant. The customer will be stored in the restaurant’s customer database, in the cloud, by the server software we are creating.
The opt-in web form will include phone number (mandatary), name (optional), date of birth MM/DD (optional but mandatary if the restaurant wants birthday promotions)
The web sign-up form will run on a smart phone or pc.
Free QR Code Generators:
The restaurant can use online tools to create a QR code for free:
QR Code Generator
QR Code Monkey
Google Chrome (Right-click on a URL → "Create QR Code")
How It Works:
Each restaurant gets a custom QR code that links to its opt-in page.
Customers enter their information (e.g. phone numbers) on the opt_in page.
The SMS server assigns them to the correct restaurant’s customer database.
Special offers and events can be sent from the restaurant to the customer.
Some systems allow two way communication with the restaurant customer. We will not implement two way communications at this time but we will later.
The restaurant database looks like this:
CREATE TABLE restaurants (
restaurant_id INT PRIMARY KEY AUTO_INCREMENT,
restaurant_name VARCHAR(255) NOT NULL,
address VARCHAR(255) NOT NULL,
phone_number VARCHAR(15) NOT NULL,
qr_code_url VARCHAR(255),
opt_in_url VARCHAR(255) NOT NULL,
last_campaign_date DATETIME,
total_campaigns INT DEFAULT 0,
total_sms_sent INT DEFAULT 0
);
Explanation of Fields:
restaurant_id: Unique identifier for each restaurant.
restaurant_name: Name of the restaurant.
address: Physical address of the restaurant.
phone_number: Restaurant's contact number.
qr_code_url: URL for the QR code image used in campaigns.
opt_in_url: URL where customers can opt into the SMS campaign (e.g., a landing page or signup form).
last_campaign_date: Date and time of the most recent SMS campaign sent.
total_campaigns: Total number of campaigns this restaurant has run.
total_sms_sent: Total number of SMS messages sent during all campaigns.
Example Data Entry (JSON Representation)
json
{
"restaurant_id": 1,
"restaurant_name": "Joe's Pizza",
"address": "123 Pizza Street, New York, NY 10001",
"phone_number": "(555) 123-4567",
"qr_code_url": "https://example.com/qr-code-joes-pizza",
"opt_in_url": "https://example.com/opt-in-joes-pizza",
"last_campaign_date": "2025-02-07 14:30:00",
"total_campaigns": 12,
"total_sms_sent": 1200
}
Structure of a campaign database.
CREATE TABLE campaigns (
campaign_id INT PRIMARY KEY AUTO_INCREMENT,
campaign_name VARCHAR(255) NOT NULL,
campaign_text TEXT NOT NULL,
scheduled_datetime DATETIME NOT NULL,
number_of_sms_sent INT DEFAULT 0,
segments_selected TEXT, -- Array of selected segments (can be stored as a JSON or comma-separated)
text_messages_opened INT DEFAULT 0,
percent_opened DECIMAL(5, 2) DEFAULT 0.00, -- Percentage of opened messages
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Explanation of Fields:
campaign_id: Unique identifier for each campaign.
campaign_name: Name or title of the campaign (e.g., "Valentine's Day Promo").
campaign_text: The content of the SMS message sent as part of the campaign.
scheduled_datetime: The scheduled date and time when the campaign is set to be sent.
number_of_sms_sent: Total number of SMS messages sent in the campaign.
segments_selected: A JSON or comma-separated list of customer segments selected for the campaign (e.g., "VIP, Local Residents, Birthday"). This could also be an array TEXT[].
text_messages_opened: The number of messages opened by customers (could be tracked via a link or tracking pixel).
created_at The timestamp for when the campaign record was created.
percent_opened: The percentage of messages that were opened. This can be calculated as:
percent_opened = (text_messages_opened / number_of_sms_sent) * 100
2. Automated Messaging & Promotions
Restaurants can schedule messages or send automated responses for things like:
Special Offers (e.g., “Get 10% off your next order!”)
Event Promotions (e.g., “Join us for Happy Hour tonight!”)
Loyalty Rewards (e.g., “You’ve earned a free drink!”)
3. Personalization & Segmentation
Many platforms allow businesses to segment customers based on purchase history, visit frequency, Total visits, Birthday, VIP.
We will support segmenting our sms messages.
Personalized messages (e.g., "Hey [Name], enjoy your favorite burger today with $5 off!") increase engagement. We will allow our customers to enter a name (one field not two) and a birthdate (DD/MM).
4. Two-Way Communication
Some platforms allow customers to respond to texts, enabling feedback, and customer support. In this implementation we will not allow two way communication.
5. Compliance & Opt-Out
Messages must comply with SMS marketing laws (e.g., TCPA/CTIA in the U.S.).
Customers can opt out at any time by replying with “STOP”, “CANCEL”, “UNSUBSCRIBE”, “QUIT”, or “END”.
We have a pdf file with sample code in it.
We are in need of a “Restaurant Text Marketing Product” that will be used at restaurants running our POS software and at other restaurants who do not run our software.
Restaurant text marketing products help restaurants engage with customers through SMS (text messaging). These tools typically allow restaurants to send promotions, and loyalty rewards directly to a customers’ phone. Here’s how they work:
1. Customer Opt-In
Sign-ups are the responsibility of the restaurant and will happen through QR codes, at reception desks, table tents, on menus, on receipts, on restaurant’s web site, on a facebook type social media page or on a business card.
Pros for using QR Codes:
Free or low cost to generate QR codes.
The restaurant will get a QR code that takes the customer to a url where the customer will fill out an opt in sign-up web form for the restaurant. The customer will be stored in the restaurant’s customer database, in the cloud, by the server software we are creating.
The opt-in web form will include phone number (mandatary), name (optional), date of birth MM/DD (optional but mandatary if the restaurant wants birthday promotions)
The web sign-up form will run on a smart phone or pc.
Free QR Code Generators:
The restaurant can use online tools to create a QR code for free:
QR Code Generator
QR Code Monkey
Google Chrome (Right-click on a URL → "Create QR Code")
How It Works:
Each restaurant gets a custom QR code that links to its opt-in page.
Customers enter their information (e.g. phone numbers) on the opt_in page.
The SMS server assigns them to the correct restaurant’s customer database.
Special offers and events can be sent from the restaurant to the customer.
Some systems allow two way communication with the restaurant customer. We will not implement two way communications at this time but we will later.
The restaurant database looks like this:
CREATE TABLE restaurants (
restaurant_id INT PRIMARY KEY AUTO_INCREMENT,
restaurant_name VARCHAR(255) NOT NULL,
address VARCHAR(255) NOT NULL,
phone_number VARCHAR(15) NOT NULL,
qr_code_url VARCHAR(255),
opt_in_url VARCHAR(255) NOT NULL,
last_campaign_date DATETIME,
total_campaigns INT DEFAULT 0,
total_sms_sent INT DEFAULT 0
);
Explanation of Fields:
restaurant_id: Unique identifier for each restaurant.
restaurant_name: Name of the restaurant.
address: Physical address of the restaurant.
phone_number: Restaurant's contact number.
qr_code_url: URL for the QR code image used in campaigns.
opt_in_url: URL where customers can opt into the SMS campaign (e.g., a landing page or signup form).
last_campaign_date: Date and time of the most recent SMS campaign sent.
total_campaigns: Total number of campaigns this restaurant has run.
total_sms_sent: Total number of SMS messages sent during all campaigns.
Example Data Entry (JSON Representation)
json
{
"restaurant_id": 1,
"restaurant_name": "Joe's Pizza",
"address": "123 Pizza Street, New York, NY 10001",
"phone_number": "(555) 123-4567",
"qr_code_url": "https://example.com/qr-code-joes-pizza",
"opt_in_url": "https://example.com/opt-in-joes-pizza",
"last_campaign_date": "2025-02-07 14:30:00",
"total_campaigns": 12,
"total_sms_sent": 1200
}
Structure of a campaign database.
CREATE TABLE campaigns (
campaign_id INT PRIMARY KEY AUTO_INCREMENT,
campaign_name VARCHAR(255) NOT NULL,
campaign_text TEXT NOT NULL,
scheduled_datetime DATETIME NOT NULL,
number_of_sms_sent INT DEFAULT 0,
segments_selected TEXT, -- Array of selected segments (can be stored as a JSON or comma-separated)
text_messages_opened INT DEFAULT 0,
percent_opened DECIMAL(5, 2) DEFAULT 0.00, -- Percentage of opened messages
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Explanation of Fields:
campaign_id: Unique identifier for each campaign.
campaign_name: Name or title of the campaign (e.g., "Valentine's Day Promo").
campaign_text: The content of the SMS message sent as part of the campaign.
scheduled_datetime: The scheduled date and time when the campaign is set to be sent.
number_of_sms_sent: Total number of SMS messages sent in the campaign.
segments_selected: A JSON or comma-separated list of customer segments selected for the campaign (e.g., "VIP, Local Residents, Birthday"). This could also be an array TEXT[].
text_messages_opened: The number of messages opened by customers (could be tracked via a link or tracking pixel).
created_at The timestamp for when the campaign record was created.
percent_opened: The percentage of messages that were opened. This can be calculated as:
percent_opened = (text_messages_opened / number_of_sms_sent) * 100
2. Automated Messaging & Promotions
Restaurants can schedule messages or send automated responses for things like:
Special Offers (e.g., “Get 10% off your next order!”)
Event Promotions (e.g., “Join us for Happy Hour tonight!”)
Loyalty Rewards (e.g., “You’ve earned a free drink!”)
3. Personalization & Segmentation
Many platforms allow businesses to segment customers based on purchase history, visit frequency, Total visits, Birthday, VIP.
We will support segmenting our sms messages.
Personalized messages (e.g., "Hey [Name], enjoy your favorite burger today with $5 off!") increase engagement. We will allow our customers to enter a name (one field not two) and a birthdate (DD/MM).
4. Two-Way Communication
Some platforms allow customers to respond to texts, enabling feedback, and customer support. In this implementation we will not allow two way communication.
5. Compliance & Opt-Out
Messages must comply with SMS marketing laws (e.g., TCPA/CTIA in the U.S.).
Customers can opt out at any time by replying with “STOP”, “CANCEL”, “UNSUBSCRIBE”, “QUIT”, or “END”.
We have a pdf file with sample code in it.