Importing Data into Hustack
Hustack lets Owners and Admins migrate existing CRM data from another system using simple CSV uploads. You can import Accounts, Contacts, Leads, Opportunities, Products and Activities — each through the same guided wizard.
Before you start
- Only Owner and Admin users can run imports.
- Imports are scoped to your current workspace — records cannot leak between companies.
- Each row in your CSV becomes one record, up to 10,000 rows per import.
- We recommend reading the CRM Setup Guide first so your stages, sources and lead statuses match the values in your file.
1. Open Data Import
Go to Settings → Integrations and click Open Data Import. The wizard opens at /data-import.
2. Pick what to import
Choose one of the supported record types:
- Accounts — companies you sell to.
- Contacts — people, optionally linked to an Account by name.
- Leads — unqualified prospects.
- Opportunities — deals, always linked to an Account.
- Products — your catalog of services and SKUs.
- Activities — calls, meetings, emails and tasks.
3. Download the CSV template
Each record type has its own template with the expected column names and a sample row. Download it from the wizard, fill it in with your data, and save as .csv (UTF-8). Both comma (,) and semicolon (;) delimiters are supported.
4. Upload and map columns
Drop your CSV onto the upload area. Hustack auto-detects the delimiter and suggests a mapping for each column — for example "Company Name" is mapped to name automatically. Review the mapping and adjust any columns that should be ignored or mapped differently. Required fields are marked with a red dot.
5. Validate
The wizard validates every row before anything is written. You'll see:
- Errors — rows that cannot be imported (missing required fields, invalid email, bad date, etc.).
- Warnings — rows that match an existing record and may be skipped.
Choose how to handle duplicates: Skip (recommended) keeps the existing record untouched, while Create anyway inserts a new record even when a match is found.
6. Run the import
Click Start import. Records are inserted in batches and each imported row is tagged with created_via = "import" and a reference to the import job, so you can always trace where data came from. Imports stream a live progress indicator.
7. Review the summary
When the job finishes you'll see a summary with:
- Total rows in the file
- Imported, skipped (duplicates) and failed counts
- A downloadable CSV of failed rows with per-row error messages
All imports appear under History in the wizard for at least the last 50 runs, including who started them and when.
Field reference
Required fields for each type:
- Accounts —
name - Contacts —
first_name,last_name(email recommended for dedupe) - Leads —
first_name,last_name - Opportunities —
name,account_name(Account must already exist or be auto-created) - Products —
name - Activities —
title,type
Dates accept ISO (YYYY-MM-DD) and common EU formats (DD/MM/YYYY, DD-MM-YYYY, DD.MM.YYYY). Numbers tolerate thousands separators and EU-style decimals. Booleans accept true/false, yes/no, 1/0 and ja/nej.
Troubleshooting
- "Account not found" when importing Opportunities — enable Create missing accounts in the wizard, or import Accounts first.
- "Invalid email" — make sure the email column is mapped correctly and contains a full address.
- Everything is being skipped — your file may already exist in Hustack; switch the duplicate strategy to Create anyway or remove the existing records.
- File too large — split the CSV into chunks of 10,000 rows or fewer.
Going further
For programmatic loads — nightly syncs, integrations with Make/Zapier or custom scripts — use the Hustack REST API instead of one-off CSV imports. The API supports the same record types with per-key permissions and rate limits.