Importing Data (Smart Import)
1. What it is
Smart Import is the platform’s unified way to bring data in from CSV files or spreadsheet copy-paste.
It covers users, departments, holidays, job families, job titles, and records in apps that register as import targets — over 20 data types through one consistent flow.
AI suggests how your file’s columns map to the platform’s fields; you review, adjust, and commit.
- Enablement: Smart Import is built into the platform — there is no app to license or enable. Business admins can import any platform target; delegated app administrators can import the targets their app registers (for example, a Company Store app administrator can import store items without being a business admin).
- What it is not: Smart Import does not sync data continuously from an external system. For live synchronization with an HRIS, payroll provider, or identity provider, use the platform’s Integrations. Smart Import also does not handle file attachments — it imports structured data (fields, values, references) from CSV or tab-separated text.
2. Standing it up
Smart Import requires no separate configuration before first use — no app to enable, no API key to set up. Once you have data to bring in:
- Go to Admin → Bring Your Data (
/admin/data-migration). This page lists every data type you can import, grouped by app. Platform targets (Users, Departments, Holidays, Job Families, Job Titles) are always visible to business admins. - Click Import next to the data type you need. Each opens its own import page.
- Upload a CSV file or paste rows copied from a spreadsheet. The platform reads both comma-separated and tab-separated formats automatically. Pasted data works directly from an Excel or Google Sheets copy — select a range including the header row, copy, and paste into the text area.
- Review the AI-suggested column mapping on Step 2. Re-point, skip, or accept each column. For rows that already exist, choose Skip them (add new only) or Update them.
- Click Commit import to write the records.
What to know before your first import:
- Files up to 25,000 rows are accepted. Files with 200 rows or fewer import inline; larger files run in the background and you are redirected to a progress page. You can leave and come back — the page polls automatically.
- Downloading the Template CSV for a target gives you a file whose column headers auto-map perfectly on re-upload — no review edits needed.
- An app-scoped target (for example, Store Items for Company Store) only appears in the catalog if that app is enabled for your tenant.
- The maximum upload size is 10 MB for both files and pasted data. The accepted file types are CSV, TSV, and plain text.
3. How it fits together
Targets — A target is a data type the platform knows how to import. Each target defines its fields, which columns are required, how duplicates are detected (by an identifier column such as name or email), and how references to other records are resolved. The catalog at Admin → Bring Your Data lists every target you have permission to import, grouped into Platform and per-app sections.
Platform-level targets available to every business admin include Users, Departments, Job Families, Job Titles, Holidays, and Knowledge Base entries. The Users target is lightweight — it creates accounts without sending invitations, and it operates in headers-only mode, meaning the AI mapping sees column headers but never cell values, as an additional PII safeguard.
App-level targets appear when their app is enabled — examples include Accounts and Contacts (Mango GTM / Mango CS), Tasks, Workspace Tasks, Store Items (Company Store), Contracts, OKR Objectives and Key Results, Vendors, Candidates (Job Board), Skills and Certifications, Assets, Deals, Purchase Orders, Training Courses, Billing Profiles, and RFP Answers and Engagements.
Some targets depend on another — the catalog page notes these dependencies. For example, Key Results reference their parent Objective by title — import Objectives first. Job Titles reference Job Families, and Contacts reference their Account by name or domain.
Column mapping — When you upload a file, the platform runs a two-stage suggestion:
- Heuristic matching compares your column headers against known field names and aliases. An exact header-to-field match maps automatically with no AI involved.
- AI refinement handles ambiguous or renamed columns. It reads the headers and a few sample values, then proposes destinations and value transforms (such as converting currency strings to numbers, or mapping status synonyms). Columns whose headers match sensitive patterns (SSN, salary, bank, password, and similar) never have their cell values sent to the AI — only the header is used.
You always review and confirm the mapping before anything is written. The AI only proposes; deterministic code applies the confirmed plan.
Reference resolution — When a column points to a related record (for example, a contact’s account or a key result’s parent objective), the platform resolves the reference through a pipeline: exact match first, then fuzzy matching (prefix, suffix, and name similarity), then embedding-based semantic matching, and finally AI adjudication for remaining ambiguous cases. Unresolved references are reported as problem rows, not silently dropped.
Saved mappings — After a successful import, the platform remembers the confirmed mapping for that combination of target and column set. The next time a file with the same columns is uploaded, the saved mapping is reused instantly — no AI call, no review edits. The banner on Step 2 tells you when a saved mapping is being applied.
Import modes — Two modes govern how the import handles rows that already exist (matched by the target’s identifier field — typically name, email, or a similar unique value):
- Skip them (add new only) — only new rows are created; existing records are untouched.
- Update them — existing records are updated with the values from the file; new rows are still created.
Some targets use a composite identifier (for example, RFP engagements are keyed on both title and due date) so that event-shaped data with repeated titles does not collapse into a single record.
Historical import — Some targets support a historical-import mode for migrating past activity. When available, a These are historical records checkbox appears on the review step. Checking it imports the records as already completed, preserves their original dates, and suppresses notifications so a migration of 500 closed contracts does not generate 500 notifications. The import history page tags these runs with a Historical badge and names who enabled the mode. Use historical import when migrating closed contracts, completed OKR cycles, or resolved RFP engagements — not for current work.
Provenance — Every record created by Smart Import carries a permanent provenance marker noting the source file, the import date, and whether it was a historical import. This appears as an Imported badge on the record’s detail page. Provenance is never overwritten — it records the original import, even if the record is later updated by a subsequent import.
Permissions — Who can import what depends on the target. Platform-level targets (Users, Departments, Holidays, Job Families, Job Titles, Knowledge Base) require a business admin. App-scoped targets also admit delegated app administrators — an admin of the Company Store app can import store items without being a business admin. Creating new custom fields during import always requires admin-level access. Import history is visible to business admins for all runs, or to app administrators for the targets they administer.
4. Running it
Importing from a file or spreadsheet
- Go to the import page for your target (either from Admin → Bring Your Data or from the in-app import button where available).
- Choose Upload a file or Paste data. Pasted data works with rows copied directly from Excel or Google Sheets — include the header row.
- Click Map columns. The platform parses the file, suggests mappings, and shows a data preview of the first few rows alongside each column’s suggested destination.
- On Step 2, review each column’s Import as destination. The mapping table shows your CSV column name, a sample value, and the suggested target field. You can re-point any column to a different field, mark it Skip, or — if you are an admin and the target supports custom fields — create a new custom field on the fly. If a saved mapping from a previous import of the same columns is being reused, a banner at the top of Step 2 tells you.
- Choose the import mode for existing rows and click Commit import.
- After the import, the Last import results panel shows how many records were created, updated, and skipped. Problem rows are listed with the row number, identifier, and the reason each was skipped. Rows imported with warnings (imported but worth reviewing) appear in a separate expandable section. Click Download problem rows to get a CSV of only the failures for correction and re-import.
Exporting current data
Each import page has an Export current data button that downloads every record of that type as a CSV file. The export uses the same column names as the importer, so the exported file re-imports cleanly with zero changes — useful for round-trip edits or backup before a bulk update. User fields export as the user’s email (which resolves unambiguously on re-import), reference fields export the matched value (for example, the account name), and dates export in ISO-8601 format.
Setting up a recurring import
For data that arrives on a regular cadence from an external system (for example, a nightly CSV export from an HRIS), you can schedule a recurring import:
- On the import page, expand the Recurring import section.
- Enter the CSV URL where the file is hosted.
- Choose the Cadence — Daily or Weekly.
- Choose Existing rows — Skip them or Update them.
- Click Schedule.
The URL must be an https (or http) address reachable from the internet — internal or private-network addresses are blocked for security. The platform fetches the file on the chosen cadence. Column mappings are resolved from the saved mapping for those columns — if no saved mapping exists and the columns do not match the target’s field names exactly, the run fails with a message asking you to run one interactive import first to confirm the mapping. Unattended imports never guess.
Every recurring run appears in Import history. You can Pause, Resume, or Remove a schedule from the same section.
Reviewing import history
Go to Admin → Bring Your Data and click Import history. This page shows every Smart Import run in your tenant — background and recurring — with the target name, filename, status (Pending, Running, Completed, or Failed), row counts (created, updated, skipped), who ran it, and when. Historical imports are tagged with a Historical badge. Business admins see all runs; delegated app administrators see only the runs for the targets they administer.
Accessing import from within an app
Several apps host the Smart Import flow inside their own interface — for example, Tasks, Company Store, Mango CS, and Mango GTM each have an import action in their admin views. These in-app importers use the same engine, the same mapping logic, and the same saved-mapping memory as the generic import page. They appear in the Bring Your Data catalog with a link that opens directly in the app’s chrome. Workspace Tasks are imported from within a specific workspace — the catalog row links you to the workspace picker, and you start the import from there.
5. Settings
Smart Import has no standalone settings page. Its behavior is governed by the choices made at import time and the recurring-import configuration:
| Setting | Where | Default | What it changes |
|---|---|---|---|
| Import mode | Step 2 of every import | Skip them (add new only) | Whether existing records are updated or left untouched |
| Historical records | Step 2 (targets that support it) | Off (unchecked) | Imports records as completed, keeps original dates, suppresses notifications |
| Create custom fields | Step 2 (admin only, targets with custom-field support) | On for admins | Whether unmapped columns create new custom fields on the target; non-admins see a note that those columns will be skipped |
| Recurring import — CSV URL | Recurring import section on the import page | (none — must be configured) | The hosted file the platform fetches on the cadence |
| Recurring import — Cadence | Recurring import section | Daily | Daily or Weekly fetch from the URL |
| Recurring import — Existing rows | Recurring import section | Skip them | Whether recurring runs update existing records or only add new ones |
The recurring-import schedule is checked hourly. A schedule whose last run (successful or not) is older than its cadence is due for the next fetch. A failing URL is not retried on every hourly sweep — it waits for the next cadence interval.
Value transforms — such as converting currency strings to numbers, normalizing date formats, or mapping status synonyms — are proposed by the AI during column mapping and confirmed during review. The platform supports common transforms including currency-to-number, percent-to-number, date normalization, boolean parsing, and case conversion (title case, uppercase, lowercase).
6. More help
- Importing Data FAQ — specific questions about file size limits, supported formats, column-mapping troubleshooting, and common import errors.
- Employee Data Administration — for bulk user management beyond the Smart Import user target.
- Integrations — SSO, HRIS, Payroll, SFTP, Webhooks — for continuous synchronization with external systems, as opposed to Smart Import’s file-based approach.
- Ask AI — the assistant answers questions about Smart Import from these articles.