How to import your client base from Excel into amoCRM or Kommo in 10 minutes
Importing a client base from Excel into a CRM means loading a spreadsheet so that every row becomes a contact (and, if needed, a company and a deal) with the fields in the right places and no duplicates. In amoCRM and Kommo the import itself takes minutes: the built-in wizard accepts Excel and CSV, maps columns to fields and skips duplicates. The time goes into preparing the table, and that is where the problems hide. Below: how to prepare the file, run the wizard, avoid common mistakes, and do the same by sending the file to an AI assistant such as Kai.
TL;DR
- One row, one client. Headers in the first row, no merged cells, totals or colour coding.
- Phones in one format with the country code, one number per cell, or the CRM misses duplicates.
- Add "Source" and "Tag" columns before importing: the tag lets you find, and roll back, the whole import.
- A 10-row test file first, then the full base.
- A clean table imports in 10 minutes; a messy one needs an hour of cleanup. Kai: file in the chat, mapping check, confirm.
Step 1. Clean up the spreadsheet
The wizard does exactly what it sees in the file, so a tidy table is 80% of the job. Go down the list:
- Structure. One sheet, headers in the first row, one row per client. Remove merged cells, "Total" rows, blank rows and banners; colours are not imported, so if colour means status, make it a column.
- Columns. Minimum: Name, Phone, Email, Company. Useful: Job title, Source, Owner, Comment; for deals, Amount and Stage. Split "John Smith, Acme Ltd" into two columns now; the CRM will not.
- Phones. One international format (+1…, +44…), no spaces, brackets or "ext. 12"; two numbers means two columns. Excel turns long numbers into 7.9E+10, so set the cells to text before pasting.
- Email and numbers. Emails in lower case. Amounts as digits only, no currency symbols or thousands separators. Dates in one format.
- Duplicates. Find repeated phones and emails in Excel (conditional formatting → duplicate values) and decide which record wins: the wizard skips duplicates but cannot pick the better one.
- Two service columns. "Source" (say, "Base 2024") and "Tag" with a value like import-2026-10. A month from now you will not remember where two thousand contacts came from; the tag finds them in a second.
Step 2. Import with the built-in amoCRM or Kommo wizard
In both systems the import starts from the list views (contacts, companies or leads) with an import button that accepts .xlsx and .csv; check the exact location in your CRM's help centre. The wizard logic is the same:
- Upload the file and check the preview. The wizard shows the first rows and asks you to match each column to a CRM field, standard or custom. If a field does not exist yet, create it in the card first (its type cannot be changed later).
- Choose what to create. Contacts only; contacts and companies; contacts with deals. For deals, pick the pipeline and stage and make sure stage names match the CRM letter for letter.
- Set the duplicate rule. When a phone or email matches an existing card: skip, update or create new. A clean first load usually skips; refreshing a live base updates.
- Run a 10-row test file. Open a few cards: the phone is in the phone field, not a note; names did not merge; tag and source are there.
- Check the result. The record count matches the table, a filter by the import tag shows the same number, and a search for a random phone finds exactly one card.
Common mistakes when moving a base
- Mixed phone formats. "(916) 123-4567" and "+19161234567" are different numbers to the CRM, so duplicates slip through and two reps call one client.
- Mismatched mapping. "Comment" lands in "Job title", the name in the company field; only the preview and the test file catch it.
- Deals without contacts. A thousand cards in the pipeline and nobody to call. A contact and its deal should come from the same row.
- One owner for the whole base. Everything hangs on the account owner. Add an "Owner" column with names exactly as in the CRM.
- No source. Within a month the old base blends into new leads and the channel report stops making sense.
- Dead contacts next to live ones. Clients silent for three years clutter search and statistics; give them a separate tag or leave them out.
With Kai it is one message and one file
Kai is an AI assistant that configures amoCRM and Kommo from a chat message, in the Telegram bot @aiicrm_bot or the web chat, connected through one-click OAuth 2.0 with no keys or passwords. You send the Excel or CSV file into the chat; Kai recognises the columns ("Budget" → deal price, "Tel." → phone), shows the full column-to-field mapping, finds duplicates by phone and email and asks what to do with them; missing fields it creates. After your "ok" everything is loaded through the official API, with a report: contacts, companies and deals created, duplicates skipped.
Here is the client base in Excel. Load it into Kommo as contacts and companies, skip duplicates by phone, tag everyone "base-2026", source "Trade show".
In the file, "Budget" is the deal amount and "Status" is the stage in the "Sales" pipeline. Create deals with contacts; the owner is in the "Rep" column.
Show the mapping again and move "Comment" to the deal note, not the contact.
Honest limits. Kai untangles a messy table, but which of two records wins is your call: it shows the pairs and asks. A very large base is better loaded in parts. Moving history and tasks from another CRM, or linking the base to accounting software, is an integrator's job. Import is on every Kai plan; the trial is 3 days, no card, on Start features.
By hand, with an integrator or with Kai
| Criterion | CRM import wizard | Integrator | Kai |
|---|---|---|---|
| Best for | Clean table, one record type | Migration from another CRM with history; data in accounting software | Any table; contacts, companies and deals from one file |
| What you do | Prepare the file, match columns, check | Write a spec, accept the result | Send the file, check the mapping, confirm |
| Time | 10 minutes clean, an hour messy | Days or weeks | One conversation |
| Cost | Included in the CRM subscription | Per the contractor's quote | From €29/month, 3 days free |
FAQ
Can I import deals together with contacts from one file?
Yes. In both amoCRM and Kommo the wizard creates a contact and its linked deal from one row: point it to the columns with amount, pipeline and stage. Kai does the same; just say which columns belong to the deal.
How does the CRM detect duplicates during import?
By matching the phone or email against existing cards, which is why phones in the file must share one format with the country code: "(916) 123-4567" and "+19161234567" are different numbers to the CRM.
What if the import went wrong?
If every record got an import tag, filter by it, select them in bulk and delete or fix them. Without a tag you will search the whole base by hand, which is why a 10-row test file goes first.
What happens to my file when I send it to Kai?
The file is used only to read the columns and load the data into the CRM through the official API. Your client base lives in your CRM; Kai does not store contact or deal data. The CRM connects through OAuth 2.0 without passwords; access can be revoked in the CRM settings at any time.
What next
Open the spreadsheet, bring the phones to one format and add the "Source" and "Tag" columns: that is the 10 minutes. Then the CRM import wizard, or the file in the Kai chat. Setting up the whole CRM? Start with the 12-point checklist.