---
url: >-
  https://docs.corbitaltech.dev/products/whatsmark-saas/tenant/contact-management.md
description: >-
  Learn how to add, filter, export, and manage contacts seamlessly with
  WhatsMark SaaS’s Contact Management System. Simplify bulk actions and
  streamline communication with powerful features.
---

# Contacts

Organize and manage contacts across different platforms like **WhatsApp** and **SaaS** and also can **add, edit, filter, import, export, and manage contacts** with ease.

## 1. Adding New Contacts

View contact list and create new contacts.

### Contact List View

![contacts](../images/contact/contact-list.png)

All created contacts will appear in the **Contact List** table.

### Contact List Column Breakdown

| Column            | Description                                                                                                                                            |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **SR.NO**         | Serial number of the contact in the list                                                                                                               |
| **Name**          | Full name of the contact (clickable to view details)                                                                                                   |
| **Type**          | Contact classification: `lead`, `customer`, or `guest`                                                                                                 |
| **Phone**         | Contact's phone number                                                                                                                                 |
| **Assigned**      | The user or team assigned to the contact                                                                                                               |
| **Initiate chat** | WhatsApp icon button to send template-based messages and start conversations                                                                           |
| **QR Chat**       | Shown only if [WhatsApp QR Login](/products/whatsapp-qr-login-for-whatsmark-saas-bundle/index.md) is active — links to the contact's QR-connected chat |
| **Status**        | Contact's current progress status (e.g., `New`, `In Progress`)                                                                                         |
| **Source**        | Where the contact came from: `Facebook` or `WhatsApp`                                                                                                  |
| **Group**         | Shows which group(s) the contact belongs to (displays `N/A` if no group assigned)                                                                      |
| **Opted Out**     | Indicator showing if contact has opted out from receiving campaign messages                                                                            |
| **Active**        | Toggle switch to activate/deactivate contact visibility                                                                                                |
| **Created At**    | Shows how recently the contact was added                                                                                                               |

***

### Additional Actions in the Contact List

* **Activation Toggle**: Use the **blue switch** to turn a contact on/off.
* **Search**: Use the top-right **search box** to find contacts quickly.
* **Bulk Actions**: Select multiple contact checkboxes to reveal bulk action buttons:
  * **Bulk Delete**: Remove multiple contacts at once
  * **Bulk Actions**: Change status, source, assign to groups, or reassign contacts in bulk
  * **Initiate chat**: Send template messages to multiple contacts simultaneously
* **Column Visibility**: Click the **Columns** icon to show or hide specific table columns based on your needs.
* **Filter Panel**: Use the filter icon to open a side panel with advanced filtering options.
* **Import Contacts**: Click **`Import Contacts`** to upload contacts in bulk from CSV or Excel.

> Only active contacts may appear in downstream workflows or reports.

## *How to Create a New Contact*

This guide walks you through the process of creating a new contact using the **Add New Contact** form.

### Step 1: Open the Contact Form

* Click the **`+ New Contact`** button on the contacts page.
* A form titled **Add New Contact** will open.

![contacts](../images/contact/create-contact.png)

***

### Step 2: Fill in Contact Details

In the **Contact Details** tab, enter the following:

#### Required Fields (`*` marked)

| Field            | Description                                                                                                        |
| ---------------- | ------------------------------------------------------------------------------------------------------------------ |
| **Status\***     | Select the contact’s current status:• `New`• `In Progress`• `Contacted`• `Qualified`• `Closed` |
| **Source\***     | Choose where the lead came from:• `Facebook`• `WhatsApp`                                                   |
| **First Name\*** | Enter the contact’s first name                                                                                     |
| **Last Name\***  | Enter the contact’s last name                                                                                      |
| **Type\***       | Select the contact type:• `Lead`• `Customer`• `Guest`                                                  |
| **Email\***      | Provide a valid email address                                                                                      |
| **Phone\***      | Enter the contact’s phone number with country code                                                                 |

#### Optional Fields

| Field                | Description                                                  |
| -------------------- | ------------------------------------------------------------ |
| **Assigned**         | Assign the contact to a team or user (e.g., `Staff members`) |
| **Company**          | Enter the associated company name                            |
| **Website**          | Provide a website URL if applicable                          |
| **Assign to groups** | Assign the contact to one or more groups for organization    |

***

### Step 3: Fill in Other Details *(Optional)*

Switch to the **Other Details** tab to add additional background information:

