Skip to main content

Immediate Value

After this tutorial, your existing data will be living inside Affinity, mapped to the right entities, with duplicates resolved and your team’s relationships intact.

Prerequisites

  • You’ve completed Tutorial 0.3 — you have a migration plan, your CSVs are prepped, and you know which lists you’re importing into.
  • The destination list(s) exist in Affinity with the right field structure.

Quick-Start Roadmap

  1. Choose your import path
  2. Export from your source system
  3. Run the Data Importer
  4. Map your fields
  5. Confirm and monitor the import
  6. Import LinkedIn connections (separate flow)
  7. Import notes (separate flow)
  8. Advanced: Update existing records by Row ID

Why This Tutorial Branches by Source

Different source systems require different export steps. Affinity’s Data Importer is the same downstream, but how you get your data out of Salesforce, HubSpot, or LinkedIn is source-specific. This tutorial walks you through both halves.
See How to import your data into Affinity for the canonical overview.

Task 1: Choose Your Import Path

Context

These categories cover what most users need:

Action

  1. Identify which category your data falls into.
  2. Go to the corresponding task(s) below.

Expected Outcome

You know exactly which flow you’ll use.

Task 2: Run the Data Importer (Generic CSV)

Context

The Data Importer is Affinity’s primary import tool. It handles any CSV, regardless of source: upload → choose an import option → map the primary fields → map the remaining fields → Begin import.

🎬 Watch

Action

Need a list first? Imports go into a specific destination list — if you haven’t created one yet, in the left sidebar click “Add New” → “New List”, name your list, pick its type (Companies, People, or Opportunity), and click Create. For the full list-mechanics walkthrough (templates, views, filters), see Tutorial 1: Your First List in Foundation.
  1. Open the destination list in Affinity.
  2. Switch the list to Classic — importing isn’t in New Lists yet. Click Switch to Classic in the list header, or open List Options (the gear, top right) and choose Switch back to Classic. Then open List Options → Import data. You can switch back to New Lists as soon as the import finishes — see Switching between New and Classic Lists.
  3. Upload your CSV.
  4. Choose one import option for the whole file:
    • Add new values to existing contacts — fills empty single-value cells and adds to multi-value fields, without overwriting anything
    • Create duplicate entries — a new entry for every row
    • Skip duplicate entries — ignores rows already on the list
    • Overwrite existing values — replaces what’s in Affinity with the CSV’s values
  5. Map the primary fields — the ones Affinity matches on (see Task 4).
  6. Map the remaining fields, then click Begin import.
The import option is where most mistakes happen. Overwrite existing values replaces good data in Affinity with whatever is in your file, including stale values. If you’re not sure, choose Add new values.

Expected Outcome

Your data is live in Affinity, in the destination list, handled according to the import option you chose.

📚 Help Center


Task 3: Export from Your Source System

Context

Source-specific instructions for getting clean data out of common CRMs and other tools.
Salesforce is the most common source. Affinity has a dedicated export guide that walks through the Salesforce reports you’ll need (Contacts, Accounts, Opportunities, Activities) and how to format each.
  1. In Salesforce, build a report for each object type you’re importing.
  2. Add all the columns you want in Affinity. Common ones: Name, Email, Phone, Company, Title, Source, Stage, Amount.
  3. Export each report as CSV.
  4. For each CSV, run through Task 2 above into the appropriate Affinity list.
Help center: How to export data from Salesforce to import into Affinity
HubSpot’s native export is the cleanest path. Export Companies, Contacts, and Deals separately.Help center: How to export data from HubSpot to import into Affinity
Pipedrive exports Persons, Organizations, and Deals as CSVs. The mapping is straightforward.Help center: How to export data from Pipedrive to import into Affinity
Dynamics 365 exports require an admin in some configurations. Coordinate access before starting.Help center: How to export data from Microsoft Dynamics 365 to import into Affinity
Attio is structurally similar to Affinity, so the field mapping is usually clean.Help center: How to export data from Attio to import into Affinity
Sevanta-specific export instructions for VC/PE workflows.Help center: How to export data from Sevanta to import into Affinity
If you’ve been tracking deals or contacts in Slack threads, you can extract them to CSV and import. Less structured than a CRM export — expect more manual cleanup.Help center: How to export data from Slack to import into Affinity
Trello cards map roughly to list entries. Each board becomes a list, each card becomes an entry.Help center: How to export data from Trello to import into Affinity

Expected Outcome

You have a clean CSV from your source, ready to feed into the Data Importer.

Task 4: Map Your Fields

Context

After choosing your import option, you map each column from your CSV to an Affinity field. Mapping quality determines import quality.

