Systems / compliance

SMS Automation Timing: When to Send, Character Limits, and Quiet Hours

An automation that fires at 11:45 PM or sends a 900-character message that splits into three texts is doing more harm than good. Here is how to build it right.

A flat black line-art clock face with shaded gray zones at both ends of the dial representing quiet hours, and an orange checkmark in the center open window representing the compliant send window.

For automated text messages, federal law sets a hard floor: no sends before 8 AM or after 9 PM in the recipient's local time zone. That is the TCPA (Telephone Consumer Protection Act) baseline. Some states narrow the window further. Florida, for example, caps it at 8 PM. Get this wrong on a single automation and you are not just annoying a contact, you are creating legal exposure. This guide covers the full ruleset: quiet hours by jurisdiction, character limits, what Unicode does to your message length, link shorteners and deliverability, and how to QA a workflow before it touches your actual list.

This post is part of our broader business automation guide for service companies. If you are deciding which automations to build first, start there.

What are TCPA quiet hours and how do they apply to automated texts?

The TCPA prohibits automated calls and texts before 8 AM or after 9 PM in the recipient's local time. The key word is recipient: the rule follows the contact, not your office or your server. If your clinic is in Mountain Time and a patient is in Eastern Time, the Eastern clock governs when that message can legally go out.

Most automation platforms let you set a send window. The setting is usually called something like "quiet hours" or "send within hours." What the platform does not always do automatically is resolve the recipient's time zone at send time. It often defaults to your account's time zone or, worse, UTC. The result is a window that looks correct on paper but fires hours early or late for contacts in different states.

State law can tighten the federal window. Florida restricts telemarketing messages to 8 AM through 8 PM local time. If your business serves clients across multiple states, the most conservative rule in your footprint is the one to build around. For most service businesses operating in a single metro, that means locking the window to 9 AM through 8 PM to stay comfortably inside both the federal and any tighter state rule.

3%

Fewer than 3% of voicemail-routed callers leave a message, which is exactly why text-back is valuable. But a compliance failure can erase that advantage fast.

Invoca, 2024

Why do so many automations fire at the wrong time?

The most common mistake we fix in inherited automation accounts is a reminder configured to send at an absolute UTC time that the original builder forgot to localize. In platforms like GHL (GoHighLevel), a workflow step that says "send at 9:00 AM" defaults to the account's timezone setting, not the contact's. If the account is set to Pacific and a contact is in Eastern, that 9 AM reminder goes out at 12 PM Eastern, which is fine. But flip it the other way, a contact in Hawaii receiving a message set for 9 AM Eastern, and the text arrives at 3 AM local. We now build a timezone validation check into every onboarding audit before a single automation goes live.

The fix is straightforward: in your automation platform, confirm that time-based triggers reference the contact's timezone field, and that the field is actually populated. A contact record with an empty timezone field often falls back to the account default, silently. A one-time list audit to fill missing timezone values before you launch any time-sensitive sequence is not optional, it is the first step.

A quiet-hours setting that references the wrong timezone is not a minor configuration detail. It is a compliance failure waiting to send to your entire list at once.

What is the SMS character limit and what happens when you go over it?

A standard SMS is 160 characters when written in plain GSM-7 text. GSM-7 covers the basic Latin alphabet, numbers, and common punctuation. The moment you include any character outside that set, including emoji, curly quotes (the "smart quotes" that word processors insert automatically), or accented letters, the message switches to Unicode encoding and the per-segment limit drops to 70 characters.

Multi-part messages complicate this further. When a message exceeds the single-segment limit, carriers split it into segments and add a 6-character header to each part for reassembly. That reduces the usable character count to 153 per segment for GSM-7 and 67 per segment for Unicode. Carriers reassemble segments into a single readable message on most modern devices, but on older networks or certain carriers, recipients see multiple separate texts arriving in rapid succession. From a client's perspective, that looks like a technical failure, or worse, it reads as spam.

In practice: keep automated service business texts under 160 plain characters, write in plain text without emoji or smart quotes, and copy the message into a character counter before saving the workflow. A single curly apostrophe in "you're" flips the whole message to Unicode and cuts your effective character budget by more than half.

Shared link shorteners are a real deliverability risk. Platforms like bit.ly operate on shared domains, meaning hundreds of thousands of senders, including bad actors, use the same root domain. Carrier spam filters look at the domain embedded in the message, and shared shortener domains carry a permanently elevated suspicion score because of that history.

