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 accountsWhen 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
CSV (Recommended)
Standard comma-separated values with headers:JSON
Array of account objects:Raw Text
Unstructured text that AI will parse:Upload Process
Paste or Upload Data
Either:
- Paste data directly into the text area
- Upload a CSV/JSON file
- Drag and drop a file
Add Context (Optional)
Provide additional context to help AI:
- Source system
- Default values
- Data quality notes
Review Preview
AI shows you normalized records before import:
- Extracted company names
- Normalized ARR values
- Parsed contacts
- Identified risks or issues
Edit If Needed
Fix any incorrectly parsed data:
- Click fields to edit inline
- Remove duplicate entries
- Add missing information
AI Normalization
What AI Does
Thread’s AI automatically:| Task | Example |
|---|---|
| Extract company names | ”Acme Corp ($50k)” → “Acme Corp” |
| Parse contact info | ”john@acme.com (John)” → Email + Name |
| Normalize ARR | ”$50k”, “50000”, “50K ARR” → 50000 |
| Identify duplicates | Same company appearing twice |
| Flag issues | Missing 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
| Field | Description | Fallback |
|---|---|---|
| Company Name | Account name | Required, no fallback |
Optional Fields
| Field | Description | AI Handling |
|---|---|---|
| ARR | Annual recurring revenue | Extracts from text, normalizes currency |
| Contacts | Customer contacts | Parses email, name pairs |
| Domain | Company website | Extracts from email domain |
| Notes | Deal notes | Preserves as-is |
| Close Date | When deal closed | Parses various date formats |
Custom Fields
Any unrecognized fields are preserved in account metadata: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:| Option | Result |
|---|---|
| Keep Both | Import as separate accounts |
| Skip Duplicate | Only import the first occurrence |
| Merge | Combine data from both records |
| Review | Flag for manual review |
Post-Import Actions
After accounts are imported:Automatic
- ✅ Accounts created with selected template
- ✅ Milestones initialized
- ✅ Upload source tracked for auditing
Manual (Recommended)
- 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:- Import in batches grouped by template
- Or change template per-account after import
Assigning CSMs
After import, assign CSMs in bulk:- Go to Accounts list
- Filter by upload batch (date imported)
- Select accounts
- Click “Bulk Assign CSM”
Troubleshooting
AI Can't Parse My Data
AI Can't Parse My Data
Try:
- Add context explaining the data format
- Use CSV with clear headers
- Break into smaller batches
- Clean data before uploading
Wrong Values Extracted
Wrong Values Extracted
Solution: Edit in preview before importing. Click any field to fix.Prevention: Add context like “ARR column is monthly, not annual”
Missing Contacts
Missing Contacts
Check:
- Contact columns are labeled clearly
- Email addresses are valid format
- Names are in a recognizable pattern
Import Failed
Import Failed
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.