| Field           | Description                          |
| --------------- | ------------------------------------ |
| **City**        | Contact's city                       |
| **State**       | State or province                    |
| **Country**     | Country name                         |
| **Zip Code**    | Postal or ZIP code                   |
| **Address**     | Street address or location           |
| **Description** | Internal notes or contact background |

***

### Step 4: Save the Contact

* Once all required fields are completed, click the **`Add`** button to save.
* To discard the form, click **`Cancel`**.

***

### Contact Creation Limits

The number of contacts you can create depends on your subscription plan:

* The **Unlimited** badge (shown in the top-right corner) indicates your contact creation limit based on your purchased plan.
* Different plans may have different contact quotas (e.g., 100 contacts, 1,000 contacts, or unlimited).
* If you reach your plan's contact limit, you'll need to upgrade your subscription to add more contacts.

> **Note**: Check your plan details to see your current contact limit and usage.

***

## Understanding Contact Types

WhatsMark SaaS supports three types of contacts to help you categorize and manage your interactions effectively:

### Contact Type Definitions

| Type         | Description                                                                       | Usage                                                      |
| ------------ | --------------------------------------------------------------------------------- | ---------------------------------------------------------- |
| **Lead**     | Potential customers who have shown interest in your business                      | Used for prospecting and nurturing campaigns               |
| **Customer** | Existing clients who have made purchases or established business relationships    | Used for customer support, retention, and loyalty programs |
| **Guest**    | Users who have sent messages but haven't been converted to leads or customers yet | Automatically assigned to new message senders              |

### Guest Type Behavior

::: info **Auto-Classification**
When someone sends a message to your WhatsApp Business number for the first time, they are automatically stored as a **Guest** type if the **WhatsApp Auto Lead** setting is not enabled.
:::

* **Default Storage**: All new incoming messages from unknown numbers are stored as guests
* **Auto Lead Setting**: When Auto Lead is enabled, contacts are created as **Lead** type instead of guests
* **Manual Conversion**: You can manually convert guests to leads or customers at any time by editing their contact details
* **Usage in Automation**: Guest contacts can be targeted in:
  * Message Bots
  * Template Bots
  * Campaigns
  * Bulk messaging operations

::: tip **Best Practice**
Review your guest contacts regularly and convert promising prospects to leads for better tracking and follow-up workflows.
:::

***

### Notes (Available After Contact Is Created)

Once the contact is successfully added, a **Notes** tab will become available.
You can use this tab to:

* Add follow-up information
* Track conversation history
* Write internal remarks

> **Important:** You must first create the contact before accessing the **Notes** section.

***

### Notes Section *(Only in Edit Mode)*

![contacts](../images/contact/note.png)

> **Note:** The **Notes** tab is available **only after a contact is created**. You cannot add notes during contact creation.

#### Adding Notes

* Open the contact in **Edit** mode.
* Navigate to the **Notes** tab.
* Use the **Add Notes** input to write comments, updates, or follow-ups.
* Click **`Add`** to save the note.

#### Notes List

* All previously added notes appear in chronological order.
* Each note shows a timestamp and can be deleted using the trash icon.

***

## Initiate Chat - Send Template Messages

![initiate chat](../images/contact/initiate-chat.png)

The **Initiate chat** feature allows you to send template-based WhatsApp messages to contacts to start conversations in compliance with Meta's 24-hour messaging policy.

### How It Works

1. Click the **WhatsApp icon** in the **Initiate chat** column for any contact.
2. An **Initiate chat** popup window will open.

### Popup Features

#### Template Selection

* **Template Dropdown**: Choose from pre-approved WhatsApp message templates.
* Templates must be approved by Meta before they can be used.

#### Variables Section

Templates often contain dynamic variables that can be personalized:

* **Variable Input Field**: Type text or use dynamic merge fields from contacts.
* **@ Mention System**: Type the **`@`** symbol to trigger a popup showing all available merge fields:
  * Contact First Name
  * Contact ID
  * Contact Last Name
  * Contact Company
  * Contact Email
  * Contact Phone Number
  * Contact Website
  * Contact Type
* **Auto-Complete**: Select any field from the popup to automatically insert it as a variable.
* The selected merge field will be replaced with the actual contact data when the message is sent.

#### Message Preview

* The right panel shows a **live preview** of how the message will appear.
* Variables are highlighted in blue (e.g., `@contact`).
* Preview updates automatically as you fill in variables.

#### Sending the Message

* Click **`send`** to deliver the template message.
* Click **`cancel`** to close without sending.

### Meta's 24-Hour Messaging Policy

