CRMImport

Import People & Organizations

Bring your contacts, companies, and custom fields into UpSight so surveys, segmentation, and analysis all work from a single source of truth.

Importing your contact list is the foundation for personalized surveys, smart branching, and meaningful segmentation. When UpSight knows who your respondents are before they open a survey, every interaction becomes more relevant.

Step 1: Prepare Your Spreadsheet

Export your contacts from your CRM, mailing list, or spreadsheet as a CSV file. UpSight auto-detects columns, but using clear header names improves accuracy.

Standard Fields (Auto-Detected)

Person
  • Name or First Name / Last Name
  • Email
  • Phone
  • Title / Job Title
  • LinkedIn
  • Location
Organization
  • Company / Organization
  • Industry
  • Company Size
  • Company Stage
  • Annual Revenue
  • Funding Stage / Total Funding

Segmentation Fields

These columns automatically become person attributes, making them available for filtering and analysis:

  • Segment
  • Lifecycle Stage
  • Job Function
  • Industry
  • Location
  • Membership Status

Download Templates

Example CSV

Name,Email,Title,Company,Industry,Segment,Member Status,Membership Year
Jane Chen,[email protected],VP Engineering,Acme Inc,SaaS,Enterprise,active,2025
Marcus Rivera,[email protected],CTO,Startup Labs,FinTech,Growth,true,2026
Importing Event Attendance (Which Day Someone Attended)

Use this when you want to group people, or branch a survey, by the day or session they attended. Each day becomes a tag on the person — for example Summit 2026 – Day 1. Pick whichever layout matches the data you already have; both produce the same result.

Option A — one sheet, a column per day

Recommended
  • One row per person, with their email.
  • One column per day. The column name becomes the tag, so name it the way you want to see it.
  • Mark who attended with yes, true, x or ✓. Capitals don't matter — Yes, TRUE and X all count.
  • Leave the cell blank (or write no / false) for anyone who didn't attend.
Name,Email,Summit 2026 – Day 1,Summit 2026 – Day 2
Jane Chen,[email protected],Yes,x
Marcus Rivera,[email protected],yes,
Priya Nair,[email protected],,TRUE

In the review step these columns show as Tag when checked, with the tag name ready to edit.

Option B — one sheet per day

  • Each file lists only the people who attended that day.
  • Include email in every file — it's how the same person is recognized across files.
  • Import the files one at a time.
  • In the review step, fill in Tag everyone in this file with that day's name.
day-1.csv → Summit 2026 – Day 1
day-2.csv → Summit 2026 – Day 2

Someone who appears in both files ends up as one person with both tags.

Rules that apply to both layouts

  • Put the event name in the tag — "Summit 2026 – Day 1", not just "Day 1". Tags are shared across your account, so next year's "Day 1" would land on the same tag.
  • Save as CSV. For an Excel workbook with a tab per day, save each tab as its own CSV.
  • Don't put several days in one cell ("Day 1, Day 2") and don't mix other text into a check-mark column — either one stops it being read as check marks.
  • There is no "false". Not attending is simply not having the tag, so you only ever mark who was there.
  • Re-importing a corrected sheet is safe: people are matched by email and tags are never duplicated. Removing a check mark does not remove a tag that was already imported.

Using attendance once it's imported

Groups: build a group with the rule Event is one of "Summit 2026 – Day 1". Surveys: add a branching rule on the person's Event tag to show or skip questions by day. Branching on imported data only works when the respondent is identified — send the survey from UpSight or use a link with their email pre-filled (see survey distribution).

Migrating from Notion, Airtable, HubSpot, or another tool?

UpSight doesn't need a dedicated connector for every CRM or workspace tool — if it can export a CSV, you can bring its contacts in today with the importer above. Here's where to find the export option in some common sources.

CRMs & workspace tools

Notion

Database view → ••• menu → Export → CSV

Airtable

View → ••• menu → Download CSV

HubSpot

Contacts → Export

Salesforce

List View → Export List (or Data Loader)

Pipedrive

Contacts → Export

Monday.com

Board → ••• menu → Export (.xlsx, save as CSV)

ClickUp

List/Table view → Customize → Export

Zoho CRM

Setup → Data Administration → Export → Contacts

Google Contacts

Export → Google CSV

Email & marketing tools

Mailchimp

Audience → Export audience → Export CSV

Constant Contact

Contacts → All Contacts → Actions → Export

Nonprofit & donor-management tools

Blackbaud Raiser's Edge NXT

Constituent list → Export

DonorPerfect

Reports → Export (or List Manager → Export)

Other donor tools (Bloomerang, Little Green Light, Neon CRM, Salesforce Nonprofit Cloud, CiviCRM) export to CSV the same general way — look for a Constituents/Contacts list with an Export action.

Linking imported contacts to an existing deal

