Skip to content
Contacts CRM

The customer file lives inside the chat

Every conversation carries a record: the fields your team fills in, the labels that sort it, the files you swapped and every note anyone left.

Start free trial

7 days free · No credit card · Cancel anytime

The contacts list in WaliChat, with numbers, labels and the last message on each row
One panel

Open a chat, the file opens with it

A WhatsApp number on its own remembers a name and a phone number. Everything else your team knows about a customer usually ends up in someone's head, a spreadsheet, or a tool nobody opens. Here it sits against the conversation, one click from the reply you are writing.

  • The panel sits beside the thread, so reading it never costs you the conversation.
  • Anyone on the team opens the same record and sees the same history.
  • Edit a field or add a note without leaving the conversation.
Priya Raman+44 7•• ••• 214Assigned to Marta
Account type
Wholesale
Customer since
March 2023
City
Manchester
Preferred language
English
Repeat buyerWholesaleUK

Team note · Invoices go to accounts, never to this number.

order-4471.pdf· 82 KB

size-chart.png· 240 KB

Getting the list in

The list fills itself

Nobody wants to spend a week keying four thousand customers into a new tool, and you do not have to. A record appears the first time somebody messages you, and the spreadsheet you already keep lands on top of those records instead of beside them. The number is what matches them, so the same customer never turns up twice.

Your own software is the third way in: create and update the same records over the REST API, or let a webhook do it the moment an order changes on your side. See the developer tools

Anatomy

What a record can carry

Six things hang off a contact. Together they are the answer to "who is this and what happened last time".

Custom fields

Add the details your business actually asks about, like account type, city, renewal month or order reference, and they stay on the contact rather than in a colleague's memory.

Labels

Markers you invent yourself, such as stage, source, territory or priority, and pin to a contact. One person can wear several, and narrowing the inbox down to a label takes a click.

Team notes

Plain text that never leaves the inbox: what you promised, who has to approve it, how badly the last delivery went. Written for whoever opens the chat next.

Files

Documents and images from the thread stay with the contact, so last quarter's quote is where you would look for it instead of somewhere in the scrollback.

Owner and department

Who is handling this person, and which team they belong to. Assignment moves with the record, so a reply never lands on nobody.

The whole thread

Every message ever exchanged on the number, in one place. The history is the record, so scroll it or search it.

Tell them apart

Labels, notes and fields do different jobs

Teams reach for the wrong one constantly, then wonder why a segment is empty. The short version: labels group, notes explain, fields describe.

Labels, team notes and custom fields compared
AspectLabelsTeam notesCustom fields
In one lineA marker you invented, used for sorting.A private comment for your team.A named value on the contact.
Who reads itYour team. Never the customer.Your team. Never the customer.Your team. Never the customer.
Where it showsOn the chat row and the contact panel.In the thread, styled so nobody mistakes it for a reply.In the contact panel, under its own name.
Reach for it whenYou want to find this group again later.The next person needs context before they answer.The value is different for every contact.
Filters and audiencesYes, for filtering the inbox and building a send list.No. Notes are context, not criteria.Yes, and the value can go into the message itself.
Shared by default

One record, read by the whole team

A CRM that only one person keeps up is a diary. This one is shared from the start: every agent works the same records, departments decide who handles what, and permissions decide who may change it. Hand a chat over and the context goes with the chat.

  • Chat assignment, departments and team permissions decide who handles a record and who may change it.
  • A note written by one agent is waiting for the next one, with the name of whoever left it.
  • Resolve a chat and reopen it months later with the record intact.
HandoverSame record
Support takes a billing questionThe panel is filled in before they answer
They push the chat over to AccountsFields, labels, notes and files travel with it

Nothing retyped, nothing re-explained, nothing lost between two people.

Put it to work

Today's label is tomorrow's audience

