🛠️ How-to tutorials

Importing contacts and groups from CSV without making a mess

Updated 2026-09-19 · 4 min read · By the Convo360 team

In short

Format your CSV with a phone column in full international format (91XXXXXXXXXX), a name column, group columns, custom fields, and an opt-in column, then use Contacts → Import CSV to map them. Contacts are matched primarily by phone number, so re-importing the same list updates records rather than duplicating them — but bulk imports deliberately skip the 'added to a group' welcome flow.

Key takeaways
  • Phone numbers need the full country code (91XXXXXXXXXX) — missing it is the most common import failure.
  • A groups column lets you sort contacts into targetable segments during the same import.
  • Bulk CSV imports do not trigger the 'added to a group' flow — that's deliberate, to stop a large import blasting a welcome message at everyone at once.
  • Custom field columns become variables you can use in messages and campaigns immediately.
  • Capture an opt-in column so you have a record of consent for messaging and calling.

The column format Convo360 expects

A clean import CSV typically has: a phone column in full international format (91XXXXXXXXXX, no spaces, dashes or leading zero), a name column, one or more group columns (comma-separated if a contact belongs to several), any custom fields you use in flows (order number, city, plan type), and an opt-in column recording how and when consent was captured.

Keep the header row simple and consistent, phone, name, group, and then your custom fields in whatever order suits you, since you will map these headers to Convo360 fields on the next screen, and a clean, predictable header row makes that mapping step almost automatic.

The exact click path

  1. Go to Contacts → Import CSV.
  2. Upload your file and map each column to the matching field: phone, name, groups, custom fields.
  3. Choose whether to add contacts to an existing group or create a new one from the groups column.
  4. Confirm the import and review the summary of how many were added, updated or skipped.

The summary screen is worth reading properly rather than skimming past. A large number of updated (versus added) records on what you thought was a fresh list is often the first sign the phone-number formatting was inconsistent between this file and an earlier import.

Phone normalisation and duplicates

Always include the country code. A number saved as 9876543210 instead of 919876543210 can fail to match on WhatsApp or a call. Convo360 matches contacts primarily by phone number, so re-importing the same list with updated details (a new group, a corrected name) updates the existing record instead of creating a duplicate. This is what makes it safe to re-run an import after fixing a few rows rather than starting over.

One consequence worth knowing: if two different customers ever shared a number in your source data (a shop phone used for several family accounts, for instance), the second import will overwrite the first record instead of creating a second one, worth checking for in older, messier contact lists before a large import.

The trigger gotcha: bulk import vs one-at-a-time

This is worth knowing before you rely on it: the flow builder's 'When a contact is added to a group' trigger, the one that starts a welcome message or drip sequence, deliberately does not fire for bulk CSV imports. It only fires when a contact joins a group one at a time: from the Contacts page, a flow's Add-to-group step, or the API. This stops a 10,000-row import from blasting everyone with a welcome message simultaneously. If you want a welcome sequence to reach freshly imported contacts, trigger it deliberately afterwards, for instance via the REST API or a short campaign, rather than assuming the import alone will start it.

Custom fields and segmentation strategy

Think about custom fields as the columns your future campaigns will filter on, not just extra trivia to store. A jewellery store might track purchase category and last-purchase date; a coaching institute might track course interest and batch preference. Add these as columns in the same import rather than bolting them on later one contact at a time. It is far faster to get right during a bulk import than to patch a live contact list afterwards.

Groups and custom fields work together: a group decides who receives a broadcast, while a custom field decides what that broadcast says to them via a variable. Keep that distinction in mind when designing your CSV structure.

Troubleshooting

SymptomLikely fix
Numbers rejected or messages fail to sendMissing country code; re-export the CSV with the full international format.
Groups not created as expectedCheck the groups column uses consistent, comma-separated names, since a typo creates a new, near-duplicate group.
Contacts appear duplicatedThe phone column had inconsistent formatting between imports (e.g. one with a leading + and one without). Standardise the format before importing.
Welcome flow never fired after importExpected. Bulk imports don't trigger the group-join flow by design. Trigger the sequence separately.
Custom fields show blank in messagesThe column header in your CSV doesn't match the custom field name in Convo360 exactly. Check spelling and case during mapping.

What to test before going live, and cost

Contacts and CSV import are included from the Starter plan (₹999/month, excluding GST) alongside the CRM and forms, with no extra charge for the import tool itself. For a very large list, expect the import to take a little time to process; that is normal, and the summary screen confirms completion rather than leaving you guessing whether it finished. Bookmark the Contacts page so checking progress on a big import takes one click, not a search through the menu.

Step by step

  1. Prepare the CSVInclude phone (full international format), name, groups, custom fields and an opt-in column.
  2. Open Contacts → Import CSVUpload the file and map each column to the matching field.
  3. Choose groupsAssign contacts to an existing group or create new ones from the groups column.
  4. Review the import summaryCheck how many contacts were added, updated or skipped before trusting the full list.
  5. Trigger any welcome sequence separatelyBulk imports don't fire the group-join flow — start it deliberately if you need one.

Example conversation

I re-uploaded my customer list with updated cities — will it create duplicate contacts?
No. Convo360 matches each row to an existing contact by phone number, so it updates their City field and group membership instead of creating a new duplicate entry.

Import your contact list

Start free in minutes — no code, no credit card. Bring your own AI keys and pay no per-message markup.

Frequently asked questions

What phone number format does Convo360 need?

Full international format with the country code, for example 919876543210 for an Indian mobile number, with no spaces, dashes or leading zero. This is the single most common cause of a failed import, so it's worth checking your source file's formatting before you upload it.

Will importing the same list twice create duplicate contacts?

No, contacts are matched primarily by phone number, so re-importing the same list with a corrected name or a new group updates the existing record instead of duplicating it. This makes it safe to fix a few rows and re-run the import rather than starting the whole list over from scratch.

Does a CSV import trigger my welcome flow automatically?

No, by design. The 'added to a group' trigger only fires for contacts added one at a time — from the Contacts page, a flow step, or the API — not for bulk CSV imports.

Can I import custom fields along with contacts?

Yes, add a column per custom field, such as order number, city or plan type, and map it during import. The values become available as variables in your flows and campaigns immediately, so it's worth adding every field you expect to filter or message on during the same import rather than later.

Should I capture opt-in during import?

Yes, include an opt-in column recording how and when consent was given, for example 'signed up at checkout, 12 May'. This supports your compliance and DND record-keeping and matters directly for what you can legally message or call these contacts about later.

Related reading

Available across India — see WhatsApp & AI calling automation by state and city.