Contacts and contact lists in Multi Messenger CRM
Multi Messenger CRMContacts is a shared recipient directory for WhatsApp, Telegram and MAX. Use it to find records, associate messenger accounts, assign CRM labels, and build dynamic contact lists.
Click a number or the indicated area in the overview to jump to its explanation. Phone numbers in the illustrations have been redacted.
Click a detail image to enlarge it. In the overview, numbered markers and indicated controls link to explanations; click an unmarked area to enlarge the whole illustration.
1. Contacts table
Each row is one recipient record. Columns show the number, contact name, associated messenger accounts and CRM labels. A dash indicates missing data. When an account cell has more than two lines of account chips, its expand button reveals the remainder.
- Type part of the number or name in the corresponding header field to search.
- Click ↕ beside a field to change sorting by number or name.
- Scroll down to load more contacts. The counter shows loaded versus total records; the initial batch contains up to 50 rows.
- To edit one contact, double-click its row outside the selection checkbox and account expand button. Update the number, name, account associations or labels, then click Save.
A saved individual contact must have a non-empty number and at least one associated account. Reusing a number already present in the same channel produces an error.
Select rows and bulk edit
Selection checkboxes are in the far-right table column (scroll horizontally if needed). The header checkbox selects or clears the currently loaded rows.
- Select the relevant rows.
- Click the Edit N button that appears in the upper toolbar.
- For accounts and labels, choose whether to add, remove or leave each value unchanged. An intermediate state means it occurs on only some selected contacts; leave that state alone unless you intend to change it.
- Confirm with OK.
The same bulk dialog offers deletion with a separate confirmation. This is not merely removing recipients from a list: deleting a contact also removes its associated chats and messages. To narrow recipients without deleting records, use lists and labels.
2. Select and create a list
The dropdown above the table switches the set of displayed contacts. All contacts is the built-in list and cannot be edited or deleted. A custom list stores filtering conditions, not a separate copy of the contact records. Your active list selection is remembered in this browser.
- Click + beside the list selector.
- Enter a list name.
- Optionally choose labels to include or exclude and supply a recipient number RegExp. The default
.*accepts any number. - Click Create. The new list appears in the selector and becomes active.
To update an existing list, open its conditions.
3. List conditions and deletion
The pencil button edits the selected custom list. Editing and deletion are disabled for the built-in All contacts list.
- Select a custom list and click the pencil.
- Change the name if required.
- For each relevant label choose one of three states: check to include, cross to exclude, or empty to ignore.
- Enter an additional recipient-number RegExp, or leave
.*to accept any number. - Click Save.
If several labels are checked, a contact needs at least one of them; crossed labels must be absent. For example, include Client and Enquiry but exclude Stop: a contact with Client OR Enquiry is included only if it has no Stop label. The expression ^79[0-9]{9}$ matches an 11-digit number beginning with 79; .* imposes no number restriction.
To delete a custom list, select it, click the trash button in the top toolbar and confirm. This deletes the saved list rule, not the underlying contacts.
4. Filter by accounts
This filters contacts according to messenger accounts associated through chats. Each account cycles through three states:
- Empty square — ignore this account.
- Check — the contact must be associated with at least one included account.
- Cross — exclude contacts associated with this account.
Further clicks cycle empty → check → cross → empty. The current filter is applied on top of the active list conditions, without rewriting that saved list. The number on the filter button counts active choices.
5. Filter by CRM labels
Open Labels to further restrict the current list. Every label cycles through the same three states as the account filter: empty → include → exclude → empty.
- Check — retain a contact with at least one included label.
- Cross — exclude contacts carrying that label.
- No label is a separate condition for including or excluding contacts without any assigned CRM label.
These are temporary table filters. To keep recipient-selection rules, create a custom list and edit its conditions.
6. XLSX import and export
The down and up arrows export and import contacts respectively. These actions are available to director-level users.
Export
- Choose a list, then apply any account and label filters.
- Click the down arrow.
- Save
contacts_export_...xlsx. The file includes every matching contact, not just the first 50 rows currently loaded in the table.
Import
- Prepare the first worksheet with these exact column headers:
| Column | Meaning |
|---|---|
external_numbers.phone_number | Recipient phone number; required |
external_numbers.display_name | Optional display name |
external_numbers.app_channel | Channel: whatsapp, telegram or oneme (MAX) |
internal_numbers.internal_number | Existing internal account numbers, comma-separated; optional |
labels_with_dates | Label names, optionally followed by assignment dates as Label:date, comma-separated; optional |
- Click the up arrow and select a
.xlsxfile. - Wait for the import report with file row count, inserted records, duplicates and invalid entries.
If the channel is blank, the system tries to infer it from the first matching existing internal account. Otherwise the row is invalid. Unknown internal account numbers are not created automatically. A repeated recipient within the same channel is reported as a duplicate: no second record is inserted, but its display name and supplied associations may be updated. An unknown label is reported as invalid; the contact record may already have been inserted before this label error was encountered.