Add an opportunity column (matched case-insensitively to an existing deal's title) and an opportunity_role column (economic_buyer, champion, etc.) to attach imported contacts as stakeholders on a deal that already exists in the project.

Canonical Field Reference (SEO + Human-Readable)

This is the canonical CSV schema for importing people and organizations into UpSight CRM for dynamic groups, survey targeting, and ICP scoring. Person traits and organization traits are intentionally separate so segment logic is unambiguous.

Person fields

  • first_name,last_name: Jane,Chen
  • email: [email protected]
  • title: VP Engineering
  • job_function: Engineering, Product, Sales, Marketing
  • seniority_level: C-Level, VP, Director, Manager, Senior, IC
  • segment: Enterprise, Mid-Market, SMB
  • membership_status: active, inactive, expired, trial
  • membership_level: Basic, Pro, Enterprise
  • membership_year: 2026
  • membership_expires_at: 2026-12-31
  • person_description: Leads platform engineering for B2B SaaS

Organization fields

  • company: Acme Inc
  • company_website: https://acme.co
  • industry: SaaS, Healthcare, FinTech
  • sub_industry: Vertical SaaS, Digital Health, Payments
  • company_size: 1-10, 11-50, 51-200, 201-500, 1000+
  • funding_stage: Bootstrapped, Seed, Series A, Series B, Public
  • annual_revenue: 12000000
  • total_funding: 45000000
  • lifecycle_stage: active, evaluating, expansion, churn_risk

Person segment vs organization segment

Use segment for person cohort labels (stored as person attribute segment_label). Use organization fields like company_size, industry, and funding_stage for account-level segmentation.

How updates and overwrites work

Create mode: adds new records and skips duplicate email or duplicate name+organization matches. Upsert mode: matches existing records and only updates fields that have values in your CSV; blank cells do not erase existing data.

For the upload widget flow, default behavior is Upsert. If an existing email match is found (or name+organization fallback match), UpSight updates that person instead of creating a duplicate. You can upload updated spreadsheets repeatedly.

There is currently no per-row overwrite confirmation step. Import runs directly after submission using your selected mode.

Step 2: Include Custom Fields

Any column that isn't a standard CRM field can be imported as an attribute -- a flexible tag that attaches to each person. Attributes power filtering, segmentation, and survey personalization.

Common Custom Fields

Membership

Member Status, Membership Year, Expiration Date

Track association/community membership alongside contacts. These become durable attributes you can filter and segment on.

Events

Event Attended, RSVP Status, Session Preference

Import event registration data to personalize follow-up surveys.

Product

Plan, Feature Flags, NPS Score

Product usage data enables targeted research surveys scoped to specific user tiers.

How custom fields become attributes

When UpSight's AI analyzes your CSV headers, it suggests which extra columns to import as attributes and assigns an attribute kind (e.g., membership_status, event, custom). You can also specify custom mappings via the API.

How Tags Work

A tag is a label on a person, filed under a kind — Event, Industry, Segment, Custom and so on. A person can carry any number of tags of one kind. Tags come from imports, from survey answers, and from what the AI picks up in conversations, and they are what Groups and survey branching read.

Naming

Write the tag the way you want to read it. Spaces, capitals and punctuation are all fine: Summit 2026 – Day 1. Include the event, product or year in the name — tags are shared across your whole account, so a bare "Day 1" would be reused by every event you ever import.

What counts as the same tag

Capitals, spacing and punctuation are ignored when matching, so Summit 2026 – Day 1, summit 2026 - day 1 and Summit 2026 Day 1 are one tag. The spelling you import first is the one shown. Different wording is a different tag: Summit 26 – Day 1 would be new.

Present or absent

There is no "false" tag. Someone who didn't attend Day 2 simply doesn't have the Day 2 tag, and rules can test for that ("is not one of").

Re-importing

Safe to repeat. A re-import adds tags that are missing and never creates duplicates. It also never removes a tag — clearing a cell in the sheet does not clear the tag.

Imported tags are kept exactly as named

Tags the AI extracts from conversations are de-duplicated against similar wording, so "onboarding pain" and "manual onboarding process" land on one tag. Tags you import are exempt from that: "Day 1" and "Day 2" look alike but mean different things, so they are always kept apart.

When you build a Group or a branching rule, pick the tag from the list rather than typing it — that guarantees the spelling matches. See Segments & Dynamic Groups.

Step 3: Upload & Review

There are three supported import paths. All feed the same CSV import backend and mappings.

Upload Widget

Fastest path from CRM pages. Choose file, confirm, and import with toast feedback.

  1. 1. Open import dialog
  2. 2. Upload CSV
  3. 3. Review toasts and counts

Chat Import

Paste CSV data into the project chat. The AI assistant will parse it, show you a preview, and ask if you'd like to import.

  1. 1. Open project chat
  2. 2. Paste your CSV data
  3. 3. Review the column mapping
  4. 4. Confirm import

Upload Route/API

Use the upload page flow or call POST /api/people/import-csv for programmatic imports.

  1. 1. POST CSV as multipart or JSON
  2. 2. Auto-detects columns via AI
  3. 3. Returns import summary + verification
  4. 4. Supports create or upsert modes

Import Modes

Create (default) -- adds new contacts, skips rows where email or name+company already exists
Upsert -- matches by email or name+company, updates only fields with values in the spreadsheet (preserves existing data for unmapped fields)
What Happens After Import

Once your contacts are imported, they're immediately operational:

Visible in People

Browse, search, and filter contacts with all imported fields and attributes

Attributes for segmentation

Custom fields appear as attributes -- filter by membership status, segment, role, or any imported attribute

Survey personalization

When a respondent starts a survey, UpSight matches them by email and uses their profile to personalize the experience

Linked to organizations

Company columns automatically create or match organization records, with full org metadata

Coming Soon: Attribute-Based Branching

In Development

Imported person attributes (title, segment, membership status) will be usable as branching conditions in surveys. For example: skip a section for non-members, or show different questions based on job function -- without asking the respondent again. This feature is being built on the feat/person-attribute-branching branch.

Duplicate Handling & Data Safety
Email matching: existing contacts are matched by email (case-insensitive)
Name + company fallback: if no email, matches by name and organization
Upsert preserves data: only fields with values in your CSV overwrite existing data -- blank cells are ignored
Integrity verification: after import, UpSight checks that all records, org links, and attributes were created correctly
Next Steps