Leads & CRM
Moving chat contacts into a CRM without losing anything

Moving chat contacts into a CRM starts not with an export but with a decision about who not to move: take active threads from the last three months and leave the rest in the channel’s history. Then six fields per contact and one rule for how new ones get in.
The most common mistake is trying to move everything. The result is a thousand rows in the CRM, nine hundred of which nobody will ever open, and reporting that no longer means anything.
Which fields do you really need?
Six. Every additional field is a cell somebody has to fill in.
- 1
Name and channel
How to address them and where to write. Without the channel a contact is useless: a WhatsApp number won't find them in Direct.
- 2
Channel handle
Instagram username, WhatsApp number. This is what you actually open the conversation with.
- 3
Date of last contact
The key prioritisation field. Without it a database ages invisibly.
- 4
Status and note
Which stage, plus one line of context. The note is what makes your next message land.
What exports and what has to be done by hand?
WhatsApp gives you phone numbers through saved contacts. Existing order spreadsheets and accounting files are a source too. Instagram Direct and Messenger, however, don’t offer a full export of conversations with contacts, so active threads get moved manually.
That looks like a problem and works like a filter: when every contact has to be typed in, the temptation to move everything disappears on its own.
How do you handle duplicates?
One person easily exists three times: a WhatsApp number, an Instagram handle, and a row in an order spreadsheet. Merging those automatically by name is dangerous — you’ll have several «Elena K.».
The workable approach: merge by hand only when something unique matches — a phone number, a delivery address, or a recognisable order context. Leave the rest separate. Two records are less damaging than one wrong merge that fused the histories of two different customers.
What stops the base falling apart in a month?
Writing down when a contact gets created. Without that, the import is a one-off event after which everything returns to where it started.
The simplest working rule: a contact is created the moment the customer names a specific product or asks about delivery. Earlier is premature — most of those threads go nowhere. Later means after the order, when part of the context is already lost.
One-evening migration checklist
- Open every channel, filter conversations to the last 90 days.
- Create a six-column table (or the matching CRM fields).
- Work top down: name, channel, handle, date, status, one line of note.
- Skip threads with no specifics — those aren’t contacts, they’re views.
- Flag obvious duplicates; merge only on a unique match.
- Write down the rule for creating new contacts and put it where it’s visible.
Frequently asked questions
Can you export Instagram Direct contacts automatically?
No — the platform doesn't offer a full export of conversations with contacts. The workable path is moving active threads from the last three months by hand, then recording new ones as conversations happen.
Which fields do you actually need at the start?
Six: name, channel, channel handle, date of last contact, status, note. Everything else — addresses, birthdays, preferences — gets added later and only once it's genuinely used.
What about customers who wrote a year ago?
Don't move them. A base of old cold contacts creates an illusion of volume and ruins every percentage you calculate. If someone returns, you'll add them in a minute with current context.
How do you keep conversation history through the move?
Don't copy the whole thread. One line of note is enough: what they wanted, how it ended, what was promised. That's exactly what you need before the next message.
How long does this take?
For a shop with a few dozen active threads — one evening. The time goes not into copying but into deciding who not to move.