Action

  1. Primary fields first — these are required, because they’re how Affinity matches rows to existing records:
    • Organization lists: Website and Organization Name
    • People lists: Email Address and Full Name
    • Opportunity lists: Opportunity Name
  2. Then the rest. Some columns are auto-mapped — confirm or change each one. Person, organization, and location fields are never auto-mapped, because each needs several columns (for example, a person’s full name and email).
  3. If you map to global fields, you’ll be asked how to update them — using the same options as the import option in Task 2.
  4. Remove any columns you don’t want to import with the trash icon.
  5. Any new fields should already exist — create them before the import, as planned in Tutorial 0.3.
Once an import runs, you can’t change mappings retroactively. Wrong mapping means re-importing — or worse, manually fixing thousands of rows. Triple-check before clicking Begin import.

Expected Outcome

Every CSV column is either mapped to an Affinity field or explicitly excluded.

📚 Help Center


Task 5: Confirm and Monitor the Import

Context

After you click Begin import, the import runs in the background. Most imports take 5 to 15 minutes; large files can take up to 24 hours.

Action

  1. You don’t need to wait on the page — Affinity sends you an email and an in-app notification when the import finishes.
  2. Open your import history (Settings → Manage Imports) to see the result, including any skipped rows and errors to download.
  3. Open the destination list and spot-check 5–10 rows to confirm the data landed correctly.

Expected Outcome

The import is complete, logged, and the data looks right in the list.

📚 Help Center


Task 6: Import LinkedIn Connections

Context

LinkedIn connections use a separate flow from the general Data Importer — it doesn’t go through a list, and it doesn’t need Classic Lists.

Action

  1. In LinkedIn, go to Settings & Privacy → Data Privacy → Download your data, choose Download larger data archive, and request it. LinkedIn can take 24–48 hours to email you.
  2. Download the archive, unzip it, and find Connections.csv. Keep the original column headers.
  3. In Affinity, go to Settings → LinkedIn Data and click Import Connections.
  4. Upload Connections.csv and follow the prompts.
  5. Your connections appear as a LinkedIn badge on profiles, in the LinkedIn Network tab, and through the LinkedIn Connected To list filter — and AI Chat can use them to find warm intros.
💡 LinkedIn connections widen the network your team can search for warm intros. Importing them is worth doing even if you don’t import any other data. People who come in only from LinkedIn don’t get a relationship strength score.

Expected Outcome

Your LinkedIn connections are in Affinity, contributing to Relationship Intelligence.

📚 Help Center


Task 7: Import Notes

Context

If you’re migrating notes from another system (Evernote, Notion, Google Docs, or another CRM’s notes), Affinity Support imports them for you — running notes through the standard importer leads to errors.

Action

  1. Build a CSV with these four columns:
    • Author — the email address of the team member who wrote the note
    • Date Created — one consistent date format throughout
    • Tagged Entity — the person’s email, the organization’s website, or the opportunity name
    • Content — the note itself
  2. Keep to one entity type per file — people, organizations, or opportunities.
  3. Email the file to support@affinity.co, and Support will import it.

Expected Outcome

Historical notes are attached to the right people/companies in Affinity.

📚 Help Center


Task 8: Advanced — Update Existing Records by Row ID

Context

If you’re not creating new records but updating existing ones in bulk (e.g., refreshing all entries with new field values), you can match by Affinity’s internal Row ID instead of email/domain. This is the safest method for bulk updates because matching is unambiguous.

Action

  1. Export the saved view from your list. The export includes an Affinity Row ID column (column A).
  2. Edit the values you want to change — but leave the Affinity Row ID column exactly as it is.
  3. Switch the list to Classic and import the file, matching on the Row ID. Affinity updates those rows.
Row ID matching only updates existing rows. Rows in your CSV without a valid Row ID will be skipped, not created. Use this mode deliberately for updates only.

Expected Outcome

Existing records are updated in bulk with zero risk of duplicate creation.

📚 Help Center


Common Questions

Q: What’s the difference between “import” and “sync”? Import is a one-time bulk load from a CSV. Sync (email/calendar from Tutorial 0.2) is ongoing automatic data ingestion. Use both: import for historical baseline, sync for ongoing. Q: What if I imported the wrong thing? Switch the list to Classic, then open List Options → Manage Imports and undo it — see How to undo imports in Affinity. You can undo it yourself within three days; after that, contact support. Q: My CSV has Asian / non-Latin characters and they’re appearing as gibberish. You’re hitting an encoding mismatch. See Preparing your import when it contains Asian characters — re-save the CSV as UTF-8 and reimport. Q: Can I import attachments / files? The Data Importer is for structured field data, not files. See How to upload, download, and remove files in Affinity for file handling.

Where to Go Next

➡️ Tutorial 0.5: Verify & Invite Your Team — now confirm your import landed correctly, then bring your team in.