Contents
SMS and Telegram - Plugixa Car Rental
Two extra channels PRO sit beside the booking emails:
- Text messages go to the customer, through Twilio or Vonage, using your own account.
- Telegram alerts go to your team, as a post in a Telegram group or channel, through a bot you create.
Both are sent when a booking’s status changes to one you have ticked. Set them up under Plugixa Car Rental -> Settings -> Text messages and Settings -> Telegram alerts.
Each is an app, on by default in Pro, and each needs the Notifications app: if you switch notifications off in the App manager, no text or Telegram post is sent either.
When a message is sent
Each channel has a list headed Send a message when a booking is, with five boxes:
| Status | Ticked by default | Typical moment |
|---|---|---|
| Confirmed | yes | The booking is confirmed by staff, or by an online payment |
| Cancelled | yes | Staff or the customer cancel it |
| Picked up | no | The car is handed over, for example when a pickup inspection is signed |
| Returned | no | The car comes back |
| No-show | no | Staff mark the booking a no-show |
A message is sent when the booking moves into a ticked status. A new booking waiting for confirmation (Pending) sends nothing until it is confirmed.
Messages are sent “in the background a few seconds after the booking changes, so a slow provider never holds up a customer’s checkout.” They go out through WordPress’s scheduled tasks, so on a site where WP-Cron is switched off or visits are rare, a message can be late. When it is sent, the booking is read again, so the message describes the booking as it is at that moment.
A message that fails is not sent again. Developers can log each attempt with
the plugixa_car_rental_message_sent action; see
Hooks.
Text messages

The card reads: “Texts go to the phone number the customer gave when booking. Bookings without one are skipped.”
Provider and sender
| Field | Default | Notes |
|---|---|---|
| Provider | Twilio | Twilio or Vonage. Only the chosen provider’s key fields are shown. Keys saved for the other provider stay stored. |
| Sender | “A number from your provider account, with its country code (+15551234567), or a sender name where your provider allows one.” A number of 6 to 15 digits, or a name of up to 11 letters, digits and spaces. Anything else is cleared on save. | |
| Your country code | “Added to numbers customers type without one, e.g. +44. Leave empty to text only numbers that start with + or 00.” |
These three are saved with the page’s Save button.
Keys
| Provider | Fields | Where to find them |
|---|---|---|
| Twilio | Account SID, Auth token | “Both are on your Twilio console’s home page.” |
| Vonage | API key, API secret | “Both are on your Vonage API dashboard.” |
Press Save keys under them. Keys are encrypted before they are stored and never shown again; a saved key shows a “Stored” placeholder and a Remove button.
Texts are sent only when the sender and both keys of the chosen provider are saved. Until then the card warns: “Texts are not sent yet: the sender or the provider’s keys are missing.”
Phone numbers
Customers type numbers the way their country writes them. Before sending, each number is put in international form:
| Typed | With country code +351 | Sent to |
|---|---|---|
+44 20 7946 0958 |
(not needed) | +442079460958 |
0044 20 7946 0958 |
(not needed) | +442079460958 |
912 345 678 |
added | +351912345678 |
0912 345 678 |
added, leading 0 dropped | +351912345678 |
Without Your country code, a number that does not start with + or 00
is not texted, rather than guessing a country and texting a stranger. A
number shorter than 8 or longer than 15 digits is skipped too.
Wording
There is one message per status, each in its own box headed Message when confirmed, Message when cancelled and so on. “Leave empty to use the default wording.” The defaults are:
| Status | Default text |
|---|---|
| Confirmed | {site}: booking {reference} confirmed. {vehicle}, pickup {pickup} at {pickup_location}. Total {total}. |
| Cancelled | {site}: booking {reference} has been cancelled. |
| Picked up | {site}: enjoy your {vehicle}. Please return it by {return} at {return_location}. |
| Returned | {site}: thank you, your {vehicle} has been returned. |
| No-show | {site}: we missed you for booking {reference}. Please contact us. |
Each message can be up to 1,000 characters. Longer texts are split and billed as several messages by your provider.
Telegram alerts

The card reads: “Create a bot with @BotFather, add it to your team’s group, and paste its token and the group’s chat ID here.”
Setting up the bot
- In Telegram, open a chat with @BotFather, send
/newbotand follow the steps. BotFather replies with the bot’s token. - Add the bot to your team’s group (or make it an administrator of your channel).
- Find the group’s chat ID. A group’s ID starts with a minus sign, for
example
-1001234567890; a public channel can be given as@name. - Paste the ID into Chat ID and press Save at the top of Settings.
- Paste the token into Bot token and press Save keys. The token is encrypted and never shown again.
- Press Send a test message to check that the post arrives.
Until both are saved the card warns: “Nothing is posted yet: the bot token or the chat ID is missing.”
Wording
Telegram has one message for every status, in the Message box. “Leave empty to use the default wording.” The default is:
Booking {reference}: {status}
{customer_name} · {customer_phone}
{vehicle} {plate}
{pickup} at {pickup_location}
→ {return} at {return_location}
Total {total}
{status} names the status the booking moved to, so one message fits every
event. Telegram posts are plain text; link previews are switched off.
Placeholders
Both channels list the placeholders under their message boxes (“You can use: …”):
| Placeholder | Filled with |
|---|---|
{reference} |
The booking reference, e.g. ADR-2026-0001 |
{customer_name} |
The customer’s name |
{customer_phone} |
The customer’s phone number, as typed |
{vehicle} |
The vehicle model, e.g. Fiat 500 |
{plate} |
The plate of the car assigned, when there is one |
{pickup} |
Pickup date and time, in the pickup location’s time |
{pickup_location} |
The pickup location’s name |
{return} |
Return date and time |
{return_location} |
The return location’s name |
{total} |
The total with its currency code, e.g. EUR 492.00 |
{status} |
The new status: Confirmed, Cancelled, Picked up, Returned or No-show |
{site} |
Your site’s name |
{manage_url} |
The customer’s link to their booking, when the customer portal is on; empty otherwise |
A placeholder spelled wrongly is left in the message as written, so you see the typo in your test instead of losing the text.
Testing
Each section ends with Send a test message. “Save the settings first: the test uses what is saved.” For text messages, type a number in Send the test to; Telegram posts to the saved chat. The test sends “Test message from Atlantic Drive Rentals. Booking messages will arrive like this one.” and shows “Test message sent.”, or the provider’s own reason for refusing it.
What is sent where
| Channel | Sent to | What |
|---|---|---|
| Twilio or Vonage | The provider you chose, from your server | The customer’s phone number, your sender, and the message for that status filled in with the booking’s details |
| Telegram | Telegram’s Bot API, from your server | The chat ID and the message filled in with the booking’s details, which by default include the customer’s name and phone number |
Nothing is sent to either service until you save its keys. Each works under its own terms (Twilio, Vonage, Telegram). See Privacy and uninstall.