Overview
Customers frequently leave a website before conversations are complete.
Rather than forcing users to remain in the browser, the platform allows conversations to continue through SMS while agents continue working from the same interface.
The transition should feel invisible to both participants.
The Problem
Changing communication channels creates several technical challenges.
The platform needed to preserve:
- conversation history
- participant identity
- message ordering
- agent workflow
- analytics
without creating duplicate conversations.
Architecture
Both chat messages and SMS messages are normalized into the same conversation model before reaching the agent interface.
Agents never switch systems—the transport changes, not the conversation.
Engineering Decisions
SMS was implemented as another transport layer rather than a separate product.
This allowed both channels to share message history, participants, analytics, and assignment logic.
Every inbound message passes through the same processing pipeline regardless of whether it originated from WebSocket or SMS.
This significantly reduced duplicate business logic.
Challenges
Supporting multiple transports introduces subtle consistency issues.
Message ordering, retries, delivery acknowledgements, and conversation state all become more difficult once multiple communication channels participate in the same timeline.
Designing a single normalized pipeline simplified these concerns considerably.
Outcome
Customers can seamlessly continue conversations after leaving the website, while agents continue using exactly the same interface.
From the platform's perspective there is still only one conversation—the delivery mechanism simply changes.
Related Engineering Notes
Building a Transport-Agnostic Conversation Model
A customer conversation shouldn't be tied to the medium it travels over. This article explores how a single conversation seamlessly transitions between web chat and SMS while preserving context for both customers and support agents.
Designing Idempotent Message Ingestion
Webhooks are inherently unreliable delivery mechanisms. Messages can be retried, duplicated, or arrive out of order. This article explores how the platform ensures every inbound SMS is persisted exactly once while remaining resilient to repeated deliveries.