Threading
How CommSync collapses SMS and email from the same person into a single, unified conversation.
CommSync's core promise is simple: one thread per person, regardless of channel. When someone texts you and emails you, you read both in one place, reply from the same composer, and see the whole history together. This page explains how CommSync forms threads, what happens with group emails and forwarded messages, and how CommSync renders each message type.
How CommSync forms a thread
A Thread is a conversation timeline. Every inbound or outbound message belongs to exactly one thread. CommSync shares threads across your whole organization — there is no per-user copy of a message.
When a new message arrives, CommSync resolves which thread it belongs to, with two signals:
- For email: RFC 5322 chain headers (
In-Reply-To,References,Message-ID). Replies stay in the thread they reference. - For SMS: the pair of phone numbers (yours and theirs). Each distinct pair gets its own thread.
Because a contact can own both an email Identity and a phone Identity, a single thread can hold both channel types. Once you merge or attach the two identities under one contact, all future messages from either channel land in one conversation.
Unifying channels
SMS and email messages share a thread only after you link the two identities under one contact. You can attach, merge, or promote them from the contact panel. CommSync never links them for you. See Merging identities for how that works.
Group email threads
CommSync removes your own address first. If two or more participants remain, CommSync treats the message as a group thread rather than a 1:1 conversation. This mirrors how SMS group chats work.
Group threads have their own identity, separate from any individual's 1:1 thread:
- A reply-all that adds a new participant to an active 1:1 chain forks into a new group thread.
- A reply inside a group chain stays in the group thread, also when it goes to one person only.
- CommSync keys each group thread by its set of participants.
To write to one person alone, start a new email to them.
The 1:1 thread keeps its history intact when a reply-all forks a new group thread off it. The same set of participants always lands in the same group thread, even across unrelated email chains.
This also applies to an email you start. When you compose a new email to a group you emailed before from the same line, CommSync files it in the thread of that group. For a single recipient, New chain starts a fresh chain.
In the thread list, group threads show stacked avatars and a subtitle listing participants ("Alice, Bob & 3 others"). When you click a contact's name, it takes you to their 1:1 thread, not the group.
Why the separation matters
Without this split, a reply-all can shadow a contact's individual conversation, and that makes their 1:1 messages unreachable. CommSync prevents this: it treats groups as their own canonical surface.
Group threads also change which line a reply goes out from. On a 1:1 thread, the reply uses the line the conversation already used. On a group thread, that line often belongs to a teammate. CommSync then uses your own default line for outbound messages instead. See sending messages.
Forwarded emails and AI thread titles
When someone forwards you an email, the immediate sender is not always the person who wrote it. For example, your colleague Maya forwards you a Shopify order confirmation. Maya is the sender, but Shopify wrote the message.
CommSync reads the delivery evidence in each message: the mail headers, an attached original, and the forwarded-message blocks of common mail clients. It then shows the conversation under the person who wrote the mail, with a muted via line for the person or address that carried it. See Forwarded mail for the full behavior, the route card, and the corrections.
When a colleague forwards you a message, CommSync can also generate a descriptive AI title for the thread, such as:
"Shopify order #1234 receipt"
An AI title names the original sender and the topic. It never names the colleague who forwarded the message, because the via line already shows that.
Mail that a server rule forwards (an auto-forward, an alias, or a catch-all) gets no AI title. CommSync files that mail 1:1 under its sender, so the thread already has the sender's name.
Thread titles follow a priority order. From most to least authoritative:
| Source | When it applies |
|---|---|
| Manual title | You renamed the contact. Sticky — AI never overrides it. |
| AI title | CommSync generated a context-aware title with enough confidence. |
| Original sender | The name of the person who wrote the latest message, when a person, a server rule, or a list forwarded it to you. On mail from a server rule, the name of a saved contact wins. |
| Subject | The email subject line as written by the sender. Fwd: and similar prefixes never reach a title. |
Settings → AI → Thread titles gates AI titles. If the feature is off,
or if you renamed the contact, CommSync leaves the title alone.
How each channel renders
CommSync renders each message type differently to preserve the native reading experience:
SMS messages render as plain text bubbles — no HTML, no formatting. What the sender typed is what you read. Delivery status (sent, delivered, failed) appears beneath each bubble. Links in the text are clickable, and most of them get a preview card — see below.
Email on mobile
An email card uses the full conversation width. Long emails start with a preview. Tap Expand email to read more in the thread, then Show less to collapse it. The conversation scrolls as one list.
Newsletters adapt to the card width when the sender provides a mobile layout.
Wide tables scale to keep all columns visible. Tap Open reader to zoom
into a dense email or continue beyond a very long preview. Email paper stays
white in dark mode, and the card controls follow your app theme.
The line a message used
Every message names the line it used: the phone number a text came in on, or the mailbox an email left from. The message's meta row reads as one sentence. After the time and the delivery tick it says to Front desk inbox on a message you received. On a message you sent it says from Front desk inbox. The line name is the only emphasized word. Hover it to see the full number or address and the carrier.
On an email card the line is a small chip on the second line of the header. A received email shows the chip alone, and a sent email reads from and the chip.
Click the line name to copy the number or the address. The same action is in the message's right-click menu, as Copy line number or Copy line address.
In a wide conversation column the whole sentence sits on one line. When the column is narrower, the line part moves whole to a second line under the time. The sender name and the time never break. A contact's view can stitch a text thread and an email thread into one conversation; each message then names its own line. The conversation list shows the line under each row's preview. The line belongs to the conversation itself, so a teammate who reads the conversation through a share sees it too.
Links and preview cards
A link in a text message is clickable. CommSync finds three shapes: a full http:// or https:// address, a host that starts with www., and an email address.
A bare domain with no scheme stays plain text on purpose. To catch it, CommSync would have to treat every word with a dot in it as a link. That turns Node.js and the end of a sentence into links too.
Under the bubble, CommSync shows a preview card for the link: the site name, the page title, a short description, and the page image. CommSync reads those from the page's own OpenGraph tags, the same tags a chat app uses. The first person to open the message pays for the lookup. CommSync caches the result, so everyone after them sees the card at once.
Some links never get a card. Think of a password reset, a magic sign-in link, a one-click unsubscribe, or a one-time code. Each one works for exactly one use. A card lookup opens the page, and that can spend the one use. Your click afterwards would then fail. CommSync finds these links from the address and from the words around them, and skips the lookup. The link still works — it only shows no card.
CommSync keeps no picture from a preview. The card holds the address of the image. Your browser loads the picture from the site that published it, the same way every other link preview works.
Thread titles at a glance
Even without AI enabled, CommSync chooses thread titles intelligently:
- 1:1 SMS or email: the contact's saved name, or the email address local-part if no contact exists yet.
- Group email: participant names ("Alice, Bob & 2 others"), or a topical subject when one is present.
- Forwarded email: the original sender's name. A colleague's forward gets an AI title when the feature is on.
To name a thread yourself, rename its contact. The name you set is sticky — it survives future syncs and AI title checks.
Sender names on routed mail
Most email addresses belong to one person, so CommSync remembers the name that address sends under and shows it everywhere.
Some addresses do not work that way. One site mailer sends notices for many
customer sites. A catch-all alias collects mail written to a dozen different
addresses. A shared mailbox such as design@ or support@ carries mail from
everybody. On those addresses, one remembered name is wrong for almost every
message that arrives.
CommSync watches for that. The first time such an address arrives under a second name, CommSync stops treating any single name as the name of that address. Each message then shows the name it came with, and the thread falls back to its subject line. Nothing is lost — you simply stop seeing one customer under another customer's name.
A name you set yourself always wins. If you attached the address to a contact, or renamed the contact, CommSync leaves your name alone.
How to share a link to a conversation
Every conversation has a stable URL you can paste in Slack, a ticket, or an email to a teammate. Whoever follows the link lands directly in that thread — no searching, no "which customer was that again?".
Copy the link
Right-click a conversation in the list and choose Copy, then Copy link. To
point at one specific message, right-click the message bubble instead and
choose Copy message link — the thread opens scrolled to that message,
briefly highlighted.
Send it to a teammate
Anyone in your organization with access to the conversation's line can open it. If they have signed out, CommSync takes them through login and lands them in the thread afterwards.
Links do not bypass permissions. Access follows the same rules as the rest of the inbox:
- Owners and admins can open any conversation in the workspace.
- Members can open conversations on lines an admin has granted them access to (see Roles & permissions).
- A member without access to the line sees a notice that names the line.
- A link from a different workspace simply reports "conversation not found".
That notice tells the member exactly what to ask an admin for — never the conversation's content.
Personal state stays personal
When you open a shared link, that never changes anyone else's view. Your read state, archive status, and labels on the thread are yours alone. The link only takes your teammate to their own view of the same conversation.
Real-time updates
The thread list updates as soon as the server announces a change. As a safety net, it also refreshes every 60 seconds and when you return to the tab. When you have a thread open, new messages and status changes appear instantly without a page refresh.