::: info **Conversation Window**
Once a contact replies to your template message, a **24-hour conversation window** opens. During this time, you can send free-form messages without using templates. After 24 hours of inactivity, you must use another template to re-initiate the conversation.
:::

### Use Cases

* **Lead Follow-up**: Send initial outreach messages to new leads
* **Re-engagement**: Reconnect with inactive contacts
* **Appointment Reminders**: Send scheduled notifications
* **Order Updates**: Notify customers about order status

## Bulk Initiate Chat

Send template messages to multiple contacts at once:

1. **Select Contacts**: Check the boxes next to contacts you want to message.
2. **Click Initiate chat**: A purple **`Initiate chat`** button appears in the toolbar.
3. **Choose Template**: Select a template and configure variables.
4. **Send**: All selected contacts will receive the same template message.

> **Tip**: Use this feature for campaigns, announcements, or batch follow-ups.

## 2. Export Contacts

Export your contact data for reporting, backup, or external processing.

### How to Export

* Click the green **`Export CSV`** button in the top-right corner of the contact list.
* A **CSV file** containing all your contacts will be downloaded directly to your device.

## 3. Filtering Contacts

![contacts](../images/contact/filter.png)

Use the advanced filter panel to quickly find specific contacts based on multiple criteria.

### How to Use Filters

1. Click the **Filter** icon (funnel icon) in the top-right area of the contact list.
2. A **Filters** panel will slide in from the right side of the screen.
3. Select your desired filter criteria from the dropdown menus.
4. Click **`Reset`** to clear all filters and return to the full contact list.

***

### Available Filter Options

| Filter       | Options                                                  |
| ------------ | -------------------------------------------------------- |
| **Type**     | Filter by `Lead`, `Customer`, or `Guest`                 |
| **Assigned** | Filter contacts assigned to a specific user or team      |
| **Status**   | `New`, `In Progress`, `Contacted`, `Qualified`, `Closed` |
| **Source**   | Filter by origin: `Facebook`, `WhatsApp`, etc.           |
| **Groups**   | Filter contacts belonging to specific groups             |

***

### Filter Behavior

* **Multiple Filters**: You can combine multiple filters to narrow down results precisely.
* **Real-time Updates**: The contact list updates automatically as you select filter options.
* **Export Impact**: Filtering affects exports — only filtered contacts will be included in the CSV download.

::: tip **Quick Reset**
Use the **`Reset`** button at the top of the filter panel to instantly clear all active filters.
:::

## 4. Bulk Actions

![bulk actions](../images/contact/bulk-actions.png)

Perform actions on multiple contacts simultaneously to save time and effort.

### Accessing Bulk Actions

1. **Select Contacts**: Check the boxes next to the contacts you want to modify.
2. **Action Buttons Appear**: Once contacts are selected, three action buttons appear in the toolbar:
   * **Bulk Delete** (red button)
   * **Bulk Actions** (green button)
   * **Initiate chat** (purple button)

***

### Bulk Actions Modal

Click the green **`Bulk Actions`** button to open the bulk modification modal.

#### Available Bulk Operations

| Action               | Description                                                   |
| -------------------- | ------------------------------------------------------------- |
| **Status**           | Change the status of selected contacts (e.g., New, Contacted) |
| **Source**           | Update the source field for multiple contacts                 |
| **Assign to groups** | Add selected contacts to one or more groups                   |
| **Assigned**         | Reassign contacts to a different user or team                 |

#### How to Use Bulk Actions

1. Select contacts using the checkboxes.
2. Click **`Bulk Actions`**.
3. Choose the fields you want to update from the dropdown menus.
4. Click **`Save`** to apply changes or **`Cancel`** to discard.

::: warning **Important**
Bulk actions cannot be undone. Make sure you've selected the correct contacts before applying changes.
:::

***

## 5. Column Visibility Control

Customize which columns are displayed in the contact list table.

### How to Show/Hide Columns

1. Click the **Columns** icon (three vertical lines) in the top-right area.
2. A **Columns** panel will open showing all available columns with checkboxes.
3. Check or uncheck columns to show or hide them.
4. Changes apply instantly to the table view.

## 6. Opt-Out Management

The **Opted Out** column indicates whether contacts have opted out from receiving campaign messages.

### How Opt-Out Works

#### Automatic Opt-Out

* Opt-out status is managed automatically based on **application settings**.
* When a contact opts out (e.g., by replying with a keyword like "STOP"), their status updates automatically.

#### Manual Opt-Out

* You can manually set a contact's opt-out status from the contact list or edit screen.
* Use this when contacts request opt-out through other channels.

