Someone texts your business at 7:40 PM asking if you can fit them in tomorrow. Nobody answers until 9:15 the next morning. By then they've texted two of your competitors, and one replied. An after-hours auto-reply doesn't solve the whole problem, but it does one job well: it tells the person their message landed, when they'll hear back and what to do if it can't wait.
This post gives you seven auto-reply and away templates that each fit in one SMS segment. It also covers the three problems that catch most small businesses: replies that are skipped when they would land in quiet hours, two auto-responders texting each other in a loop, and auto-replies that drift into marketing and create a consent problem. We'll finish with what each reply costs and how to set it up.
What an after-hours auto-reply should do (and not do)
A good auto-reply answers three questions in under 160 characters:
- Who is this? Your business name, because the person may have texted several places.
- When will a human reply? A specific time ("8 AM Monday"), not "as soon as possible."
- What if it's urgent? A phone number or other path for real emergencies.
It should not:
- Include a promo, coupon or "join our VIP list" pitch. That turns a service reply into marketing (more on why below).
- Promise a response time you can't meet. "Within the hour" at 11 PM is a broken promise by 12:01.
- Fire on every single message in a thread. One acknowledgment per conversation window is enough.
For a wider set of examples beyond after-hours, see our auto reply text message examples.
Seven templates you can copy (each under 160 characters)
Every template below is under 160 plain characters with no emoji, so each one sends as one segment. The business names and phone numbers are placeholders. Swap in your own and recheck the length.
1. Standard after-hours (150 characters)
Thanks for texting Harbor Dental. We're closed now and reply from 8 AM to 5 PM, Mon-Fri. For a dental emergency, call 555-0142. Reply STOP to opt out.
2. Evening version that points to the 8 AM reopening (128 characters)
Thanks for texting Harbor Dental. We've got your message and will reply when the office opens at 8 AM. Emergency? Call 555-0142.
3. Weekend (138 characters)
Hi, it's Northside Plumbing. We're off for the weekend and back Monday at 7 AM. Burst pipe or no water? Call our emergency line: 555-0187.
4. Holiday closure (137 characters)
Lakeside Salon: Thanks for your text. Our team is out for the holiday and back Friday, Nov 28. We'll reply in the order messages came in.
5. Owner away or on vacation (122 characters)
Hi, this is Dana at Ridge Tax. I'm out until June 9 with limited signal. For anything urgent, call the office at 555-0110.
6. Missed-call text-back, open hours only (136 characters)
Sorry we missed your call at Bright Auto. What can we help with? Text back here and we'll reply, or we'll call you back within the hour.
7. Busy during open hours (112 characters)
Got your message, thanks. We're with customers right now and usually reply within 30 minutes. - Coastline Realty
Template 6 only works if someone can actually call back within the hour, so switch it off after close and let template 1 or 2 cover the evening. If you use the Ready Dialer, inbound calls ring the open dial pad and missed calls show up as a Missed call card in the contact's Inbox thread. The text-back buys you time, and the queue makes sure the callback actually happens.
Plan for the message that never goes out at night
Ready enforces quiet hours based on the recipient's area. That exists to reduce TCPA exposure. It also means an after-hours auto-reply that would land in the recipient's quiet hours is skipped, not sent later: someone who texts at 11:30 PM gets no auto-reply, so check the inbox first thing and answer them by hand.
You have two options:
- Fire the after-hours reply before quiet hours start. Set it to run only in the evening (for example 5 PM to 8:30 PM), and answer later texters by hand in the morning. Template 2 reads fine anywhere in that window; "Talk tonight!" doesn't.
- Test it. Text your own business number late at night from a personal phone and see when the reply shows up. Don't assume.
If your customers span time zones, the timing gets less obvious. Our post on timezone-aware quiet hours explains how the recipient's area, not yours, sets the clock.
How auto-reply loops happen and how to stop them
The classic loop: your auto-reply texts a number that also has an auto-reply. Theirs replies to yours, yours replies to theirs, and both keep going until someone notices. Every message in both directions is billed, and a few hundred messages bouncing between two bots overnight can look like spam to the carrier.
The fixes, in order of importance:
- One auto-reply per contact per window. Cap it at one reply per contact every 12 or 24 hours. This one rule kills almost every loop, because the second inbound message gets nothing back.
- Don't auto-reply to STOP. Ready handles STOP and UNSUBSCRIBE automatically, and the opt-out applies across every campaign. Your auto-reply rule should never fire on top of that. If it does, Ready refuses the send to an opted-out number up front and doesn't charge for it, but your rule should exclude opt-outs anyway.
- Skip short codes. Messages from 5- or 6-digit senders are almost always automated systems (banks, delivery notices, verification codes). Nothing useful comes from replying.
- Don't trigger on your own outbound messages. If your automation listens to "any new message in the thread," make sure it only counts inbound.
Keep the reply transactional
A reply to someone who just texted you is a conversation they started. That's the safest kind of text you can send. Add "Use code SPRING15 for 15% off!" and you've sent marketing to someone who never agreed to receive marketing. Keep auto-replies informational.
Three other habits worth keeping:
- Don't add auto-reply contacts to campaign lists automatically. Texting you a question is not consent to promotions. If you want them on your list, ask, and keep a record of the opt-in. Ready records the sender's attestation for bulk sends and for API sends that set
consent_attested(who sent, to how many, when), but it doesn't store per-contact consent such as opt-in time, wording or page URL. Your own systems need to keep that. Our opt-in language examples cover the wording. (A contact who signs up on a Ready-hosted opt-in page is the exception: Ready stores that sign-up, with the time, IP address and exact wording, and support@tryready.com can send you a copy.) - Healthcare: keep it generic. Template 1 confirms the office is closed. It doesn't mention appointments, procedures or anything about the patient.
- Register the use case. Carriers filter unregistered traffic. Include your auto-reply text in the sample messages on your 10DLC campaign so reviewers see what you actually send. If a campaign comes back rejected, this breakdown of rejection reasons shows how to rewrite the sample messages.
Registration on Ready costs $25 at submit (the first month, with no setup fee). After that it's $25/mo for registration and $2 per number. Most approvals take 2 to 7 days. Compliance stays the sender's responsibility. These are ways to reduce risk, not a shield against it.
What auto-replies cost: the segment math
On Ready, every segment is billed at the Standard rate of $0.0075/segment plus a $0.0045 carrier fee. That applies to replies you receive as well as texts you send.
Worked example (assumptions stated): a business gets 400 after-hours texts a month. Each inbound text is 1 segment, and the auto-reply is template 1 at 150 characters, also 1 segment.
- Inbound: 400 segments
- Auto-replies: 400 segments
- Total: 800 segments × $0.0075, plus 800 × $0.0045 in carrier fees
Ready's all-in prices per segment include the carrier fee but not screening: Scrub lists and Number validation, the two switches in Settings under Compliance, each add $0.003 per segment when switched on, shown as screening on your bill, and both are off by default. Unless you turn the opt-out footer off, the first text to each contact, and one again from time to time, also gets "Reply STOP to opt out" and your business name if the message does not already have them, so a text close to the segment limit can bill one more segment.
Now add one emoji to template 1. Any non-GSM character drops the limit to 70 characters, or 67 per part in a multipart message. A 150-character message with an emoji splits into 3 segments:
- Auto-replies: 400 × 3 = 1,200 segments
- Plus 400 inbound = 1,600 segments × $0.0075, plus 1,600 × $0.0045
One emoji doubles the bill for the same message. Curly quotes and long dashes don't cause this on Ready, because they're swapped for plain ones before sending. Emoji are not swapped. The 12-hour cap from the loop section matters for cost as well: without it, a single chatty contact can trigger a dozen replies in one evening.
For comparison: if you only need a few auto-replies and already run GoHighLevel's LC Phone or a raw API like Twilio, those are lower per message. What Ready adds is registration handled in the app, STOP handling, quiet hours and the inbox included.
Setting it up: in the Ready app, GoHighLevel or the API
In the Ready app: open Settings, Compliance, turn on Auto-reply outside business hours and write your message. Ready sends it at most once per contact every 24 hours, and never on days you turned off or at night when texting isn't allowed. Check the copy with the AI message writer's spam-filter check before you turn it on. Each set of drafts the writer produces costs the same as 5 texts at your rate. The in-app assistant can answer setup questions and take actions on your account if you'd rather not click through it yourself.
In GoHighLevel: with Ready connected over OAuth, inbound and outbound messages sync both ways, per GHL location. A GHL workflow with a customer-replied trigger and an if/else on business hours sends the auto-reply through Ready, and the thread stays intact in the conversation view.
Over the API: listen for inbound messages (see the docs for webhook setup), check your hours and per-contact cap, then send:
POST https://api.tryready.com/v1/messages
X-API-Key: <your key>
Idempotency-Key: <UUID derived from the inbound message's ID>
{"to": "+12125550199", "body": "Thanks for texting Harbor Dental. We've got your message and will reply when the office opens at 8 AM. Emergency? Call 555-0142.", "consent_attested": true} Derive the idempotency key from the inbound message. If your webhook handler retries, the customer still gets one reply, not three. The quickstart covers keys and your first send.
The short version
- Say who you are, when a person will reply, and what to do if it's urgent, all in one segment.
- Set the after-hours auto-reply to fire only before the recipient's quiet hours start, and answer later texters by hand the next morning.
- Cap replies at one per contact per 12 to 24 hours. That stops loops and keeps costs down.
- Keep auto-replies free of promos, and never treat an inbound question as marketing consent.
- Skip emoji in auto-replies unless you're willing to pay for 3 segments instead of 1.
If you want to try it, the first 20 texts on Ready are free one-to-one sends that you send yourself from the inbox or with one API call. Automated replies are paid from the first text, so use the free texts to test your template wording on your own phone before you register. To send, you add a card and get a number, which is $2 a month with the first month charged when you get it. You can sign up here and set up a reply tonight. For the daytime side of the same inbox, our guide to SMS customer support covers response times and handoffs.