There’s an obvious way to add texting to a phone call, and much of the industry built it: when the call reaches the right moment, fire off an SMS from a second system. A link goes out. Maybe a survey. The call is over here, the text is over there, and nothing connects them but a timestamp.

It demos fine, but when the customer replies to the text, and nobody’s listening: the messaging system doesn’t know there’s a call. The voice system doesn’t know there’s a reply. And the customer ends up having two half-conversations with one company. That’s an architecture problem, not a feature problem. Voice-first systems treat a call as the conversation and a text as a notification about it.

We ended up somewhere different, mostly because of where we started.

The conversation came first

Quiq grew up on messaging: SMS, Apple Messages, RCS, WhatsApp, web chat. Asynchronous channels force a design decision that voice never forces, which is that the conversation has to be an object that outlives any session. A customer can text at noon, reply at 9pm, and send a photo Tuesday. There is no “call” to attach state to, so the persistent conversation, with its history, its context, its participants, became the platform’s core primitive, and every channel became a way in.

When we added voice, we kept that shape. To our platform, a phone call is another door into the one persistent conversation, a door that happens to be synchronous and spoken, not a new silo with a texting feature bolted onto it.

What falls out of that decision

Most of what looks like a feature in how our voice AI relates to messaging is really just a consequence of the primitive we chose.

Mid-call messaging is just… messaging. When the AI agent says “I’ll text you the room options” and a carousel lands in the customer’s messages app, no second system fired. The conversation already had both channels open. Same in reverse: the customer texts back a photo of the damage and the agent is looking at it before the sentence ends, because the inbound message arrived in the same conversation the call is part of.

The customer never has to re-explain anything. The context a customer builds up on the call is the context of the thread, and vice versa. When 74% of consumers say repeating information frustrates them (Zendesk’s own CX Trends 2026 research, 6,182 consumers), this is the structural fix: there’s only one conversation to repeat yourself to.

Hand-offs carry everything. Escalate from AI to human, or from a call to an asynchronous thread that continues tomorrow, and the successor sees the whole conversation, what was said and what was sent, instead of a summary of one channel and nothing from the other.

Humans get the same superpower. Because the channels share one conversation, our AI Assistants can sit alongside a human agent on a live call and work the messaging half: suggesting the carousel at the right moment, sending it with one click, surfacing the customer’s photos and picks on the agent’s screen. The multimodal payoff doesn’t wait for full automation.

Rich where possible, plain where necessary. The same message renders as a tappable carousel on RCS or Apple Messages and degrades to numbered options on plain SMS. The conversation doesn’t care which body the message wore.

The lesson we keep relearning

Architecture is destiny. We set out to build a conversation substrate, not “voice AI with texting,” and voice simply inherited what the substrate could already do. Teams that start from the call and bolt on messaging will keep shipping notification features and calling them conversations. The difference shows up in the customer’s thumb: one long thread with their voice calls woven through it, or a graveyard of one-way texts from short codes they can’t reply to.

A phone number was always two channels. Building the company on the messaging half first turned out to be the fastest way to get the voice half right. The design decision was simple: the call ends, but the conversation doesn’t. Everything else follows from that.