The point of tidy records is what you can do with them. Filter the list by any label or field value, send to exactly that group as a campaign, and let the field values write the personal part of each message. The tidying you did in the inbox is the targeting you get in the campaign.

  • Filter by label, field value or activity, then send to the selection.
  • Each message is assembled per contact out of the values already sitting on that record, so it arrives written for one person rather than for a list.
  • Delivery and read reports come back against the same contacts.
Where it fits

The half your CRM was never going to have

Most teams reading this already run a CRM, an ERP, or a spreadsheet that has outlasted two of them. Nothing here asks you to move off it. The work is split by what each side can actually know.

This half

What only the conversation knows

  • The thread itself, meaning every message this number has ever exchanged with this person.
  • What an agent worked out mid-conversation and wrote down before they forgot it.
  • The labels they reached for, the files they sent back, and who is holding the chat now.
  • Fields filled in from the panel because the customer had just said so.

None of it exists anywhere until somebody has the conversation, which is why it belongs where the conversation happens.

The other half

What your system of record is for

  • Invoices, orders, stock and everything your accounting is built on.
  • The pipeline, the forecast and the reporting your managers already trust.
  • The years of history that predate WhatsApp entirely.

Copying any of that over here would leave you with two answers to the same question, and one of them wrong by Friday.

Neither side gets retyped into the other: read and write the contact store over the REST API, and let webhooks push what changed as it changes. The phone number is the key both halves already share. See how that works

For developers

The same records, from your own code

The contact store is part of the API, not a screen bolted on top of it. Search it by phone number, read a record, update its fields from your backend, and subscribe to webhooks so an order or a signup on your side lands on the right contact without anyone opening the inbox.

# Look one record up by its number
curl -G https://api.wali.chat/v1/chat/$DEVICE/contacts \
  -H "Authorization: $WALI_TOKEN" \
  -d "phone=+14155550142"
RESPONSE · 200
[ {"id": "6a1f…c7", "phone": "+14155550142" } ]
Storage

How much the CRM keeps

Contacts, message history and received files are held per plan. These are the live limits, the same ones the pricing table shows.

Contact and history storage by plan
LimitProfessionalBusinessEnterprise
Contacts stored5,00020,000Unlimited
Stored messages50,000150,000500,000
Chat history retention270 days730 days2,190 days
Received files retention120 days365 days1,095 days

Every plan includes the contacts CRM. Compare all features

Questions about the contacts CRM

Do I have to import anything before I start?

No. The contact list builds itself out of the conversations you are already having, and one inbound message is enough to create a record. Importing is there for the list you already keep, not a step you have to clear first.

Can I decide which fields a contact has?

Yes. Beyond name and number you define the fields, name them yourself, and fill them in from the chat panel or over the API. They stay on the contact and you can filter and personalise messages with them afterwards.

Can customers read the notes we leave on a chat?

No. Notes and labels live only inside the inbox, which means they are never sent to WhatsApp and never appear on anybody's phone. Whatever you write on a record stays between the people who open the chat.

Do shared files stay attached to the contact?

Documents and images exchanged in the thread stay with the record. How long received files are kept depends on the plan, and the storage table on this page shows the retention for each one.

Can I turn a group of labelled contacts into a send list?

Yes. Filter the contact list by labels or field values, then send to exactly that selection as a campaign. Every message is assembled from the values on that individual record. The campaigns page walks through scheduling and delivery reporting.

Can my own software read and update these records?

Yes. The REST API lists and searches the contact store and updates records, and webhooks push inbound events to your endpoint as they happen, so your database and the contact panel describe the same customer.

Do I have to drop the CRM we already use?

No, and you should not. Keep your system of record for orders, invoices and the pipeline; this holds what the conversation produced, which is the thread, the notes, the labels and the files. The REST API and webhooks keep both sides describing the same customer, matched on the phone number, so nothing has to be retyped from one into the other.

Stop losing WhatsApp messages today

Join 5,000+ teams already using WaliChat to grow faster.

Start Free Trial NowSeven days on us · Nothing to pay up front · Connected in minutes