When we audit SMS automations that show low delivery rates, shared shorteners are one of the first things we check. The fix is to either use a dedicated short domain registered specifically to your business (most CRM platforms support custom short domains), or skip shortening entirely and send the full URL. A direct link to your booking page, even if it is 80 characters long, is almost always safer than a shared-domain short link.

There is also a transparency argument here. Clients who receive a text from your business with a link to "bit.ly/3xZ9kQ" have no way to know where they are being sent before they tap. A link to "booking.yourbusiness.com" tells them exactly what to expect. That matters for trust, and trust matters for conversion. Read more about setting up TCPA and SMS compliance for service businesses to understand the full legal framework around consent and message content.

How do you QA an SMS automation before it reaches your whole list?

Send to an internal test group first. The group should include at least three to five phone numbers on different carriers: one on Verizon, one on AT&T, one on T-Mobile if possible. Send the test at the exact time window the automation would fire in production, so you confirm not just that the message looks right but that it actually delivers within the expected window.

Check four things on each test message: the text arrived in full and was not truncated, any links resolve correctly, the send time aligns with what you configured, and the sender ID or number looks legitimate (not an unknown short code your contacts will distrust). If you are running a multi-step sequence, test the full sequence, not just the first message. Spacing errors and timezone drift often only surface on steps two and three.

A physical therapy clinic we worked with launched a post-visit follow-up automation on a Friday afternoon without this step. The sequence had no quiet-hours check in the workflow itself, only in the platform's global setting, which had been overridden during a previous campaign. Eighty patients received a follow-up text just before 10:30 PM. The next two days were spent managing replies, removing contacts who opted out, and reviewing the platform configuration to understand how the override happened. A 20-minute QA run against an internal test list would have caught it before it fired.

For the automations that matter most, like appointment reminder sequences and missed-call text-back workflows, we always test across the full range of timing scenarios: what happens if the contact record has no timezone set, what happens if the appointment is within 2 hours of a quiet-hours boundary, and what happens if a message fires during a carrier maintenance window. Edge cases are not rare on lists of any meaningful size.

What is the safest daily send window for service business texts?

9 AM to 6 PM local time is the practical safe window for most service businesses. It stays comfortably inside the federal TCPA floor of 8 AM to 9 PM, it accounts for states like Florida with tighter cutoffs, and it matches the hours when clients are most likely to check their phone and act on a reminder or booking confirmation. Early morning messages before 9 AM often sit unread until the recipient's morning routine is done anyway; late evening messages after 6 PM trend toward feeling intrusive even when they are technically legal.

For urgent workflows like same-day appointment reminders or immediate missed-call replies, the window can reasonably extend to 8 PM. But anything that can wait until the next morning should wait. An automation that respects a client's time earns reply rates that one which fires at 7:58 AM will not.

Frequently asked questions

What are TCPA quiet hours for automated text messages?

The TCPA (Telephone Consumer Protection Act) prohibits sending automated messages before 8 AM or after 9 PM in the recipient's local time zone. Some states have stricter windows: Florida, for example, restricts calls and messages to 8 AM through 8 PM. Build your timing logic around the recipient's time zone, not the time zone your server or CRM is running in.

How many characters can an SMS message contain?

A standard SMS is 160 characters when written in plain GSM-7 text. If your message includes emoji, curly quotes, or any Unicode character, the limit drops to 70 characters per segment. Multi-part messages use a 6-character header in each segment, reducing each part to 153 characters for plain text or 67 for Unicode. Carriers reassemble the segments on most devices, but some networks display them as separate texts, which looks unprofessional.

Do link shorteners hurt SMS deliverability?

Shared link shorteners (like bit.ly) are frequently flagged by carrier spam filters because bad actors use the same domains. Using a shared shortener in an automated SMS campaign increases the chance your message is filtered before it reaches the recipient. Use a dedicated short domain registered to your business, or send the full URL if it is reasonably short.

How should I test a new SMS automation before it goes live?

Send to a small internal test group first, typically 3 to 5 staff numbers covering different carriers, and confirm the message arrives in full, at the correct time, and with links resolving properly. Then review the send log for any delivery failures before opening the automation to your full contact list.

What is the safest daily window to send automated service business texts?

For most service businesses, 9 AM to 6 PM local time is the practical safe window. It stays well inside the TCPA floor of 8 AM to 9 PM, accounts for stricter state rules like Florida's 8 PM cutoff, and matches the hours when recipients are most likely to act on a reminder or confirmation.

Want your SMS automations built right from the start?

We build the compliant, timezone-aware automation systems that keep service businesses communicating without legal exposure or deliverability problems.

Get Your Free Audit
or book a free strategy session