When the walk-in freezer dies at 5 AM, or a snowstorm closes the warehouse, email is too slow and phone trees don't hold up. A text reaches a phone in seconds, and most people read it within minutes. That speed is why HR, ops and facilities teams end up texting staff.

Texting employees is not marketing, and you shouldn't set it up like a promo list. The consent rules, the 10DLC registration, the templates and even the timing all work differently. This guide covers each one, with the cost worked out for a realistic team size.

Employee texting is its own use case

Marketing texts go to people who opted in to hear about offers. Staff texts go to people who agreed to receive work messages: shift changes, closures, safety notices, payroll reminders. Carriers treat these as different traffic, and you should too.

In practice that means three things:

  • Separate the lists. Don't put employees on the same contact list or 10DLC campaign as customers. One mistaken promo send to your staff list is a fast way to collect opt-outs you can't afford.
  • Register for what you actually send. If you register a marketing campaign and then send operational alerts, or the reverse, you invite filtering. Our guide on matching your 10DLC use case to what you send walks through the choice.
  • Keep the content operational. No "refer a friend for a $50 bonus" mixed into a shift notice. That turns an informational message into a promotional one.

If you also text volunteers, members or parents, mass texting for churches, schools and employees covers how those audiences differ.

Get consent the boring, documented way

Having an employee's cell number in your HR system does not mean they agreed to texts. Many of those numbers are personal phones, and employees can opt out like anyone else. The safe pattern:

  1. Collect opt-in at onboarding on a separate form or checkbox, not buried in the handbook. Say what you'll text (schedules, closures, safety alerts), roughly how often, that message and data rates may apply, and that replying STOP ends it.
  2. Store the record yourself. Keep who agreed, when, and the exact wording they saw in your HRIS or document system. Ready records an attestation for each bulk send and each API send that sets consent_attested (who sent it, to how many, and when), which helps as an audit trail. It is not a per-employee consent record, so the signed form has to live on your side.
  3. Respect STOP. On Ready, an inbound STOP or UNSUBSCRIBE is honored automatically and the opt-out carries across every campaign on the account, so a manager can't text that person again by accident. You can't override it, and you shouldn't want to.
  4. Have a fallback channel for employees who opt out or never opt in: email, the scheduling app, a phone call.

Two points to raise with employment counsel before launch: whether hourly staff reading work texts off the clock creates a pay issue, and how your state treats texts to personal devices. Compliance remains the sender's responsibility. Tooling reduces risk but doesn't remove it.

Registration: what it takes and what it costs

Business texting from a regular local number in the US runs over 10DLC, and unregistered traffic gets filtered by carriers. In Ready you register your brand and campaign in the app. There's no setup fee. You pay the first month, $25, when you submit. After that the monthly cost is $25 for registration and $2 per number. Most approvals take 2 to 7 days.

While you wait:

  • Your first 20 texts are free, but only for one-to-one sends. A campaign is paid from its first text. The free texts end as soon as you pay for registration, so use them to test before you register.
  • An account can send up to 500 texts a month before registering, at the normal per-text rate.
  • If you bought a number before registering, it sends on Ready's shared registration at the same rate while your own registration is in review.

To send, you add a card and get a number, which is $2 a month with the first month charged when you get it. For the full fee breakdown, see 10DLC cost: every fee explained.

What a staff alert actually costs

Ready Standard is $0.0075 per segment plus a $0.0045 carrier fee, which comes to $0.012 per segment all-in.

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.

For a staff list you collected yourself at onboarding, you may not need either one.

Worked example, assuming a 250-person team:

MessageCharactersSegmentsCost per send
Plain shift notice140, no emoji1250 × 1 × $0.012 = $3.00
Same notice plus one emoji1413250 × 3 × $0.012 = $9.00
Long closure notice300, no emoji2250 × 2 × $0.012 = $6.00

Replies are billed like sent texts. If 100 people reply "Y" to confirm, that's 100 × $0.012 = $1.20.

The emoji line is the expensive mistake here. One emoji drops the segment limit from 160 characters to 70, which triples the cost of that 141-character notice. Ready swaps curly quotes, long dashes and ellipses for plain ones before sending, so those don't inflate the count. Emoji still do.

To be straight about price: Twilio and GoHighLevel's LC Phone cost less per message than Ready Standard. What you get with Ready is self-serve registration, built-in opt-out handling, quiet hours and an inbox for replies, without assembling them yourself. If you only need a raw pipe and have engineers to build the rest, a CPaaS is a reasonable choice. Current rates are on the pricing page.

Timing, quiet hours and true emergencies

Ready holds sends outside permitted local hours, based on the recipient's area. A text sent during the recipient's quiet hours goes out later and is charged only when it sends. For routine messages like next week's schedule, that's a useful guardrail. Campaigns, drip campaigns and automations wait up to 24 hours for the window; a one-to-one or API text is held only if the window opens within 6 hours, otherwise it is refused and must be resent; a one-to-one reply to someone who texted you in the last 24 hours goes out at any hour.

For a 4 AM "don't come in, the building has no power" alert, it's a real constraint. Plan around it:

  • Send closure decisions the evening before whenever you can.
  • Keep a manual call path for overnight incidents. The Ready Dialer lets a supervisor click-to-call from the dashboard at $0.025/min, and only answered time is billed. A ring-out costs nothing.
  • If you need guaranteed overnight life-safety alerts, look at a dedicated mass notification system. Our post on building an emergency text alert system covers what those include.

Also send as one-to-many, not a group thread. A bulk send gives each employee a private message, so nobody's reply goes to 249 coworkers. Group texting without reply-all explains the difference.

Templates you can copy

Keep templates under 160 characters, emoji-free, and identify the sender in the first words:

  • Shift change: "Acme Distribution: Your Thu shift moved to 2 PM-10:30 PM. Reply Y to confirm or call +15555550142. Reply STOP to opt out."
  • Open shift: "Acme: Open shift Sat 7 AM-3 PM, Dock B. First to reply YES gets it. Reply STOP to opt out."
  • Weather closure: "Acme: Main warehouse CLOSED today due to ice. Do not report. Updates at 11 AM. Reply STOP to opt out."
  • Safety notice: "Acme Facilities: Fire alarm test today 10-10:15 AM. No evacuation needed. Reply STOP to opt out."
  • Payroll: "Acme HR: Pay stubs for 5/1-5/15 are posted in the portal. Questions: hr@example.com. Reply STOP to opt out."

Sending from your own systems

If your scheduling or HR tool should trigger texts, the API sends up to 100 recipients per bulk call. Split larger lists into batches of 100 and send an Idempotency-Key header so a retried request never sends twice:

POST https://api.tryready.com/v1/messages/bulk
X-API-Key: <key>
Idempotency-Key: 3f1c9a2e-7b44-4c1d-9e0a-5a2b8c6d1f90

{"to": ["+12125550199", "+15559876543"], "body": "Acme: Main warehouse CLOSED today due to ice. Reply STOP to opt out.", "consent_attested": true}

Opted-out numbers are refused up front and not charged. Details are in the bulk messages docs.

The practical takeaway

Treat staff texting as an operational channel. Get documented opt-in at onboarding and keep employees on their own list and their own 10DLC campaign. Write short, emoji-free templates ahead of time, and have a call-based plan for overnight emergencies. A plain one-segment alert is the cheapest send for a team of any size.

If that fits how your team works, you can create an account, use the free one-to-one texts to test your templates, and then submit your registration.