Skip to main content

Overview

Manual account upload allows you to import multiple accounts at once from various data sources. Thread uses AI to normalize messy data into structured account records. [SCREENSHOT: Manual upload interface with data input area] Caption: Upload raw data and let AI transform it into structured accounts

When to Use Manual Upload

Good Use Cases

  • CRM migration - Moving from another CS platform to Thread
  • Spreadsheet imports - Bulk data from Excel or Google Sheets
  • Partner deals - Importing customer lists from partners
  • Historical accounts - Backfilling existing customers

When to Use Workflows Instead

  • Ongoing deal flow - Use CRM-triggered workflows
  • Single accounts - Create manually in the UI
  • Automated processes - Configure workflow triggers

Supported Formats

Standard comma-separated values with headers:
company_name,arr,contact_email,contact_name,notes
Acme Corp,50000,john@acme.com,John Smith,Enterprise deal
Beta Inc,25000,jane@beta.io,Jane Doe,SMB self-serve

JSON

Array of account objects:
[
  {
    "company_name": "Acme Corp",
    "arr": 50000,
    "contacts": [
      { "email": "john@acme.com", "name": "John Smith" }
    ]
  }
]

Raw Text

Unstructured text that AI will parse:
New deals from last week:
- Acme Corp ($50k ARR) - Contact: John Smith (john@acme.com)
- Beta Inc ($25k) - Jane Doe, jane@beta.io, self-serve customer
CSV is most reliable for consistent data. Use raw text only when you have messy, unstructured data.

Upload Process

1

Navigate to Upload

Go to AccountsUpload or click “Import Accounts” button.
2

Paste or Upload Data

Either:
  • Paste data directly into the text area
  • Upload a CSV/JSON file
  • Drag and drop a file
[SCREENSHOT: Data input with paste area and file upload] Caption: Paste data or upload a file
3

Add Context (Optional)

Provide additional context to help AI:
  • Source system
  • Default values
  • Data quality notes
Example: “This data is from HubSpot export. ARR values are monthly, multiply by 12.”
4

Process

Click “Process”. Thread’s AI analyzes and normalizes the data.
5

Review Preview

AI shows you normalized records before import:
  • Extracted company names
  • Normalized ARR values
  • Parsed contacts
  • Identified risks or issues
[SCREENSHOT: Preview showing normalized accounts with edit options] Caption: Review and edit normalized data before import
6

Edit If Needed

Fix any incorrectly parsed data:
  • Click fields to edit inline
  • Remove duplicate entries
  • Add missing information
7

Select Template

Choose which onboarding template to apply to imported accounts.
8

Import

Click “Import Accounts” to create all accounts.

AI Normalization

What AI Does

Thread’s AI automatically:
TaskExample
Extract company names”Acme Corp ($50k)” → “Acme Corp”
Parse contact infojohn@acme.com (John)” → Email + Name
Normalize ARR”$50k”, “50000”, “50K ARR” → 50000
Identify duplicatesSame company appearing twice
Flag issuesMissing required fields, invalid emails

Helping AI Succeed

Provide context to improve results: Good context:
“This is a HubSpot export. ‘Deal Amount’ column is annual contract value. ‘Owner’ is the AE name, not the customer contact.”
Why it helps:
  • AI knows which column is ARR
  • AI doesn’t confuse internal contacts with customers
  • AI understands the data source

Field Mapping

Required Fields

FieldDescriptionFallback
Company NameAccount nameRequired, no fallback

Optional Fields

FieldDescriptionAI Handling
ARRAnnual recurring revenueExtracts from text, normalizes currency
ContactsCustomer contactsParses email, name pairs
DomainCompany websiteExtracts from email domain
NotesDeal notesPreserves as-is
Close DateWhen deal closedParses various date formats

Custom Fields

Any unrecognized fields are preserved in account metadata:
company_name,arr,industry,sales_region
Acme Corp,50000,Technology,West
industry and sales_region are stored as custom fields.

Handling Duplicates

Detection

AI identifies potential duplicates by:
  • Exact company name match
  • Similar company names (fuzzy matching)
  • Same domain
  • Same contact email

Resolution Options

When duplicates are found:
OptionResult
Keep BothImport as separate accounts
Skip DuplicateOnly import the first occurrence
MergeCombine data from both records
ReviewFlag for manual review
[SCREENSHOT: Duplicate detection showing matched records] Caption: Review and resolve duplicate accounts before import

Post-Import Actions

After accounts are imported:

Automatic

  • ✅ Accounts created with selected template
  • ✅ Milestones initialized
  • ✅ Upload source tracked for auditing
  • Assign CSMs to each account
  • Review and edit any incorrectly parsed data
  • Trigger handoff process if applicable

Bulk Operations

Assigning Templates

All imported accounts receive the template selected during upload. To use different templates:
  1. Import in batches grouped by template
  2. Or change template per-account after import

Assigning CSMs

After import, assign CSMs in bulk:
  1. Go to Accounts list
  2. Filter by upload batch (date imported)
  3. Select accounts
  4. Click “Bulk Assign CSM”

Troubleshooting

Try:
  • Add context explaining the data format
  • Use CSV with clear headers
  • Break into smaller batches
  • Clean data before uploading
Solution: Edit in preview before importing. Click any field to fix.Prevention: Add context like “ARR column is monthly, not annual”
Check:
  • Contact columns are labeled clearly
  • Email addresses are valid format
  • Names are in a recognizable pattern
Tip: Add context like “Contacts are in ‘Primary Contact’ column”
Check:
  • Required fields (company name) are present
  • No malformed data (broken JSON, invalid CSV)
  • File isn’t too large (< 10MB)

Best Practices

Clean Data First

Remove obvious errors before upload. Garbage in = garbage out.

Use CSV for Large Imports

CSV is most reliable. JSON for programmatic exports. Raw text only for messy data.

Review Carefully

Always review the preview. Fix issues before importing.

Import in Batches

For large imports, break into batches of 50-100 accounts.

What’s Next?