TL;DR: SMS has strict character limits (160 GSM characters, 70 for Unicode). When your automation messages exceed these, carriers split them into multi-part messages, doubling your credit costs. Onyx’s SMS builder includes a real-time character counter and auto-split detection to keep you within limits and avoid unexpected billing surprises.
Why SMS Character Limits Matter for Insurance Agents
An SMS message is a metered product. Every carrier has hard limits on single SMS segments, and when you exceed those limits, the platform automatically splits your message into multiple parts. For insurance agents running high-volume automation campaigns, this technical detail costs real money.
Here’s the math: You send a 200-character message thinking it’s one text. The carrier breaks it into two segments. You’re charged twice. Multiply that across 100 leads per day, 5 days a week, and you’re bleeding hundreds of dollars monthly on split messages that could have fit in a single segment with better writing.
In automation workflows, you can’t manually edit each message. Once your template exceeds the character limit, every single send incurs the penalty. Understanding and fixing character length issues is one of the fastest ways to cut your SMS costs without reducing send volume. This is especially critical for agents running SMS appointment confirmations or bulk messaging campaigns.
Understanding SMS Character Limits: GSM vs. Unicode
SMS character limits depend on the character set you’re using: GSM-7 (standard) or Unicode.
GSM-7 encoding gives you 160 characters per segment. This covers the basic Latin alphabet, numbers, and common punctuation. It’s the most efficient encoding because it uses 7 bits per character instead of 16. GSM characters include: A-Z, 0-9, common punctuation (. , ? ! ‘ ” – ( )), and extended characters like €, [, ], {, }, \, ^, ~, |.
Unicode shrinks the limit to 70 characters per segment. Unicode is required if your message includes:
- Emoji (✅, ❌, 🎉)
- Accented characters (é, ñ, ü)
- International scripts (Cyrillic, Arabic, Chinese)
Unicode is necessary for international outreach, but expensive. A 70-character limit is 44% less space than GSM. Source: Twilio
The problem: most agents don’t know they’ve triggered Unicode encoding. You might add a single emoji to your template, and now every outbound message is limited to 70 characters instead of 160.
How Onyx Automation Handles SMS Character Length
Onyx’s SMS builder detects character encoding automatically and shows real-time feedback as you write. When you create an SMS template in Onyx, the builder displays:
- Current character count (updated as you type)
- Encoding type (GSM-7 or Unicode, shown clearly)
- Segments (how many SMS parts your message will split into)
- Per-segment cost (helps you understand the credit impact)
This visibility prevents silent multi-part splits where your message costs 2-3x more than expected. Additionally, Onyx accounts for personalization variables (like {{contact.first_name}} and {{user.name}}) in character estimates, showing estimated final length based on typical variable sizes. This is part of Onyx’s broader approach to CRM onboarding and setup, ensuring you get everything right before your campaigns go live.
Common Mistakes That Trigger Character Limit Issues
1. Hidden Unicode Characters
The most common culprit: a single emoji or special character in your template. “Hi {{first_name}}, let’s chat ✅” forces Unicode encoding, cutting your limit from 160 to 70 characters. That one checkmark forces the entire message to split unexpectedly.
Solution: Avoid emoji in automated templates. Use text-based alternatives: [APPROVED], >>CONFIRMED, (YES).
2. Curly Quotes From Pasted Content
When you copy-paste template text from Word or email, Word converts straight quotes (” “) into curly quotes (” “). Curly quotes are outside GSM and trigger Unicode encoding.
You paste: “Don’t miss this” (curly apostrophe) — triggers Unicode
You type: “Don’t miss this” (straight apostrophe) — stays in GSM
3. Accented Characters in Contact Names
If your database includes accented names (José, François, Müller) and you use them in SMS variables, you need Unicode encoding. You can’t control what’s in the database.
Workaround: Strip accents programmatically in your variable. José becomes Jose before inserting into SMS.
4. Long Variable Names Without Constraints
Variables like {{contact.fullname}} or {{user.companyname}} can consume most of your character budget. “Metropolitan Insurance Group Of The Pacific Northwest” is 55 characters alone.
Solution: Use shorter variable names or set character limits on database fields.
5. Non-Breaking Spaces From Rich Text
Pasting from Google Docs, Slack, or email can inherit non-breaking spaces (U+00A0) or hidden formatting. These are invisible but count toward limits and trigger Unicode.
Always write in plain-text editors or Onyx’s native text field.
Best Practices for SMS Template Design
Keep Messages Short
Insurance agents need compliance information, personalization, and a CTA — all within 160 characters (or 70 with Unicode). Assume 70 characters if uncertain.
Example: “Hi {{firstname}}, {{agentname}} here. Your application is pending. We’ll reach you by EOD tomorrow. Reply HELP for questions.” — 130 characters (GSM-safe).
Test Every Template With Real Data
Before deploying across 1,000 leads, test with 5-10 real contact records. Send test SMS to yourself and check:
- Does the message render completely?
- How many SMS segments did it actually send?
- Does personalization resolve correctly for long names?
Set Character Limits on Contact Data
Constrain your database fields to predictable lengths:
- Contact.first_name: max 20 characters
- Contact.company_name: max 25 characters
- User.title: max 15 characters
Avoid Emoji and Special Symbols
Keep to basic ASCII. If you want emphasis, use:
- ALL CAPS (within GSM)
- Arrows: -> or >> (basic ASCII)
- Brackets: [IMPORTANT] (basic ASCII)
Avoid: ✅ ❌ 🎉 ⭐ → (these trigger Unicode)
Setting Up SMS Templates in Onyx: Step-by-Step
Step 1: Navigate to SMS Templates
In Onyx, go to Settings → Communication Channels → SMS Templates. Create a new template or edit an existing one.
Step 2: Write in Plain Text
Type directly into the Onyx field (don’t paste from Word). Start with core message, then add variables.
Example: “Hi {{firstname}}, {{agentname}} here. Your policy is approved. Confirm: {{link}}”
Step 3: Check the Character Counter
Onyx displays live character count and encoding type (GSM-7 or Unicode). If you see “Unicode” flagged, find and remove the triggering character.
Step 4: Insert Variables
Add {{contact.first_name}}, {{user.name}}, etc. The character counter updates to show estimated length based on typical variable sizes.
Step 5: Review Segment Count
Onyx shows exactly how many SMS segments your message will split into. Aim for 1 segment; 2 segments are acceptable; 3+ means you need to trim.
Step 6: Test With Sample Data
Send a test SMS to yourself through Onyx. Check the delivery log for:
- Actual character count
- Actual encoding (GSM or Unicode)
- Actual segment count
Step 7: Deploy
Save the template and schedule it into workflows. This one-time validation protects all future sends.
Troubleshooting: Why Are Your Messages Splitting?
Symptom: Onyx shows 1 segment, but delivery shows 2-3
Usually a hidden Unicode character (emoji, accented letter, special symbol) in the template or contact data.
Fix: Open the SMS template, delete emoji/special characters. If contact names have accents, strip them programmatically or use a fallback (“Customer” instead of “José”).
Symptom: Message seems fine but Onyx flags it as 2 segments
You’re at or near the 160-character limit (GSM). Onyx is conservative.
Fix: Trim by 10-15 characters. Remove filler words: “just,” “really,” “actually,” “please.” Split into two SMS if carrying multiple thoughts.
Symptom: Workflow sends 3 SMS when you only wrote 2
You have multiple SMS blocks in your workflow. Review the workflow diagram and count SMS blocks. Delete extras or move to conditional branches.
Cost Optimization: The Real Impact
A 2-segment message costs twice as much as 1-segment.
Send 100 SMS per day. If 40% split into 2 segments, you’re paying for 140 SMS when you intended 100. Over a month, that’s 1,200 extra SMS credits wasted.
At $0.01-0.03 per SMS, that’s $12-36 wasted monthly per workflow. Scale across 10-20 workflows, and you’re losing $120-720 monthly on avoidable splits. This optimization is just as important as managing nurture sequences effectively.
Cost-saving strategy:
1. Audit current templates — identify top 5-10 offenders
2. Rewrite high-volume templates (50+ SMS/month) to single-segment lengths
3. Set internal standards: “All SMS ≤140 characters (GSM)”
4. Use variables wisely: shorter names, character limits, fallbacks
5. Monitor ongoing: track “avg. segments per send” in Onyx analytics
Example: One agent reduced avg. segments from 1.3 to 1.0 by rewriting 8 templates. Monthly cost dropped from $320 to $250 — $840 annually.
Onyx Features Built for Character Limit Control
Real-Time Character Counter: Live character count as you type. “150/160 characters (GSM-7).”
Encoding Detection: Alerts you when Unicode is triggered. “⚠️ Unicode detected. Limit is now 70 characters per segment.”
Variable Length Estimation: Estimates variable length based on historical data. “150 + ~10 (variable) = 160 characters — 1 segment.”
Segment Preview: Shows exactly how many SMS segments your message will split into before deployment.
Test Send to Self: Send a test SMS to your number and check the actual segment count in the delivery log.
FAQs: SMS Character Limits in Insurance Automation
Q: If my message is 158 characters, will it split?
A: No. GSM-7 allows 160 characters per segment. 158 = 1 segment. If using Unicode (due to emoji or accented character), 158 characters = 3 segments, since the limit is 70 per segment.
Q: Can I use emoji for branding?
A: Technically yes, but I’d recommend no. Emoji trigger Unicode encoding, shrinking your limit from 160 to 70 characters. Insurance messaging is compliance-heavy — you need every character. Use text alternatives: [CONFIRMED], >>CLICK HERE, (IMPORTANT).
Q: Does Onyx charge differently for multi-segment SMS?
A: Yes. Pricing is per-segment. A 2-segment SMS costs twice as much. This makes optimization critical. Trimming a 170-character template (2 segments) to 160 characters (1 segment) cuts cost in half for that template.
Q: What if a contact has an accented name?
A: If the variable includes the accented name (José, François), you need Unicode encoding. Strip accents programmatically: José → Jose. Most platforms allow this via variable filters.
Q: If 100 SMS split into 2 segments each, am I charged for 200?
A: Yes. You’re charged per segment. 100 SMS × 2 segments = 200 SMS worth of credits charged.
Q: Can I test character limits without deploying?
A: Yes. In Onyx: write your template → click “Test Send” → enter sample contact data → send to your number → check the delivery log for character count and segment count. No deployment needed.
Q: What external sources can I use to verify these limits?
A: Twilio publishes detailed SMS character set documentation. NAIC (National Association of Insurance Commissioners) provides SMS compliance guidelines for insurance communications. The Twilio SMS documentation is the gold standard for character limit specifications.
Taking Action: Audit Your SMS Templates This Week
If you’re running insurance automation workflows, character limit issues are likely costing you money right now.
This week:
1. Open Onyx and pull a report of SMS sent in the last 7 days
2. Sort by segment count — find messages with 2+ segments
3. Identify which templates are responsible (most-sent templates have biggest impact)
4. Rewrite those templates to fit in 1 segment
5. Test the new templates
6. Deploy
You’ll see immediate savings in SMS credits. On top of that, shorter messages often perform better. Insurance leads respond better to concise, action-oriented messages than walls of text.
Onyx’s character counter and segment preview make this work trivial. Use them.