After an inbound message is stored, the platform tells the team — title naming the sender, a 140-character preview, and a link straight to that contact's thread. The alert is opt-in per account and is stamped so a retried webhook cannot announce the same message twice.
Also called: notify me when someone texts back · new message notification · reply alert
- 1announce() runs only after the message is safely stored
- 2orgNotificationsEnabled gates the alert; the message is already in the inbox either way
- 3notifyUsers fires 'message_inbound' to org members with a deep link to /#/contacts?card=<id>
- 4notified_at is stamped on the row so a duplicate delivery is silent
Notifications here stay off until an account turns them on, which created a risk worth being careful about: if the alert and the message shared one switch, a builder who had never opted in would silently stop receiving their customers' replies. Storing a reply and alerting someone about it are therefore separate acts — silence is a delivery preference, not permission to drop mail. An inbound text or email reply fires one team notification per message, and the message is already on the customer's thread before that decision is even made.
- Replies sitting unread because nothing announced them
- Duplicate alerts from provider webhook retries
See it on your own jobs
Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.
or keep browsing features →