### Campaign Impact

::: danger **Campaign Restriction**
Contacts marked as **Opted Out** will NOT receive campaign messages. This restriction applies to:

* Bulk Campaigns
* Automated Marketing Messages
* Template Broadcasts
  :::

### Best Practices

* **Respect Preferences**: Always honor opt-out requests to maintain compliance and trust.
* **Regular Review**: Periodically check opt-out contacts to understand why they unsubscribed.
* **Re-engagement**: Consider targeted re-engagement campaigns for opted-out contacts (with appropriate consent).

> **Note**: Opted-out contacts can still receive transactional messages (like order confirmations) and replies to their inquiries.

***

## 7. Contact Groups

The **Group** column displays which group(s) a contact belongs to.

### Group Assignment

* Contacts can be assigned to groups for better organization.
* Shows `N/A` when no group is assigned.
* Multiple groups can be assigned to a single contact.

### Assigning Contacts to Groups

#### Individual Assignment

**During Contact Creation:**

1. When creating a new contact, use the **Assign to groups** field in the Contact Details tab.
2. Select one or more groups from the dropdown.
3. Click **`Add`** to save the contact with the selected groups.

**After Contact Creation:**

1. Edit the contact.
2. Select the desired group from the group dropdown.
3. Save the contact.

#### Bulk Assignment

1. Select multiple contacts using checkboxes.
2. Click **`Bulk Actions`**.
3. Choose groups from the **Assign to groups** dropdown.
4. Click **`Save`**.

### Benefits of Using Groups

* **Organized Campaigns**: Target specific groups with relevant messages.
* **Easy Filtering**: Quickly find contacts by group membership.
* **Segmentation**: Create customer segments for personalized communication.

***

## 8. Import Contacts

![contacts](../images/contact/import-contact.png)

Import multiple contacts at once by uploading a properly formatted **CSV file**. The import process runs asynchronously using cron jobs and queue workers.

### Preview

***

### Step-by-Step Import Process

#### Step 1: Access Import Feature

1. Navigate to the **Contacts** page.
2. Click the **`+ Import`** button in the top-right corner.
3. The **Import contacts from CSV file** modal will open.

***

#### Step 2: Download Sample File & Review Requirements

Before importing, review the CSV format requirements:

1. Click **Download Sample File & Read Rules** link in the import modal.
2. A popup will display important requirements:

##### CSV Requirements

::: info **Phone Number Column Requirement**
Your CSV file must include a column named **Phone**. Each record in this column should contain a valid contact number, correctly formatted with the country code, including the '+' sign.
:::

::: info **CSV Format and Encoding**
Your CSV data should follow the specified format. The first row of your CSV file must contain the column headers, as shown in the example table. Ensure that your file is encoded in **UTF-8** to prevent any encoding issues.
:::

3. Click the green **`Download Sample`** button to get a pre-formatted CSV template.

##### Sample CSV Format

| Column          | Required | Description                                                                     |
| --------------- | -------- | ------------------------------------------------------------------------------- |
| **STATUS_ID**   | Yes      | Status ID from Contact Statuses reference                                       |
| **SOURCE_ID**   | Yes      | Source ID from Lead Sources reference                                           |
| **ASSIGNED_ID** | No       | Staff member ID to assign the contact to                                        |
| **FIRST_NAME**  | Yes      | Contact's first name                                                            |
| **LAST_NAME**   | Yes      | Contact's last name                                                             |
| **COMPANY**     | No       | Company name                                                                    |
| **TYPE**        | Yes      | Contact type: `Lead`, `Customer`, or `Guest`                                    |
| **EMAIL**       | No       | Valid email address                                                             |
| **PHONE**       | Yes      | Phone number with country code (e.g., +1 555 123 4567)                          |
| **GROUP_ID**    | No       | Group ID(s) from Contact Groups reference (comma-separated for multiple groups) |

> **Example Phone Format**: `+1 555 123 4567`

***

#### Step 3: Prepare Your CSV File

The import modal displays reference panels on the right side showing all available IDs you'll need:

##### Staff Members (Assigned ID)

Shows staff member IDs, names, and emails:

* Use the **ID** column value in your CSV's `assigned_id` field
* Example: `4` = Vatsal Patani, `10` = Corbital admin

##### Contact Groups

* Multiple groups can be assigned using comma separation: `"1,2,3"`

::: tip **Using Reference IDs**
All reference panels show `"Use for [field_name] column"` links. Make sure to use the exact **numeric IDs** (not names) in your CSV file.
:::

