What Are Contacts?
Contacts are the people your AI agents call. The Contacts page is where you store phone numbers along with names, emails, companies, tags, and any custom variables you want your agent to use during calls.
Think of it as your calling CRM. Every number you have ever called or plan to call lives here, with all the context attached.
Video walkthrough: Managing your contacts
Adding Contacts
There are two ways to add contacts.
Manual entry
Click + Add Contact on the Contacts page and fill in:
- Full Name (required). The name your agent will use when greeting the contact.
- Phone Number (required). The dashboard picker lets you choose any country code, so you can save US, UK, UAE, or any other number alongside Indian ones.
- Email (optional). Available to the agent as
{{email}}during calls. - Company (optional). Available to the agent as
{{company}}. - Tags (optional). Free-form labels like “hot-leads”, “jaipur”, or “follow-up”. Used for filtering and campaign targeting.
- Status. Lifecycle marker. One of: Never Called, Called, Interested, Do Not Call.
- Notes. Free text for your team. Not used by the agent.
- Custom Variables. Key-value pairs that get substituted into the agent's prompt as
{{var}}during the call. More on this in the next section.
CSV or Excel upload
For bulk imports, click Import and upload either a .csv, .xlsx, or .xls file. Required columns are name and phone. Anything else is optional and either maps to a built-in field or becomes a variable.
| Column | Maps to | Example |
|---|---|---|
name | Built-in: Contact name (required) | Rahul |
phone | Built-in: Phone (required) | +915468791230 or 5468791230 |
email | Built-in: Email | rahul@example.com |
company | Built-in: Company | XYZ Company |
tags | Built-in: Tags (comma or pipe separated) | lead, jaipur |
| Any other column | Custom variable (see next section) | Order ID, Plan, Expiry Date |
The import flow has 3 steps:
- Upload. Drag and drop your file or click to browse.
- Default country. Pick the country code to use for numbers that don't include one. India is the default. Numbers that already have a
+prefix are used as-is regardless of this setting. - Preview. See valid rows, errors, warnings, and any detected variables before importing. Rows with missing or invalid phones are skipped.
9.17878E+11) and the trailing digits are lost forever. Vaaad detects this and warns you on import. To fix: in Excel, select the phone column, right-click, Format Cells, choose Text, then re-paste the numbers. Or save the file as CSV without ever opening it in Excel.Custom Variables: Personalizing Every Call
Variables are how you make calls personal. Anything you put in a contact's Custom Variables can be used in the agent's prompt or greeting as {{variable_name}}. When the agent calls that contact, the placeholder is replaced with the contact's actual value.
For example, if your contact has a variable product = “Honda Activa” and your greeting says:
Hello {{name}}, this is regarding your {{product}}.The agent will actually say “Hello Rahul, this is regarding your Honda Activa.”
Built-in variables (always available)
You don't need to add these manually. They're pulled from the contact's built-in fields automatically:
{{name}}{{phone}}{{email}}{{company}}
Rename a contact, and the next call uses the new name. No need to update anything else.
Custom variables from CSV upload
Any column in your CSV that isn't a built-in field automatically becomes a variable. Column headers are sanitized to valid identifiers:
- “Order ID” becomes
{{order_id}} - “Plan Type” becomes
{{plan_type}} - “Expiry Date!” becomes
{{expiry_date}} - “2024 Renewal” becomes
{{_2024_renewal}}(identifiers can't start with a digit)
The preview step in the import flow shows which variables were detected so you can confirm before saving.
Adding variables to an existing contact
Open any contact in the dashboard. The Custom Variables section at the bottom of the edit form lets you add, edit, or remove key-value pairs. Names are auto-sanitized as you type.
product and plan_type and you re-import a CSV with just expiry_date, the contact ends up with all three. The new column is added without removing the old ones.Organizing with Lists
Lists are color-coded folders for grouping contacts. Use them to keep your CRM tidy and to target specific groups during campaigns.
Creating a list
Two ways:
- Click the + next to “Lists” in the sidebar on the Contacts page. Name it, pick a color, optionally add a description.
- During CSV import, choose the Auto-create from filename option. A CSV named
q4_leads.csvcreates a list called “q4 leads”. If a list with that name already exists, contacts get appended to it instead.
Adding contacts to a list
- Select one or more contacts using the checkboxes
- Click Add to list in the bulk action bar
- Pick an existing list or create a new one
Removing from a list (without deleting)
While viewing a list, select contacts and click Remove from list. This unlinks them from the list but keeps the contact records in your account. Use this when a list is finished.
Tags vs Lists: When to Use Which
Tags and lists overlap a bit, but they serve different jobs.
- Lists are for collections you intend to call as a group. Like “Q4 Leads”, “Renewal Reminders”, or “Jaipur Site Visit RSVPs”. One contact can be in multiple lists.
- Tags are for attributes a contact has. Like “hot-leads”, “qualified”, “2bhk”, or “referral”. One contact usually has multiple tags.
Rule of thumb: if you would name it after a noun, it's probably a list. If you would name it after an adjective or status, it's probably a tag.
Bulk Actions
Select multiple contacts using the checkboxes in the table. A bulk action bar appears at the top of the table:
- Add to list. Drop the selected contacts into an existing list or create a new one.
- Remove from list. Only visible when viewing inside a specific list. Removes the contacts from that list (doesn't delete them).
- Delete. Permanently deletes contacts from your account and removes them from every list. Asks for confirmation.
Using Contacts in Campaigns
When creating a campaign:
- Go to Campaigns and click + New Campaign
- In the Contacts step, pick a list or upload a fresh CSV
- Optionally filter by tag
- The campaign calls every contact in the resulting set. Each call substitutes that contact's variables into the agent prompt.
Contacts that have been called before show their last call date and status in the table, so you can avoid repeats.
Do Not Call
India's NDNC (National Do Not Call) Registry applies to promotional calls. Calling registered numbers without consent can lead to fines and account bans.
Vaaad currently provides two compliance tools:
- Status: Do Not Call. Mark any contact with this status manually or programmatically. Your agent can detect refusal during a call and update this status if you tell it to in the system prompt.
- Outcome tracking. The call analysis flags calls that ended with a refusal or DND request, making them easy to find and tag.
A built-in TRAI NDNC scrub against the official registry is on our roadmap. Until then, scrub your lists against the registry yourself before bulk dialing, and respect any verbal opt-outs your agent receives. See staying ban-free in our docs for the full compliance checklist.
Search and Filters
The search box at the top of the table searches across name, phone, and company. The status filter narrows the table to one lifecycle stage. The sidebar filters by list. Combine all three to slice the contact base however you need.
Exporting Contacts
Click Export on the Contacts page to download whatever's currently visible (respecting the active list, search, and status filter) as a CSV. The export includes phone, name, email, company, status, tags, and last called date.
.png)