Why Twilio
Waitlist App Premium uses Twilio to send SMS from the server — automatically when a customer is added, notified, or seated, and on demand from the dashboard or from Claude via the MCP integration. Twilio is not included in your Premium subscription; you pay Twilio directly for the messages you send. Typical costs in the US are about $0.0083 per SMS plus a phone number rental of about $1.15/month. For a small restaurant sending 200 texts a month this is under $3 total.
If you would rather not pay for SMS at all, the free version of Waitlist App opens your phone's native SMS app with a pre-filled message — that costs nothing beyond your existing mobile plan. Twilio is only required when you want the server to send texts automatically without you tapping anything.
Step 1: Create a Twilio Account
- Go to twilio.com/try-twilio and sign up. Twilio gives new accounts a small free trial credit (typically $15) you can use to verify the integration works before you fund the account properly.
- Verify your email address, then verify your personal mobile phone number — Twilio uses this for account recovery.
- Answer the onboarding questionnaire. When asked “What do you want to do first?”, pick Send an SMS. When asked “Which language?”, you can pick anything — Waitlist App never touches Twilio's client libraries. For channel, pick SMS.
- Land on the Twilio Console.
Step 2: Get a Phone Number
On the Console home, look for Phone Numbers → Manage → Buy a number. Filter by your country and enable the SMS capability checkbox. Pick any local number — it will be the “From” number your customers see.
Local Number vs. Toll-Free vs. Short Code
- Local number (recommended): ~$1.15/month. Looks like a real phone in your area code. Best for restaurants, salons, clinics. Requires 10DLC registration in the US (see Step 3).
- Toll-free number: ~$2/month plus verification. Looks like
+1-888-xxx. Good if you serve a national audience. Needs toll-free verification, which takes a few business days but has higher throughput and better deliverability than an unregistered local number. - Short code: Five or six digits, meant for high-volume senders (10,000+ messages/day). Overkill for a single location waitlist — skip.
Copy the Number
Once purchased, the number appears under Phone Numbers → Manage → Active Numbers. Click it and note the number in E.164 format, which looks like +14155552671. You will paste this exact string into Waitlist App's From Number field.
Step 3 (US Only): Register for 10DLC
If you are in the United States, US carriers will aggressively filter — or outright block — unregistered SMS traffic from local numbers. The program that solves this is called A2P 10DLC (Application-to-Person 10-Digit Long Code). You register a Brand (your business) and a Campaign (what you send) and the carriers let your messages through.
In the Twilio Console, navigate to Messaging → Regulatory Compliance → Brands. Start a Low Volume Standard brand registration. Required info: legal business name, EIN (or your SSN if you're a sole prop), business address, website, and a contact email. Approval is automated in most cases and takes minutes.
Then create a Campaign. Use-case: Customer Care. Sample messages should match what you actually send — just paste your Waitlist App templates (e.g. “Your table at Main St. Grill is ready. Please return within 10 minutes.”). Mark Direct lending as No. Opt-in language: “Customers consent to SMS notifications when they provide a phone number while joining the waitlist.”
Finally, assign your phone number to the campaign under Messaging → Services. This is what creates the “Messaging Service SID” starting with MG. You'll paste that into Waitlist App's optional Messaging Service SID field — it's preferred over a bare From Number because it handles carrier routing automatically.
You can send SMS without 10DLC while you're waiting for approval, but deliverability will be poor in the US. Outside the US, 10DLC does not apply — use the bare phone number.
Step 4: Grab Your API Credentials
Still in the Twilio Console, click the logo in the top-left to return to the dashboard. The Account Info panel at the bottom shows:
- Account SID — starts with
ACfollowed by 32 hex characters. Copy it. - Auth Token — hidden by default; click View to reveal. Copy it.
Important: the Auth Token is the master password for your Twilio account. Treat it like a credit card number. Waitlist App stores it with Laravel's encrypted cast, but you should still treat it as sensitive everywhere it travels (your clipboard, your password manager, your team chat logs).
Step 5: Connect to Waitlist App Premium
- Log in to your Pro dashboard and open Settings → Integrations.
- Paste your Account SID into the matching field.
- Paste your Auth Token. On first setup the token is required; later you can leave it blank to keep the stored value.
- Paste your From Number in E.164 format (starts with
+, no spaces or dashes). - If you registered a Messaging Service for 10DLC, paste its SID (starting with
MG) into Messaging Service SID. This overrides the From Number when present. - Toggle Integration Enabled on.
- Click Connect Twilio. We call Twilio's Accounts API to verify the credentials before saving — if the SID or token is wrong, you'll see an error immediately and nothing is saved.
Step 6: Send a Test Message
Once connected, the integrations panel exposes a Send Test SMS box. Put in your own phone number (E.164) and click send. You should receive “Test message from your WaitlistApp Pro integration.” within seconds.
If the test fails, the error message from Twilio is passed straight through — common ones:
- 21211 Invalid 'To' number: You didn't use E.164 format. Re-enter as
+14155552671. - 21606 The 'From' number is not a valid phone number: Make sure the number is attached to your Twilio account and SMS-enabled.
- 21610 Unsubscribed recipient: The recipient previously texted STOP. Have them text START to your Twilio number to resubscribe.
- 30034 US A2P 10DLC Campaign Not Registered: Complete Step 3. Until then, messages to US carriers will be filtered.
- 20003 Authenticate: Wrong SID or Auth Token. Double-check both values.
Step 7: Configure When SMS Auto-Sends
Connecting Twilio alone does not send any SMS — you also need to tell Waitlist App when to use it. Open Settings → SMS Alerts and toggle on the events you want automated:
- Added to Waitlist — fires the moment a customer is added, useful for sending them a tracking link.
- Ready / Your Turn — fires when you mark the entry notified. This is the classic “your table is ready” text.
- Seated / Completed — fires when you mark them seated. Useful for thank-you + review request.
Each event has a customizable template. See our SMS Alerts & Templates guide for template best practices and the available placeholder variables.
Cost Planning
Twilio charges per segment (a segment is up to 160 GSM-7 characters, or 70 Unicode characters if you use emoji). Most waitlist templates fit in one segment. At roughly $0.0083/segment in the US:
- 100 notifications/month → ~$0.83
- 1,000 notifications/month → ~$8.30
- 5,000 notifications/month → ~$41.50
Add the $1.15/month number rental and any 10DLC registration fees (~$4 one-time + ~$2/month per campaign). Fund your Twilio account via Billing → Manage Billing with auto-recharge set to a low threshold (e.g. refill $20 when balance hits $5) so you never run dry mid-service.
Security Notes
- Waitlist App encrypts your Twilio Auth Token at rest using Laravel's built-in encrypted cast, keyed by
APP_KEY. The token is never returned to the browser in plaintext — the Integrations UI shows it masked. - If you suspect your token has leaked, rotate it immediately in the Twilio Console under Account → API keys & tokens → Primary Auth Token, then paste the new token into Waitlist App and save.
- Do not share your Account SID + Auth Token in support tickets, screenshots, or chat logs. Treat them like banking credentials.
Disconnecting
If you want to stop using Twilio, click Disconnect in the Integrations tab. This deletes the stored credentials from Waitlist App — it does not cancel your Twilio account or release your phone number. Do that from the Twilio Console separately.