Customer replies actually reach you

Signed receivers for inbound texts and emails that store the message first and work out who sent it afterwards, so nothing can ever be dropped.

What it is

The receiving half of two-way messaging. Provider webhooks are signature-verified, then the message is persisted before anything else happens; contact matching, notification and mirroring are best-effort enrichment that can never discard a message. Storage is idempotent on the provider's own message id, so a retried delivery updates rather than duplicates.

Also called: customer replied and I never got it · inbound texts · email replies · two way messaging

See it
Customer replies actually reach you
🔒ridgelinepostframe.com/project/inboun227
30×40 Garage
Framing · on schedule
Diagram: provider webhook → signature check → store → (match contact, notify, mirror) as best-effort branches. Sample data — no customer information appears here.
How it works
  1. 1RULE 1 — write first, interpret after: the message is persisted before we work out who sent it or who to tell
  2. 2RULE 2 — dedupe on the provider's id: a unique index on (provider, provider_message_id) means a retry lands on the same row
  3. 3Receivers always answer 2xx unless the signature fails, because anything else triggers provider retries
  4. 4A genuine storage failure returns 500 on purpose — that is the one case where a retry helps
Why we built it

There was nowhere for the carrier to deliver an inbound message, so every reply to a text the platform had sent was dropped on the floor — the builder watched their message send successfully and simply never heard back, with nothing anywhere to show a reply had been made. Inbound texts and emails now arrive at signed receivers that store the message first and work out who it came from afterwards. A text from a number nobody recognises is still a text, so nothing is discarded for failing to be identified.

The problem
  • Replies with nowhere to be delivered
  • Duplicate messages from webhook retries
  • Messages discarded because the sender was unrecognised
Sound familiar?
What you get
Two-way conversation on text and email
Nothing that arrives is ever lost
Retries are harmless
What's inside
Alert when a customer replies
A team notification fires on an inbound text or email reply, once per message, and only if the account has opted into notifications.
Inbound text receiver
Verified inbound text handling that resolves the number to an account and, where the line belongs to a rep, to that rep.
Messages from every account's own carrier sub-account are accepted
Signature verification resolves whichever carrier account actually signed the request, instead of only trusting the platform's own.
Email replies, routed only when the answer is certain
Inbound email is verified, and filed to an account only when the address unambiguously identifies one — otherwise it is held for a human rather than guessed.
Working out who a message is from
Best-effort matching of an inbound sender to a contact, run after storage and never able to block or discard a message.
Messages we can't place are held, never dropped
A verified message to a number or address no account claims is stored under a sentinel account with a note explaining why, instead of being discarded.
What you send is written into the thread too
Every message the platform sends is recorded on the customer's thread, so the history survives even if an integration is disconnected.
Replies to the agency land on the agency's own card
An inbound reply for the agency's own pipeline is mirrored into the table its opportunity card reads, without moving the canonical record.

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 →