Amelia
Booking SMS that reduce no-shows
Reminders people can answer
No-shows hurt every appointment business: the slot is gone and nothing was earned. A reminder the day before helps — and with SMSTunnel it goes out from your own phone and number, on your own plan, so clients can simply reply.
What it sends
Sent to the customer as soon as the booking is made, and again if the appointment moves to a new time.
1 to 168 hours before. This is the one that pays for itself.
Tells the customer that their booking was cancelled.
Your own number gets an SMS on every new booking.
Setup
- 1. Install the SMSTunnel plugin and link your phone: SMSTunnel → Quick Setup, then scan the QR code with the SMSTunnel app (Connections → Link with QR code)
- 2. Install SMSTunnel Notifications for Amelia and activate it. Once it's on WordPress.org: Plugins → Add Plugin, search for that exact name.
Coming to WordPress.org. Want it sooner? Write to us.
- 3. Go to SMSTunnel → SMS for Amelia and turn on the texts you want (all are off at first)
Message placeholders:
{customer_name} {service} {date} {time} {employee} {price} {site_name}
How reminders work
A background task runs every 15 minutes and looks for approved appointments starting within the lead time you set in "Hours before". Each customer's booking is recorded with its start time once it has been texted, so nobody is reminded twice for the same time, and an appointment moved to a new time is reminded again. A booking made less than that many hours ahead gets no reminder.
Texts to the customer follow Amelia's "Notify the customer(s)" option. The add-on covers appointments, not Amelia events.
Phone numbers coming from the booking form are validated before anything is sent: they must start with + and the country code, and premium-rate numbers are rejected — a public booking form should never become a way for someone else to earn money at your expense.
Build it with an AI assistant
Copy this prompt into Claude, ChatGPT, Cursor or Copilot and replace the part in [brackets]. Don't paste your API key into the chat: the prompt doesn't need it.
Help me set up SMSTunnel texts for my Amelia appointments in WordPress.
About SMSTunnel (https://smstunnel.io): my own apps and tools hand text messages (SMS) to my SMSTunnel account, and my own Android phone sends them from my own number, on my own SIM and plan. The phone runs the SMSTunnel app from Google Play (https://play.google.com/store/apps/details?id=io.smstunnel.app), signed in to my account.
What I want: [describe what should send a text, to whom, and when]
How it works:
- Plugins: SMSTunnel (core), the add-on "SMSTunnel Notifications for Amelia" and Amelia.
- The SMSTunnel core plugin (https://wordpress.org/plugins/smstunnel/) links the site to my phone: SMSTunnel → Quick Setup, then I scan the QR code with the SMSTunnel app (Connections → Link with QR code) and approve on the phone. An API key works too: SMSTunnel → Settings → "Connect with API Key".
- Settings: SMSTunnel → "SMS for Amelia". Sections, all off by default, each with its own "Message": "Booking confirmation", "Appointment reminder" (with "Hours before", 1 to 168, default 24), "Cancellation", "Notify the business" (with "Your number", one number).
- Placeholders: {customer_name}, {service}, {date}, {time}, {employee}, {price}, {site_name}.
- Checked every 15 minutes. It respects Amelia's "Notify the customer(s)" option, a rescheduled appointment gets a new confirmation, and bookings made inside the reminder window get no reminder. Appointments only.
- Numbers must start with + and the country code (spaces are fine). A local number with a leading 0 is skipped, one without + is read as if it began with a country code, and premium-rate numbers are always skipped. Each number gets its own text, of up to 1600 characters: a longer one is refused, not cut. If my phone is offline, the texts wait and go out when it is back.
- For custom code, the core plugin has smstunnel_send_sms($phone, $message, $args = array()), with $args 'is_2fa' (sends through the sign-in code endpoint), 'order_id' and 'source'; it returns an array with 'success' and 'messageId', or 'error'. smstunnel_sanitize_recipient($phone) returns the number in international format, or '' when it is invalid or premium-rate.
Rules for your answer:
- Do not ask for my SMSTunnel password or API key and do not put a real key in your answer; I will not paste it in this chat.
- Phone numbers must be in international format (+ and the country code).
- Help me test it with my own number first.
- Only send texts people expect from me. No unsolicited texts. This is a third-party integration built by SMSTunnel.io. It is not affiliated with, endorsed by, or sponsored by Amelia or its trademark owner.