VeloConnect — Guide

Channel history

A customer who messages you on WhatsApp on Monday and SMS on Friday is one person, not two. VeloConnect’s thread view merges those messages into a single, time-ordered conversation, regardless of which channel each one came in on.

Thread with messages from multiple channels
Fig. 1 — A thread that mixes WhatsApp, SMS, and voice. The channel badge on each message shows where it came from.

How the merge works

We match by phone number. If the same phone appears as the WhatsApp sender on one message and the SMS sender on another, both messages land on the same contact and in the same thread.

Email is matched by email address, separately. So a contact who messages you on WhatsApp from +374 60 123 456 and emails you from [email protected] will be one contact only if you’ve added both the phone and the email to their record manually (or via import).

Telegram, Facebook, and Instagram use their own internal IDs. We attach those to the contact the first time the customer messages you on that channel, then match by the channel ID on every subsequent message.


Channel badges

Every message in the thread has a small icon indicating its channel:

IconChannel
💬 (in green)WhatsApp
📱SMS
🔵Viber
✈️Telegram
✉️Email
📘Facebook Messenger
📷Instagram Direct
📞Voice call (with duration)

(We use minimal, monochrome icons in the live UI — these emoji are just for shape reference here.)

Hover over an icon to see the channel name and the sender ID we received from. On voice calls, hovering also reveals the DID used.


Cross-channel reply rules

You can reply on any channel the contact is opted in to, even if their last inbound message was on a different one. A few real cases:

  • They WhatsApp’d you, you reply on SMS. Allowed. Pick “SMS” in the channel selector before sending. The customer gets your reply as an SMS; their next reply still comes back on whichever channel they choose.
  • They emailed you, you reply on WhatsApp. Allowed if you have their phone and they’re opted in for WhatsApp.
  • They’re opted out of SMS. The “SMS” option is disabled in the channel selector with a tooltip explaining why.

The default — pressing send with no channel change — replies on the same channel as the inbound message. That’s almost always what you want.


When two contacts should have been one

It happens. Customer messages from a personal mobile on WhatsApp, then later messages from a work mobile on SMS. Two contacts, two threads.

There’s no automatic dedupe today. You can manually merge:

  1. Open the contact you want to keep (usually the older one).
  2. Actions → Merge with another contact.
  3. Pick the other contact from the picker.
  4. Confirm. The other contact’s messages, calls, notes, and timeline events all move to the kept contact; the duplicate is deleted.

The merge is recorded in the audit log so you can reverse it if needed.


What we don’t merge

  • Different people who share a phone. A shared family or office number with multiple people messaging from it gets one contact in VeloConnect. Use tags or notes to mark which messages are from which person. Auto-detection of multiple people behind one number isn’t a thing yet.
  • Channel IDs without a verified link. A Telegram username and a phone number aren’t joined unless you (or an import) explicitly linked them on the contact.

Privacy and the timeline

The thread shows messages. The full activity timeline (notes, calls, tag changes, assignments) lives on the contact profile — see Notes and the activity timeline.

Both surfaces respect role: agents see threads for their assigned contacts; supervisors see their team’s; admins see everything. Channel doesn’t change that.


Next