Skip to main content

Importing companies and people

Bring your accounts in from a spreadsheet — a CRM export, an ERP's customer list, or a file you kept by hand. There are two kinds of file, and three ways to use them:

  1. One file of people with their companies. Each row is a person, with the company in the same row. Companies are found or created, then the person is linked.
  2. Two files. First a file of companies, then a file of people with a column that says which company each belongs to (tax number, domain, name or external ID).
  3. From a company's page. People → Import people imports a file of people straight into that company.

Imports are done in the web panel (CSV or Excel). Open Companies → Import and choose Import companies or Import people with their companies.

Templates​

Download the template (CSV or Excel) from the import dialog. It has every built-in column plus your custom fields:

  • Companies: name, domain, website, tax_number, tax_office, phone, email, industry, employee_range, lifecycle_stage, owner_email, parent, external_id, address_street, address_district, address_city, address_postcode, address_country, and your company fields.
  • People: first_name, last_name, email, phone, type, marketing_opt_in, company_name, company_tax_number, company_domain, company_external_id, role, title, and your contact fields.

You do not have to use the template's headers. Common names are recognised — "Şirket Adı", "Firma", "Vergi No", "VKN", "Vergi Dairesi", "Sektör", "İl", "İlçe", "Cari Kod", "Ad", "Soyad", "Unvan" and others.

Column mapping​

After you choose a file, the dialog reads the first rows and shows every column with the field it will fill. For each column you can:

  • point it at a different field,
  • ignore it, or
  • turn an unknown column into a new custom field (needs contact_fields.manage).

How existing companies are found​

A company row is matched against your companies by the first of these the row has and that finds a company:

  1. external ID
  2. tax number (spaces, dots and dashes ignored)
  3. domain (https://www.acme.com/tr and acme.com are the same)
  4. exact name (case does not matter)

You choose what a match means:

  • Update it — every non-empty cell overwrites the company's value. An empty cell never erases anything. Custom fields are merged.
  • Leave it as it is — the row is counted as skipped.
  • Create a new company anyway — no matching at all; every row is a new company.

Some cells are understood loosely: lifecycle_stage takes the five keys or words like müşteri, aday, iş ortağı; employee_range takes a band or a plain number (250 becomes 201-500); owner_email must be the email of a member; parent is matched like a company (external ID, tax number, domain, name) — put parent companies above their subsidiaries in the file.

How people and their companies are found​

People are matched the way the contact import matches them: by email, or — for a row without an email — by phone. A person who already exists is not changed; they are only linked.

The person's company is found by the column you choose under Find each person's company by: best available (external ID, then tax number, then domain, then name), or one of them only. When no company matches:

  • with Create companies that do not exist yet on (the default), a company is created from the row's company name, tax number, domain and external ID — this needs organizations.manage;
  • with it off, the person is still imported, unlinked, and the row is reported as company not found.

A row with no company columns at all imports the person without a company. The row's role and title are stored on the link. A person's first company becomes their primary company.

Importing from a company's page links everyone in the file to that company, whatever the file's company columns say.

The result​

Large files run in the background; you can close the dialog and come back. When the run finishes you see:

  • Companies: how many were created, updated and skipped.
  • People: new people, existing people, links made, companies created and rows skipped.
  • The first row problems, by row number — for example an invalid email, an unknown lifecycle, a member who does not exist, a value that does not fit a custom field, a company that was not found. A problem in one cell does not stop the row: the rest of it is imported.

Limits​

  • One import runs at a time per workspace — a contact import and a company import included.
  • Up to 250,000 rows in a CSV file and 50,000 in an Excel file; for larger Excel files, save as CSV.
  • A tag chosen in the dialog is added to every company (or person) in the file.