Engineering Case Study

Designing a Seamless Web-to-SMS Conversation Flow

How we allowed conversations to continue seamlessly from a website chat into SMS while maintaining a single unified conversation history.

15 min read·Published July 2026

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

Visitor
Website Chat
Conversation Service
SMS Bridge
Phone Network
Customer Device

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

Decision 01
One conversation model

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.

Decision 02
Normalize inbound events

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.