openchair
FeaturesPricingAbout
FeaturesPricingHair SalonsAI in Salons ReportBlogBook a Demo
Sign In
Sign InStart Free Trial
Help Centre

Customers & Automation

  • Activity Feed
  • Aftercare Sequences
  • AI Booking Actions
  • AI Booking Enquiry Auto-Responder
  • AI Client Insights and Suggested Actions

Customers & Automation

SMS Delivery Status and Failure Alerts

Last updated 8 July 2026

SMS Delivery Status and Failure Alerts

TL;DR

  • SMS delivery status tracking records carrier callbacks for sent, delivered, failed, and undelivered SMS.
  • Failed transactional SMS creates a high-priority sms_delivery_failed Activity item in Needs action.
  • Booking-linked failure rows can show Resend, plus Open booking and Mark as read actions.
  • Campaign, marketing, inbox-reply, and auto-respond failures are not turned into these transactional failure alerts.

SMS delivery status tracking tells operators when an important customer SMS did not arrive. OpenChair records Twilio status callbacks against the original delivery log, then creates an Activity alert when a transactional SMS fails. The alert helps the team resend the confirmation or contact the customer another way before the missed message causes a booking problem.

What SMS delivery status tracking records

SMS delivery status tracking records status callbacks from Twilio against OpenChair's delivery log. The webhook accepts carrier status updates only when the Twilio signature is valid.

Twilio status OpenChair status What it means
sent sent Twilio accepted the SMS for delivery.
delivered delivered Twilio confirmed delivery to the carrier or device where supported.
failed failed Twilio reported delivery failure.
undelivered failed Twilio could not deliver the SMS.
Other status Not mapped The webhook accepts the callback but does not change the delivery status.

OpenChair also runs a reconciliation job for SMS sends that were accepted but still need delivery confirmation. It scans recent pending SMS logs after 30 seconds, searches Twilio around the original send time, and marks unresolved rows failed after 5 minutes.

When failure alerts appear

Failure alerts appear when a transactional SMS fails or cannot be confirmed. The Activity type is sms_delivery_failed, the priority is high, and the row appears in Needs action.

OpenChair alerts on these transactional message types:

Message type Friendly label
CONFIRMATION Confirmation SMS failed
RESCHEDULE Reschedule SMS failed
REMINDER Reminder SMS failed
RECEIPT Receipt SMS failed
ACKNOWLEDGEMENT Acknowledgement SMS failed
DECLINE Decline SMS failed
COUNTER_OFFER Counter-offer SMS failed
EXPIRY Expiry SMS failed
RECONFIRMATION_REQUEST Reconfirmation SMS failed
INVOICE Invoice SMS failed
INVOICE_REMINDER Invoice reminder SMS failed
MAGIC_LINK Magic link SMS failed
WAITLIST Waitlist SMS failed
DEPOSIT_REQUEST Deposit request SMS failed

Marketing, campaign, inbox-reply, auto-respond, review request, welcome, reconnect, and consultation-invite failures are excluded from transactional failure alerts. Those sends are handled by their own send surfaces or delivery logs.

What the Activity alert shows

The Activity alert tells the operator which transactional SMS failed and, when possible, which customer or booking it relates to. The row uses a message-warning icon and a destructive action tone.

Alert state Label or copy
Single failure title Confirmation SMS failed, Reminder SMS failed, or another friendly label
Single failure message We couldn't deliver [customer]'s [message type] SMS. Tap to resend or contact them.
Carrier reason Added as carrier code [code] when Twilio provides an error code
Multiple failures title Multiple SMS deliveries failed
Multiple failures message States how many confirmation or reminder SMS messages failed in the last 15 minutes

To prevent Activity from flooding during carrier incidents, OpenChair caps individual sms_delivery_failed alerts at 5 per venue in a 15-minute window. After that, it emits one aggregate failure alert for the window.

Actions on a failure alert

Booking-linked SMS failure alerts can be handled directly from Activity. The inline action calls the booking resend path, which resends the booking confirmation by email and SMS where contact details are available.

Action When it appears Result
Resend The alert is linked to a booking Resends the booking confirmation.
Resending... The resend request is running Prevents duplicate taps while the resend is pending.
Open booking The alert has booking route data or is used as a secondary action Opens the booking detail.
Mark as read The row is unread and supports secondary actions Removes the row from Unread without resolving the issue.

Successful resend shows Confirmation resent. If resend fails, the row shows Unable to resend the confirmation with retry and dismiss controls.

