Contacts and contact lists in Multi Messenger CRM
AndySendy academy

Contacts and contact lists in Multi Messenger CRM

Multi Messenger CRM

Contacts 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

1. Contact table showing number, name, associated accounts and labels; recipient numbers are redacted

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.

  1. Type part of the number or name in the corresponding header field to search.
  2. Click ↕ beside a field to change sorting by number or name.
  3. Scroll down to load more contacts. The counter shows loaded versus total records; the initial batch contains up to 50 rows.
  4. 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.

  1. Select the relevant rows.
  2. Click the Edit N button that appears in the upper toolbar.
  3. 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.
  4. 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

2. Contact-list dropdown and plus button

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.

2. Actual New list dialog

  1. Click + beside the list selector.
  2. Enter a list name.
  3. Optionally choose labels to include or exclude and supply a recipient number RegExp. The default .* accepts any number.
  4. 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

3. Edit-conditions and delete-list buttons

The pencil button edits the selected custom list. Editing and deletion are disabled for the built-in All contacts list.

3. Actual dialog for editing list name, labels and phone-number RegExp

  1. Select a custom list and click the pencil.
  2. Change the name if required.
  3. For each relevant label choose one of three states: check to include, cross to exclude, or empty to ignore.
  4. Enter an additional recipient-number RegExp, or leave .* to accept any number.
  5. 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

4. Collapsed Accounts filter above the contacts table

This filters contacts according to messenger accounts associated through chats. Each account cycles through three states:

  1. Empty square — ignore this account.
  2. Check — the contact must be associated with at least one included account.
  3. 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

5. Collapsed Labels filter above the contacts table

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

6. Download/export and upload/import XLSX buttons in the top toolbar

The down and up arrows export and import contacts respectively. These actions are available to director-level users.

Export

  1. Choose a list, then apply any account and label filters.
  2. Click the down arrow.
  3. Save contacts_export_...xlsx. The file includes every matching contact, not just the first 50 rows currently loaded in the table.

Import

  1. Prepare the first worksheet with these exact column headers:
ColumnMeaning
external_numbers.phone_numberRecipient phone number; required
external_numbers.display_nameOptional display name
external_numbers.app_channelChannel: whatsapp, telegram or oneme (MAX)
internal_numbers.internal_numberExisting internal account numbers, comma-separated; optional
labels_with_datesLabel names, optionally followed by assignment dates as Label:date, comma-separated; optional
  1. Click the up arrow and select a .xlsx file.
  2. 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.