Skip to main content

Documentation Index

Fetch the complete documentation index at: https://support.affinity.co/llms.txt

Use this file to discover all available pages before exploring further.


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 and resolve conflicts
  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

Three rough categories cover what most users need:
Source typeToolTasks below
Another CRM (Salesforce, HubSpot, Pipedrive, Dynamics, Attio, Sevanta)Data Importer with source-specific exportTask 2 + Task 3
Other tools (Slack, Trello)Data Importer with source-specific exportTask 2 + Task 3
LinkedIn connectionsDedicated LinkedIn importerTask 6
Notes (markdown / plain text)Notes importerTask 7
Generic CSV from any sourceData ImporterTask 2
Updating existing recordsData Importer in Row ID modeTask 8

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, in a four-stage flow: Upload → Match Rows → Manage Conflicts → Complete.

🎬 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. Click “List Options” in the list header, then select “Import data”.
  3. Stage 1 — Upload: Drag your CSV in (or click to browse). Affinity parses the file and shows a preview.
  4. Stage 2 — Match Rows: Affinity attempts to match each row to existing profiles using email (for people) or domain (for companies). Review the matches and override anything wrong.
  5. Stage 3 — Manage Conflicts: For matched rows, decide which value wins when source data differs from existing data. Common choices: “Keep existing”, “Use new value”, or “Update only if empty” per field.
  6. Stage 4 — Complete: Review the summary (new profiles created, profiles updated, rows skipped) and click “Begin Import”.
The Manage Conflicts stage is where most mistakes happen. Pay close attention — choosing “Use new value” on a field where the existing data is more current will overwrite good data with stale source data.

Expected Outcome

Your data is live in Affinity, in the destination list, with duplicates resolved per your conflict resolution choices.

📚 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

Inside the Data Importer’s Match Rows stage, you’ll see each column from your CSV alongside a dropdown of Affinity fields to map it to. Mapping quality determines import quality.

Action

  1. For each CSV column, the importer attempts auto-mapping (e.g., “Email” → Affinity’s email field). Confirm or override each one.
  2. For columns you don’t want to import, choose “Don’t import” from the dropdown.
  3. For columns that need a new field, click “Create new field” in the dropdown — but only if you forgot to create it in Tutorial 0.3.
  4. Required fields: Affinity highlights any required fields that weren’t mapped. Map them before continuing.
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 Run 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 clicking “Run import”, the import runs server-side. Small imports (< 1k rows) complete in seconds; large ones can take minutes or longer.

Action

  1. Stay on the import page until the progress indicator shows Complete.
  2. Once complete, the summary shows: X profiles created, Y profiles updated, Z rows skipped (with reasons).
  3. Open Settings → Manage Imports in a new tab to confirm the import is logged. You’ll need this if you ever need to undo.
  4. 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’s optimized for the specific shape of LinkedIn’s export.

Action

  1. Export your LinkedIn connections from LinkedIn: Settings → Data Privacy → Get a copy of your data → Connections.
  2. LinkedIn emails you a ZIP file. Extract the Connections.csv file.
  3. In Affinity, go to Settings → LinkedIn Data, then start a new import from the Import Data sub-page.
  4. Upload the Connections.csv and follow the dedicated LinkedIn import flow — it’s simpler than the general Data Importer because the column structure is fixed.
  5. Affinity will create person profiles for each connection and surface them in your My Network view.
💡 LinkedIn connections power Relationship Intelligence introductions. Importing them is highly recommended even if you don’t import any other data — it’s how Affinity knows whose network to leverage for warm intros.

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 has a dedicated Notes Importer.

Action

  1. Format your notes as a CSV with columns: Title, Body, Associated Person/Company, Date.
  2. Notes import is an admin-only flow. Check your Settings sidebar for a Notes Import option (availability varies by configuration).
  3. Upload your notes CSV and map columns.
  4. Review the import preview and run.
Notes import may require admin access depending on your workspace configuration.

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. First export the existing list from Affinity (this gives you the Row IDs).
  2. In your CSV, keep the Row ID column and add columns for the fields you want to update.
  3. Run the import as usual — Affinity will match by Row ID and update 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? Run an undo from Settings → Import History → Undo — see How to undo imports in Affinity. Speed matters: undo is cleanest within the first few hours. 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.