Note

Booking confirmation resend has a 60-second cooldown. If someone taps resend again too quickly, OpenChair asks them to wait before trying again.

Customer delivery health alerts

Customer delivery health alerts are separate Activity rows that can appear alongside SMS failure tracking. They use the type customer_delivery_health_changed, title Customer messages blocked, and action Fix contact method.

SMS failure tracking emits a customer delivery health row when a carrier failure or unresolved Twilio timeout suggests the customer may not receive future SMS. SMS STOP replies also create this health alert. The row routes to customer communication context when a customer can be identified.

Who can use this

Role Access
Owner Sees venue-wide SMS delivery failure alerts, can resend booking confirmations, and can open related bookings or customer records.
Manager Sees venue-wide SMS delivery failure alerts, can resend booking confirmations, and can open related bookings or customer records.
Team Sees only notifications targeted directly to them. Venue-wide SMS delivery failure alerts are not shown to staff by default.

Common mistakes

The most common mistake is assuming sent means the customer received the SMS. Sent means Twilio accepted the message; delivered means Twilio confirmed delivery where supported.

Another common mistake is expecting every failed SMS to create the same alert. sms_delivery_failed is for transactional SMS where the customer is waiting for an operational message. Marketing and inbox-reply failures are handled by their own surfaces.

Do not mark a failed SMS row as read until someone has resent it or contacted the customer another way. Mark as read only changes Activity visibility.

Troubleshooting

Issue Solution
The customer says they did not get a confirmation Open Activity > Needs action and look for sms_delivery_failed. Use Resend if the row is booking-linked, or open the booking and contact the customer by another channel.
Resend is not visible The alert may not have a booking link. Use Open booking if available, or search the customer and send a manual message.
Resend says to wait Booking confirmation resend has a 60-second cooldown. Wait for the number of seconds shown, then try again.
Many SMS failures appear at once Treat it as a possible carrier, number, or contact-data issue. Check the dedicated number in Settings > SMS & Messaging and contact support if the pattern continues.
A failed SMS is not in Needs action Confirm the failed message was transactional. Campaign, marketing, inbox-reply, and auto-respond failures do not create sms_delivery_failed Activity rows.

FAQ

What is SMS delivery status tracking?

SMS delivery status tracking records carrier updates from Twilio and marks each SMS as sent, delivered, or failed in OpenChair delivery logs. Failed or undelivered carrier statuses are mapped to failed.

When does OpenChair create an SMS failure alert?

OpenChair creates an Activity alert when a transactional SMS fails or cannot be confirmed. Transactional messages include confirmations, reminders, receipts, invoices, magic links, waitlist messages, and deposit requests.

Who sees SMS delivery failure alerts?

Owners and managers see venue-wide SMS delivery failure alerts in Activity. Staff see only notifications targeted directly to them, so venue-wide delivery failure alerts are not shown to staff by default.

Can I resend a failed SMS from Activity?

Yes, if the alert is linked to a booking. Click Resend to send the booking confirmation again; the action shows Resending... while it runs and Confirmation resent. on success.

Related Articles

  • Activity Feed
  • Communication Settings (SMS & Messaging)
  • SMS and Email Allocation and Limits
  • Sending Quick Messages (SMS & Email)
openchair

The operating system for high-end service venues. Built in Australia for the world.

Product

  • Features
  • Pricing
  • AI Features
  • Mobile App
  • Online Booking
  • OpenChair Assistant
  • Sign In

Solutions

  • Hair Salons
  • Barbers
  • Beauty
  • Wellness & Spa
  • Nail Salons
  • Tattoo Studios

Compare

  • All comparisons
  • vs Fresha
  • vs Timely
  • vs Kitomba
  • vs Square
  • vs Booksy
  • vs Mindbody
  • vs Zenoti
  • vs Boulevard
  • vs Phorest
  • vs Mangomint
  • vs GlossGenius
  • vs Vagaro
  • vs Shortcuts
  • vs Acuity

Resources

  • Blog
  • AI in Salons Report
  • Reports
  • Help Centre
  • Guides
  • Glossary

Company

  • About
  • Contact
  • Book a Demo
  • Founding Members

Legal

  • Privacy
  • Terms
  • Cookie Policy
  • Sub-processors
  • Accessibility
  • Privacy Request

© 2026 Open Chair Pty Ltd. ABN 11 699 884 074. All rights reserved.

Made on the Goldie.