***

#### Step 4: Upload CSV File

1. In the **Import Contact** section:
   * **Drag and drop** your `.csv` file into the upload area, or
   * **Click in the area** to browse and select your file
2. Only CSV files are accepted.
3. Click the blue **`Upload`** button to start the import.
4. Click **`Cancel`** to close the modal without importing.

***

### Import Logs

![import logs](../images/contact/import-logs.png)

After uploading, your import is queued and processed in the background. Track progress on the **Import Logs** page.

#### Accessing Import Logs

* Navigate to **Dashboard > Contact > Import Contacts**
* The Import Logs page displays: "View and manage contact import history and status."

#### Import Logs Table Columns

| Column       | Description                                                                                                       |
| ------------ | ----------------------------------------------------------------------------------------------------------------- |
| **ID**       | Unique import job identifier                                                                                      |
| **Status**   | Current status: `Processing` (yellow), `Completed` (green)                                                        |
| **File**     | CSV filename with unique identifier (clickable link)                                                              |
| **Progress** | Progress bar showing import completion percentage                                                                 |
| **Records**  | Import statistics:• Total records to process• ✓ Successfully imported (green)• ✗ Failed records (red) |
| **Created**  | When the import was initiated (e.g., "9 seconds ago", "3 weeks ago")                                              |
| **Actions**  | View details (eye icon) and Delete import log (trash icon)                                                        |

#### Status Types

* **Processing**: Import is currently being processed by queue workers
* **Completed**: All records have been processed
* **Pending**: Import is queued but not yet started (see troubleshooting below)

***

### How Import Processing Works

The contact import process is handled asynchronously:

1. **Upload**: You upload the CSV file
2. **Queue**: Import job is added to the queue system
3. **Processing**: Queue workers process records in batches
4. **Completion**: Status updates to "Completed" with success/failure counts

::: info **Background Processing**
Imports run in the background using **cron jobs** and **queue workers**. This allows you to continue working while large imports are processed without blocking the interface.
:::

***

### Troubleshooting Import Issues

#### Import Stuck in "Pending" Status

If your import remains in **Pending** status and doesn't progress:

::: warning **Cron Job and Queue Worker Verification Required**
Imports require properly configured cron jobs and queue workers to process. If imports don't start, the system's background job processing may not be running.
:::

### Common Import Errors

| Error Type            | Cause                                    | Solution                                      |
| --------------------- | ---------------------------------------- | --------------------------------------------- |
| **Invalid Phone**     | Missing country code or incorrect format | Add '+' and country code to all phone numbers |
| **Invalid Status ID** | Status ID doesn't exist in system        | Use IDs from Contact Statuses reference panel |
| **Invalid Source ID** | Source ID doesn't exist                  | Use IDs from Lead Sources reference panel     |
| **Invalid Type**      | Type not in allowed values               | Use only: `Lead`, `Customer`, or `Guest`      |
| **Duplicate Phone**   | Phone number already exists              | Remove duplicates or update existing contacts |
| **Missing Required**  | Required field is empty                  | Ensure all required columns have values       |
| **Encoding Issues**   | File not in UTF-8                        | Re-save CSV with UTF-8 encoding               |

***

### Import Summary

Once imports complete successfully:

* New contacts appear in the main **Contact List**
* They can be filtered, exported, and managed like manually created contacts
* Import logs are retained for audit purposes
* Failed records can be reviewed and re-imported after correction

***

## Contact Kanban Board

The **Contact Kanban Board** is a drag-and-drop interface that helps you visually manage the progress of your contacts across different stages. Each contact is represented as a card that you can move between status columns to update their current state.

### Key Features

* Drag and drop contacts between status columns
* Instant visual feedback on contact progression
* Automatic status updates upon drop
* Responsive design for desktop and mobile
* Customizable status stages

***

### Status Columns

The board organizes contacts into the following stages:

1. **Contacted** – The contact has been reached out to
2. **Qualified** – The contact meets the desired criteria
3. **In Progress** – Communication or process is ongoing
4. **In Setup** *(formerly "In s")* – Preparation phase before final closure *(optional / customizable)*
5. **Closed** – The contact has reached a final state (deal closed, process complete, etc.)

> All status labels are fully configurable based on your workflow.

***

### How It Works

1. Each contact appears as a draggable card in their current status column.
2. Drag a contact card and drop it into another column to change its status.
3. The backend updates the contact's status automatically once dropped.
4. All changes are reflected in real time.

***

### Preview
