Text Messages
Pickpad can automatically send SMS messages to your customers at key moments in the order journey — no code required. You define scenarios: each one watches for a specific event and fires a customized message when it happens.
How It Works
- Go to Text Messages in the sidebar.
- Create a scenario: choose a trigger event, write your message template, and save.
- That's it — Pickpad sends the SMS automatically when the event occurs.
You can create as many scenarios as you need and have multiple active at the same time.
Trigger Events
Each scenario fires on one of four order events:
| Event | When it fires |
|---|---|
| Order distributed | An order has been assigned to a Pickpad device and is being prepared |
| Ready on pad | The order is placed on the Pickpad and ready for pickup |
| Order taken | The customer picks up the order (detected by weight change) |
| Order finished | The order is fully completed and the pad is cleared |
Choosing the right event
- Notify the customer their order is being prepared → use Order distributed
- Tell the customer to come collect → use Ready on pad — this is the most common use case
- Send a thank-you or review request → use Order taken or Order finished
Message Templates
Templates support variables that are filled in automatically from the order data:
| Variable | What it inserts |
|---|---|
{{name}} | Customer's first name |
{{shortNumber}} | Short order number (e.g. #42) |
{{promiseTime}} | Estimated pickup time (e.g. 2:30 PM) |
{{stationName}} | Name of the kitchen station |
{{locationName}} | Name of the location |
{{pickpadName}} | Name of the Pickpad device |
Example templates
Hi {{name}}, your order #{{shortNumber}} is ready at {{locationName}}! Come grab it 🎉
Your order #{{shortNumber}} is being prepared and will be ready at {{promiseTime}}.
Thanks for your order, {{name}}! Hope you enjoy it. Leave us a review ⭐
Formatting tips
- Keep it short. SMS messages over 160 characters may be split into two messages and billed as two.
- Always include the order number (
{{shortNumber}}) so the customer knows which order you mean. - Avoid special characters like
&,<,>— they don't add value in SMS and can confuse some carriers. - If
{{promiseTime}}is empty (the order has no estimated time), it will appear as blank. Only include it if your POS reliably sends pickup times. - Phone numbers must be in E.164 format (e.g.
+12025551234). Messages to numbers in any other format are silently skipped.
Helpers & conditionals
Templates support a small set of built-in helpers for common formatting needs.
Text case helpers
| Helper | What it does | Example |
|---|---|---|
{{upper variable}} | ALL CAPS | {{upper name}} → JOHN |
{{lower variable}} | all lowercase | {{lower name}} → john |
{{capitalize variable}} | First letter capitalised | {{capitalize name}} → John |
Hi {{capitalize name}}, your order #{{shortNumber}} is ready!
Conditional blocks
Use {{#if variable}} to include text only when a value is present:
Hi {{name}}, your order #{{shortNumber}} is ready!{{#if promiseTime}} Pickup time: {{promiseTime}}.{{/if}}
If promiseTime is empty the pickup-time sentence is omitted entirely. Without the #if, you'd get a trailing Pickup time: . in the message.
Use {{#unless variable}} for the opposite — include text only when a value is absent:
Hi {{name}}, your order is ready!{{#unless pickpadName}} Ask staff for assistance.{{/unless}}
Comparing values
Use {{#if (eq variable "value")}} to branch on a specific value:
{{#if (eq stationName "Drive-Thru")}}Please pull forward to the pickup window.{{else}}Come inside to collect your order.{{/if}}
Combining helpers
Helpers can wrap each other:
Hi {{upper name}}, ORDER #{{shortNumber}} IS READY!
{{#if name}}Hi {{capitalize name}}! {{/if}}Your order #{{shortNumber}} is ready.
Custom Receiver
By default the message is sent to the customer's phone number from the order. If you want all messages for a scenario to go to a fixed number instead — for example, a staff notification — set the Another receiver field when creating or editing the scenario.
This overrides the customer number entirely for that scenario.
Message History
Open Message history (button at the top of the Text Messages page) to see the last 100 messages sent for your account.
Each row shows:
- Phone number
- Message text
- Delivery status: Pending, Delivered, or Failed
- Time sent
Delivery statuses
| Status | Meaning |
|---|---|
| Pending | Accepted by the carrier, waiting for delivery confirmation |
| Delivered | Carrier confirmed the message reached the handset |
| Failed | Delivery failed (invalid number, carrier rejection, etc.) |
Delivery status updates arrive asynchronously — a message may show Pending for a few seconds before flipping to Delivered.