SMS Task¶
Overview¶
The SMS Task sends text messages to mobile phones. Use it for order confirmations, appointment reminders, delivery notifications, verification codes, alerts, or any time-sensitive communication.
When to use this task:
- Send order/booking confirmations
- Appointment reminders
- Delivery status updates
- Two-factor authentication codes
- Payment reminders
- Emergency alerts
- Promotional campaigns
- Follow-up messages
Key Features:
- Send to single or multiple recipients
- International number support
- Message templates
- Delivery tracking
- Link shortening
- Personalization
- Character count management
- Scheduled sending via workflow
[SCREENSHOT NEEDED: SMS task configuration showing recipient, message, and delivery options]
Quick Start¶
- Add SMS task
- Input recipient phone number (E.164 format)
- Write message (160 char recommended)
- Test with your number
- Save
Simple Example:
To: {{task_24001_e164}}
Message: Hi {{task_49001_first_name}}, your order #{{task_46001_order_id}} has been confirmed!
Result: SMS sent to +15551234567
Configuration¶
Recipient Number¶
Must be in E.164 format: +[country code][number]
Examples: - US: +15551234567 - UK: +447911123456 - South Africa: +27821234567
From Phone Formatter:
Static number:
Multiple recipients:
Message Content¶
Plain text only (no HTML)
Character limits: - Single SMS: 160 characters - Longer messages: Split into multiple (costs more) - With Unicode: 70 characters per message
Best practices: - Keep under 160 characters - Include essential info only - Add opt-out instructions for marketing - Use shortened URLs for links
Message Templates¶
Order confirmation:
Hi {{first_name}}! Order {{order_id}} confirmed.
Total: ${{total}}.
Est. delivery: {{delivery_date}}.
Track: {{link}}
Appointment reminder:
Reminder: Appointment tomorrow at {{time}} with {{provider}}.
Reply CONFIRM or call {{phone}} to reschedule.
Delivery notification:
Payment reminder:
Payment of ${{amount}} due {{due_date}}.
Pay now: {{payment_link}}
Questions? Reply to this message.
Output Fields¶
| Field | Description | Example |
|---|---|---|
task_3001_sent | Successfully sent | true/false |
task_3001_message_id | SMS provider ID | sm_abc123xyz |
task_3001_to | Recipient number | +15551234567 |
task_3001_segments | Number of SMS parts | 1 |
task_3001_status | Delivery status | sent/delivered/failed |
Real-World Examples¶
Example 1: Order Confirmation SMS¶
Workflow: 1. CRM Trigger - Order created 2. Phone Formatter - Format customer phone 3. Formatter - Format currency 4. SMS - Send confirmation
Format Phone:
Format Total:
SMS:
To: {{task_24001_e164}}
Message: Hi {{task_47001_first_name}}! Your order #{{task_47001_custom_order_id}} is confirmed. Total: {{task_6001_formatted}}. Thank you for your purchase!
Example 2: Appointment Reminder System¶
Workflow: 1. Schedule Trigger - Daily at 9 AM 2. MySQL Query - Get appointments for tomorrow 3. Loop - For each appointment 4. Phone Formatter - Format phone 5. Date Formatter - Format appointment time 6. SMS - Send reminder
MySQL Query:
SELECT * FROM appointments
WHERE appointment_date = DATE_ADD(CURDATE(), INTERVAL 1 DAY)
AND reminder_sent = 0
Loop through results
Format Phone:
Format Time:
Input: {{task_29001_appointment_time}}
Format: h:mm A
Output: {{task_14001_formatted}} (e.g., "2:30 PM")
SMS:
To: {{task_24001_e164}}
Message: Appointment reminder: Tomorrow at {{task_14001_formatted}} with Dr. {{task_29001_provider_name}}. Location: {{task_29001_location}}. Reply YES to confirm or NO to reschedule.
Example 3: Delivery Status Updates¶
Workflow: 1. Webhook In - Shipping status update 2. Match to Client - Find customer 3. If Task - Check if status = "out for delivery" 4. Phone Formatter - Format phone 5. SMS - Send update
If Task:
SMS:
To: {{task_24001_e164}}
Message: Great news! Your package is out for delivery today. Tracking #{{task_46001_tracking_number}}. Track: {{task_46001_tracking_url}}
Example 4: Payment Reminder Campaign¶
Workflow: 1. Schedule Trigger - Weekly 2. MySQL Query - Get overdue invoices 3. Loop - For each customer 4. Date Formatter - Calculate days overdue 5. If Task - Send reminder if >7 days 6. Phone Formatter - Format phone 7. SMS - Send reminder
Calculate Days Overdue:
Operation: Difference
Start Date: {{task_29001_due_date}}
End Date: {{task_48001_current_date}}
Unit: days
Output: {{task_14001_difference}}
If Task:
SMS:
To: {{task_24001_e164}}
Message: Payment reminder: Invoice #{{task_29001_invoice_number}} for ${{task_29001_amount}} is {{task_14001_difference}} days overdue. Pay now: {{task_29001_payment_link}} or call {{company_phone}}.
SMS Marketing Compliance¶
Legal Requirements¶
Must include: 1. Opt-out option - "Reply STOP to unsubscribe" 2. Sender identification - Company name 3. Purpose - What message is about
Example compliant message:
ACME Shop: Flash sale! 20% off today only.
Shop now: [link]
Reply STOP to opt out. Msg&data rates may apply.
Best Practices¶
- Get consent - Explicit opt-in required
- Respect opt-outs - Honor STOP requests immediately
- Timing - Don't send late night/early morning
- Frequency - Limit to 2-4 per month for marketing
- Value - Provide useful information
Opt-Out Handling¶
Workflow: 1. Webhook In - SMS reply received 2. Code Task - Check if reply contains "STOP" 3. If Task - If opt-out requested 4. Edit Client - Update opt-out status
Code Task:
const reply = (input.task_46001_body || '').toUpperCase();
const isOptOut = ['STOP', 'UNSUBSCRIBE', 'CANCEL'].some(word => reply.includes(word));
return {
is_opt_out: isOptOut
};
Edit Client:
Contact ID: {{task_15001_contact_id}}
Update: custom_sms_opt_out = true
Add Note: Opted out of SMS on {{task_48001_current_date}}
Character Limits & Encoding¶
Standard SMS (GSM-7)¶
160 characters per message
Allowed characters: - Letters: A-Z, a-z - Numbers: 0-9 - Common symbols: .,!?'"-()@£$¥
Example (140 chars):
Hi John! Your appointment is tomorrow at 2:30 PM at 123 Main St. Reply YES to confirm or NO to reschedule. Questions? Call 555-1234.
Unicode SMS¶
70 characters per message
Used when message contains: - Emojis 😊 - Special characters: €, ñ, ü - Non-Latin scripts: 中文, العربية, עברית
Example (65 chars with emoji):
Multi-Part Messages¶
Long messages split automatically: - 160 chars = 1 SMS - 161-306 chars = 2 SMS (153 chars each) - 307-459 chars = 3 SMS (153 chars each)
Note: Costs multiply with parts. Keep important info early.
URL Shortening¶
Long URL:
Shortened (use URL shortener in Code task):
In message:
Best Practices¶
Message Content¶
- Be concise - Essential info only
- Clear action - What should recipient do?
- Include name - Personalize when possible
- Add context - What is this about?
- Provide alternatives - Phone number or email
Timing¶
- Respect time zones - Send during business hours
- Consider urgency - Immediate vs scheduled
- Frequency limits - Don't spam
- Test timing - Find best delivery times
- Emergency only - Late night/early morning
Phone Numbers¶
- Always use E.164 - +[country code][number]
- Validate before send - Use Phone Formatter
- Handle failures - Log invalid numbers
- Update records - Remove bounced numbers
- Multiple numbers - Try alternate if primary fails
Cost Management¶
- Keep messages short - Under 160 chars
- Avoid Unicode - Use standard characters
- Batch appropriately - Don't over-send
- Track delivery - Monitor success rates
- Clean lists - Remove invalid numbers
Troubleshooting¶
SMS Not Delivered¶
Check: 1. Number in E.164 format? 2. Number valid and active? 3. Country supported? 4. Message within limits? 5. Account has credits?
Debug: Check {{task_3001_status}} field
Invalid Number Error¶
Issue: "Phone number invalid"
Solutions: - Use Phone Formatter task first - Verify number includes country code - Check number is mobile (not landline)
Message Truncated¶
Issue: Message cut off
Cause: Exceeded 160 chars
Solutions: - Shorten message - Remove unnecessary words - Use shortened URLs - Accept multi-part message cost
Unicode Issues¶
Issue: Message shows as 70 chars
Cause: Contains Unicode characters
Solutions: - Remove emojis - Replace special characters - Use standard punctuation
High Costs¶
Issue: SMS costs too high
Check: - Messages too long? (multi-part) - Sending too frequently? - Sending to wrong numbers? - Using Unicode unnecessarily?
Optimize: - Keep under 160 chars - Batch send strategically - Clean invalid numbers - Use standard characters
Frequently Asked Questions¶
What countries are supported?¶
Most countries worldwide. Check with BaseCloud support for specific countries.
Can I send bulk SMS?¶
Yes, use Loop task to send to multiple recipients. Monitor sending rate.
Can recipients reply?¶
Yes, replies can trigger Webhook In or dedicated SMS reply trigger.
How much does SMS cost?¶
Varies by country. US typically $0.01-0.02 per message. International varies.
Can I schedule SMS?¶
Yes, use Schedule Trigger to send at specific times.
What about MMS (images)?¶
Check BaseCloud documentation for MMS support availability.
Can I use custom sender ID?¶
Depends on country. US uses phone number. Some countries allow alphanumeric sender.
How to track delivery?¶
Check {{task_3001_status}} field. Values: sent, delivered, failed, undelivered.
Related Tasks¶
- Phone Formatter - Format numbers for SMS
- Email Task - Alternative communication
- Loop Task - Send to multiple recipients
- Schedule Trigger - Schedule SMS campaigns
- If Task - Conditional SMS sending