← Back to Help Center

CSV Import & Export

Bring your existing contacts in from a spreadsheet, or export your RadiusOS data at any time. CSV import + export are free on every plan; you own your data.

What we expect from your CSV

Any CSV with a header row in the first line. RadiusOS auto-maps your column headers to its fields (Name, Email, Phone, Company, Notes, plus any per-template metadata). On the next step, you can override any mapping that auto-detection got wrong, or set a column to "Ignore".

💡

Don't have a CSV in the right shape yet? Click "Template" on the upload step to download a starter file with the expected columns and 3 sample rows. Open it in Excel, Numbers, or Google Sheets, fill in your contacts, and re-upload.

Importing contacts

1

Open Contacts and click Import

The Import button lives in the Contacts page header next to the search bar.

2

Download the template (optional but recommended on first import)

If you don't have a clean CSV yet, the "Template" button on the upload step gives you a starter file with the expected columns. Fill in your contacts and re-upload.

3

Upload your file

Drag and drop your CSV or click to browse. We parse it client-side with PapaParse, then auto-map the column headers to RadiusOS fields by fuzzy match.

4

Map columns

RadiusOS pre-fills the mapping but every row is editable. Sample data from your CSV is shown next to each header so you can confirm. Set unwanted columns to "Ignore this column". Name is the only required field.

5

Preview and confirm

Review the first 5 mapped rows and the total count. Click Import to create the contacts. The success screen shows imported + skipped counts with reasons (missing name, duplicate email).

Recognized columns

These fields are recognized for every workspace. Auto-mapping handles common variations: "Email Address" → Email, "Mobile Phone" → Phone, "Company Name" → Company, etc.

FieldRequiredNotes
NameYesFull name. Rows without a Name are skipped.
EmailNoUsed for duplicate detection (case-insensitive). Rows whose Email matches an existing contact in this workspace are skipped.
PhoneNoAny format. Stored normalized (e.g. (555) 123-4567).
CompanyNoCreates a Company record if the name is new; reuses the existing one if it matches (case-insensitive).
NotesNoPlain text. Multi-line notes work; quote the cell in your CSV per RFC 4180.

Templates with custom metadata fields (job title, source, deal value, listing address, etc.) expose those as additional mappable fields in the dropdown. Each workspace template defines its own. The field labels in the dropdown match what you see in the contact form.

What gets skipped

Two reasons a row gets skipped, both surfaced on the success screen:

  • Missing name: Name is the only required field. A blank Name cell skips the row.
  • Duplicate email: RadiusOS pre-loads every existing contact's email into a dedup set before importing. Any row whose Email matches an existing contact in this workspace (case-insensitive, leading/trailing whitespace ignored) is skipped. Duplicates within the same upload also get caught; only the first occurrence is imported.
â„šī¸

We don't currently support "update on duplicate" or "replace existing." If you need to update existing contacts in bulk, export first, edit in your spreadsheet, and re-import after deleting the originals (or wait for V2 of the import flow).

Plan limits that apply to imports

New Free workspaces are capped at 50 contacts (legacy Free workspaces created before May 2026 are grandfathered to 250). If your import would push you past the cap, we surface an upgrade prompt before any rows are created (no partial imports). Pro raises the cap to 1,000; Business and Team are unlimited.

💡

Importing a 500-row CSV when you have 100 existing contacts on Free? You'll see an upgrade prompt, and zero rows get imported. Either trim the CSV to fit or upgrade to Pro for the full pull.

Exporting contacts

Go to Contacts → Export CSV. All contacts in your current workspace are exported with the standard columns (Name, Email, Phone, Company, Tags, Stage, Notes, Last Action, Next Action, Created At) plus any per-template metadata. There is no row limit on export regardless of plan.

💡

Export regularly as a backup. RadiusOS doesn't keep long-form version history of your data, so a periodic export is a good habit.

Built a workflow that works? Share it.

Publish your pipeline template to the RadiusOS marketplace. Free to install, free to publish - help someone in your trade skip the setup.