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.
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
NameorFirst Name/Last NameEmailPhoneTitle/Job TitleLinkedInLocation
Organization
Company/OrganizationIndustryCompany SizeCompany StageAnnual RevenueFunding Stage/Total Funding
Segmentation Fields
These columns automatically become person attributes, making them available for filtering and analysis:
SegmentLifecycle StageJob FunctionIndustryLocationMembership Status
Download Templates
- Minimum template (fast onboarding)
- Canonical template (person-first + org columns)
- Enhanced template (deep segmentation + ICP context)
- North Star Health template (healthcare demo dataset):
docs/templates/people-org-import-template.north-star-health.csv - Field dictionary (definition + example + backend mapping)
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
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,xor ✓. Capitals don't matter —Yes,TRUEandXall 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).
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
Database view → ••• menu → Export → CSV
View → ••• menu → Download CSV
Contacts → Export
List View → Export List (or Data Loader)
Contacts → Export
Board → ••• menu → Export (.xlsx, save as CSV)
List/Table view → Customize → Export
Setup → Data Administration → Export → Contacts
Export → Google CSV
Email & marketing tools
Audience → Export audience → Export CSV
Contacts → All Contacts → Actions → Export
Nonprofit & donor-management tools
Constituent list → Export
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.
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,Chenemail: [email protected]title: VP Engineeringjob_function: Engineering, Product, Sales, Marketingseniority_level: C-Level, VP, Director, Manager, Senior, ICsegment: Enterprise, Mid-Market, SMBmembership_status: active, inactive, expired, trialmembership_level: Basic, Pro, Enterprisemembership_year: 2026membership_expires_at: 2026-12-31person_description: Leads platform engineering for B2B SaaS
Organization fields
company: Acme Inccompany_website: https://acme.coindustry: SaaS, Healthcare, FinTechsub_industry: Vertical SaaS, Digital Health, Paymentscompany_size: 1-10, 11-50, 51-200, 201-500, 1000+funding_stage: Bootstrapped, Seed, Series A, Series B, Publicannual_revenue: 12000000total_funding: 45000000lifecycle_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.
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
Member Status, Membership Year, Expiration Date
Track association/community membership alongside contacts. These become durable attributes you can filter and segment on.
Event Attended, RSVP Status, Session Preference
Import event registration data to personalize follow-up surveys.
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.
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.
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. Open import dialog
- 2. Upload CSV
- 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. Open project chat
- 2. Paste your CSV data
- 3. Review the column mapping
- 4. Confirm import
Upload Route/API
Use the upload page flow or call POST /api/people/import-csv for programmatic imports.
- 1. POST CSV as multipart or JSON
- 2. Auto-detects columns via AI
- 3. Returns import summary + verification
- 4. Supports create or upsert modes
Import Modes
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 DevelopmentImported 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.
- Send personalized surveys to your imported contacts via email or direct link
- Use People → Filters to create segments from imported attributes
- Analyze survey results with segmentation by imported attributes