---
title: "Updating records with an import"
canonical: https://syncek.com/docs/your-data/updating-with-an-import
locale: en
author: "Syncek"
---

# Updating records with an import

An update run changes records you already have in Syncek from a spreadsheet,
such as new phone numbers for your contacts or a revised list of [account owners](https://syncek.com/docs/your-data/linking-on-import).
Syncek finds the record each row belongs to by a field you choose, and changes the
columns you map. The import mode, that match field and **Skip empty values** are
set in the last step, **Preview import**.

## 1. Choose the import mode

- **Add as new records** creates a record for every row and compares nothing. Run
  the same file twice in this mode and every record exists twice.
- **Update existing only** changes the records that match a row. A row that matches
  nothing is skipped, and nothing new is created.
- **Add new & update existing** updates the matches and creates a record for every
  other row.

## 2. Choose what to match by

**Match by** is the field Syncek compares to find the record a row belongs to. It
has to be a mapped column of type **Text**, **Email**, **Phone** or **Link**. The
list also offers **Number** fields, but a Number field finds no match today, so
every row counts as unmatched. Pick a field whose value belongs to one record only, such as an email
address, a customer code or a website.

Matching is case-sensitive, except for email addresses. `ACME-01` and `acme-01`
are two different codes. `Ana@example.com` and `ana@example.com` are the same
address.

## 3. Map only the columns you mean to change

**Skip empty values** is on by default. With it on, a blank cell in a text, number,
date or select column leaves the stored value alone.

Email, phone, link, address and name fields are made of parts. When a column is
mapped to one part, such as the city of an **Address**, the update replaces the
whole field: the parts you did not map are cleared, and a blank cell blanks the
part it maps, with **Skip empty values** on or off. Map every part of such a field
in the same run, and before an update run, unmap every column you do not intend to
change.

## 4. Read the preview before you start

The preview marks every row with an icon before anything is written, and the
counts above the table read **will be created**, **will be updated**, **will be
skipped** and **with errors**. Click one of the counts to see only those rows.

An ambiguous match is a value held by more than one existing record. That row is
counted under **with errors** and is not imported. Match by a field that is unique, or
[merge the duplicates](https://syncek.com/docs/your-data/merging-records) first.

Rows are skipped only in **Update existing only**: when the match field is empty,
or when no record holds that value.

## Repeated rows in the same file

The preview compares each row with the records already in Syncek, never with the
other rows of the file. A value that is new to Syncek and appears twice can become
two records under **Add new & update existing**. Remove repeated rows before you
import.

If a run changed more than it should have, [undo it](https://syncek.com/docs/your-data/undoing-an-import)
within 72 hours.
