Skip to main content

IoT Alerts: Sending SMS Notifications with Ubidots

Trigger SMS text alerts from your IoT devices when sensor data crosses a threshold, a device goes inactive, or a geofence is breached. Reaches any mobile phone.

Written by Sergio M

Send SMS text messages automatically from your IoT devices when sensor data meets a condition you define — a temperature breach, a device offline, a geofence exit. SMS reaches any mobile phone with cellular reception, no app install or data plan required.

To send SMS alerts from Ubidots, create an event with a trigger condition (value-based, inactivity, geofence, or context-based) and add a Send SMS action. The message can include dynamic placeholders like device name, current value, and timestamp.

When to use SMS for IoT alerts

  • Recipients without smartphones or stable data coverage — SMS works on any cellular phone.

  • Regulated industries that require an SMS audit trail (utilities, healthcare, public safety).

  • Field operations in low-signal areas — SMS reaches phones where data networks fail.

  • Markets where WhatsApp adoption is low — North America, parts of Europe, parts of Asia.

  • Escalation chains — SMS as the fallback after WhatsApp or push notifications go unread.

Requirements

  • An Ubidots account on the Industrial plan or higher.

  • One or more recipient phone numbers with country code.

  • Sufficient SMS credit on your account (messages are billed per country and destination prefix — see the pricing schedule).

1. Create a new event

Go to the Data → Events section and click the + button at the top right. Choose the event type that matches your need: conditional, global, or scheduled.

Configure the trigger logic with AND/OR conditions. The trigger types are documented separately: value-based, inactivity, geofence, and context-based.

2. Configure the SMS action

Once the trigger logic is set, click + add action and select Send SMS.

SMS Ubidots event action: action picker

  1. Recipients — add one or more phone numbers, each with country code.

  2. Active-trigger message — the SMS body sent when the event fires. Use the tag icon at the top-right of the message field to insert dynamic placeholders: device name, variable name, current value, timestamp, and more.

  3. Back-to-normal message (optional) — sent when the trigger condition stops being met. See Back-to-Normal Events.

  4. Timestamp format — by default, timestamps render as YYYY-MM-DD HH:mm:ss TZ. If you'd rather receive UNIX epoch milliseconds, double-click the timestamp tag and delete everything after the pipe (|) symbol.

  5. Repeat action (optional) — fire the same SMS multiple times while the event stays active (max 50 repetitions).

  6. Click Save.

IMPORTANT: SMS alerts support up to 140 characters. Anything longer is trimmed. Lead with the device name and the threshold breached, and keep dynamic placeholders short.

3. Settings tab

Name the event, optionally add a description, apply tags for end-user visibility control, set a cooldown period (in seconds) to mute repeated firings, and define one or more active windows during which the event is allowed to run. Click Save.

Best practices

  • Stay under 140 characters — anything beyond is trimmed silently.

  • Lead with the headline — device name + threshold + action needed, in the first 60 characters. Most preview screens cut off after that.

  • Skip the preamble — "Alert from Ubidots:" wastes 20 characters that could carry the actual data.

  • Use country prefixes carefully — wrong prefix = SMS billed to a different country, sometimes silently dropped by carriers.

  • Pair with voice for critical alerts — SMS for the audit trail, voice to wake the operator.

Pricing & limits

  • Per-message billing: billed by country and destination prefix — see the pricing schedule.

  • Message length: 140 characters maximum. Longer messages are trimmed.

  • Repeat-action limit: max 50 repetitions per event firing.

  • Plan availability: Industrial plan or higher.

Frequently asked questions

Why didn't my SMS arrive?

Common causes: (1) the number is missing or has the wrong country code; (2) the destination carrier silently dropped the message (some prefixes block automated SMS — try a different recipient); (3) the event is outside its active window; (4) the action is muted by the cooldown period; (5) account SMS credit is exhausted; (6) the message exceeded 140 characters and the trimmed body was useless.

My message is longer than 140 characters — what happens?

It's trimmed at 140 characters. Ubidots does not split into multi-part SMS. To send more content, switch to the WhatsApp action (no length cap) or the Email action.

Can I include sensor values, device names, and timestamps in the SMS?

Yes — use the tag icon at the top-right of the message field to insert dynamic placeholders. Watch the character count: each placeholder expands to its actual value at send time and counts against the 140-character limit.

How is cooldown different from active windows?

Cooldown mutes the action for N seconds after it fires, so a flapping sensor doesn't spam the recipient. Active windows define the time-of-day or day-of-week intervals during which the event is allowed to run at all. They compose: an event must be inside an active window AND past its cooldown to fire.

SMS vs. WhatsApp — which should I use?

SMS reaches any phone with cellular reception, no opt-in required, but it's capped at 140 characters and billed per country prefix. WhatsApp supports longer messages, two-way replies, and richer content, but requires recipient opt-in and a provisioned channel. Use SMS for legacy phones, low-data-coverage areas, and markets where WhatsApp adoption is low. See Sending WhatsApp Notifications for the WhatsApp counterpart.

Related articles

Did this answer your question?