SalesOS.

Bulk Operations & Data Import

Import, export, and mass-update records efficiently with validation, mapping, and rollback capabilities.

Overview

Bulk Operations in SalesOS enable administrators and authorized users to efficiently manage large volumes of CRM data. Whether you are migrating from another system, performing quarterly data cleanup, reassigning territories, or exporting records for external analysis, SalesOS provides robust tooling with built-in validation, error handling, and rollback capabilities to protect data integrity at scale.

These operations are designed for both one-time migrations and recurring data maintenance workflows, with safeguards that prevent accidental data loss while maintaining the speed necessary for enterprise-scale operations.

Data Import

Supported File Formats

FormatExtensionMax File SizeNotes
CSV.csv50 MBUTF-8 encoding recommended
Excel.xlsx, .xls50 MBFirst sheet used by default; multi-sheet supported
TSV.tsv50 MBTab-separated values
JSON.json25 MBArray of objects format
vCard.vcf10 MBContact imports only

Import Workflow

The import process follows a structured five-step workflow:

Step 1: Upload

Navigate to Settings > Data Management > Import and upload your file. SalesOS immediately validates the file format, encoding, and structure before proceeding.

Step 2: Object Selection

Select the target object for import (Leads, Contacts, Accounts, Opportunities, Products, or Custom Objects). If your file contains data for multiple objects, run separate imports for each.

Step 3: Field Mapping

The field mapping interface presents your file's columns alongside available SalesOS fields:

Your Column HeaderMapped ToStatus
Company NameAccount.nameMapped (auto-detected)
Annual RevAccount.annualRevenueMapped (manual)
Phone NumberAccount.phoneMapped (auto-detected)
Custom Field ABC---Unmapped (skip or create field)

SalesOS auto-maps columns using header name matching and data type analysis. Unmapped columns can be:

  • Manually mapped to an existing field.
  • Used to create a new custom field on the fly.
  • Skipped (data in that column will not be imported).

Step 4: Validation Preview

Before committing, SalesOS validates every row and presents a summary:

  • Ready to import: Records that pass all validation rules.
  • Warnings: Records that will import but have potential issues (e.g., missing optional fields).
  • Errors: Records that cannot be imported (e.g., missing required fields, invalid formats, constraint violations).

You can download the error report, fix issues in your source file, and re-upload, or proceed with only the valid records.

Step 5: Execute

Confirm the import to begin processing. Progress is displayed in real time with record counts for success, skip, and failure. Large imports (10,000+ records) run asynchronously with email notification on completion.

Field Mapping Details

Auto-Mapping Intelligence

SalesOS uses multiple strategies to suggest field mappings:

  • Exact name match: Column header matches field API name or label.
  • Fuzzy match: Similar names (e.g., "Phone #" maps to "Phone").
  • Data type inference: Columns with email patterns map to email fields; currency values map to currency fields.
  • Historical mapping: If you have imported to this object before, previously used mappings are suggested.

Data Transformations

During mapping, you can apply transformations:

TransformationExample
Date format conversion"MM/DD/YYYY" to ISO 8601
Currency normalizationStrip symbols, standardize decimal
Phone formattingNormalize to E.164 international format
Text caseUPPER, lower, Title Case
Value mapping"Y"/"N" to true/false
Default valuesFill blank cells with a specified value
ConcatenationCombine "First" + "Last" into "Full Name"
SplitSplit "City, State" into separate fields

Duplicate Handling

During import, SalesOS checks for duplicates using configurable matching rules:

Match Criteria Options:

  • Email address (exact match).
  • Company name + domain (fuzzy match).
  • Phone number (normalized match).
  • Custom field combination (e.g., external ID from source system).

Duplicate Actions:

ActionBehavior
SkipDo not import the duplicate record
UpdateOverwrite existing record with imported data
Update Blanks OnlyFill only empty fields on the existing record
Create DuplicateImport as a new record regardless
Flag for ReviewImport but mark for manual deduplication

Validation Rules

SalesOS enforces multiple validation layers during import:

  1. Required fields: Records missing mandatory fields are rejected.
  2. Data type validation: Ensures values match expected formats (dates, numbers, emails).
  3. Picklist validation: Checks that values match defined picklist options.
  4. Uniqueness constraints: Enforces unique field rules (e.g., no duplicate email addresses).
  5. Relational integrity: Validates that lookup references point to existing records.
  6. Custom validation rules: Any custom validation logic defined on the object applies.
  7. Field length limits: Text values exceeding maximum character counts are flagged.

Import Templates

SalesOS provides downloadable templates for common import scenarios:

Standard Templates

TemplateDescriptionFields Included
Leads (Basic)Minimal lead importName, Email, Company, Phone, Source
Leads (Full)Complete lead importAll standard + common custom fields
AccountsCompany recordsName, Domain, Industry, Size, Address
ContactsPeople recordsName, Email, Phone, Title, Account
OpportunitiesDeal recordsName, Account, Stage, Amount, Close Date
ProductsCatalog itemsName, SKU, Price, Category, Description

Custom Templates

Create custom import templates that include:

  • Only the fields relevant to your workflow.
  • Pre-filled picklist values as data validation dropdowns (Excel).
  • Instructions and formatting guidelines in a header row.
  • Sample data rows showing expected formats.

Templates can be shared with team members and versioned as your schema evolves.

Mass Update

Mass update allows you to change field values across multiple records simultaneously.

Mass Update Workflow

  1. Select Records: Use list views, search results, or report output to select target records. Selection options include:

    • Manual checkbox selection (up to current page).
    • Select all matching current filters (includes unpaginated results).
    • Upload a list of record IDs.
  2. Choose Fields: Select one or more fields to update. Multiple fields can be updated in a single operation.

  3. Set Values: For each selected field, specify the new value:

    • Static value (same value for all records).
    • Calculated value (formula-based, e.g., increase Amount by 10%).
    • Clear value (set to null/empty).
    • Copy from another field.
  4. Preview Changes: Review a sample of affected records showing before/after values. The preview displays the first 100 records and total count.

  5. Execute: Confirm to apply changes. A background job processes the update with progress tracking.

Supported Mass Update Fields

All standard and custom fields that are editable support mass update, including:

  • Text, number, and currency fields.
  • Picklist and multi-select picklist values.
  • Date and datetime fields.
  • Lookup/relationship fields (reassignment).
  • Checkbox/boolean fields.

Excluded from mass update:

  • System fields (Created Date, Last Modified Date).
  • Formula fields (read-only).
  • Auto-number fields.

Mass Delete

Mass delete removes multiple records in a single operation with appropriate safeguards.

Safeguards

SafeguardDescription
Permission CheckOnly users with delete permission on the object can mass delete
Record LimitMaximum 10,000 records per operation (larger batches require admin approval)
Confirmation RequiredMust type "DELETE" to confirm after reviewing affected count
Recycle BinDeleted records move to Recycle Bin for 30 days before permanent removal
Cascade WarningDisplays count of related records that will be affected
Audit LogEvery mass delete is logged with user, timestamp, record count, and criteria

Mass Delete Process

  1. Filter records to identify deletion candidates.
  2. Review the matched record list carefully.
  3. Confirm the deletion by typing the confirmation phrase.
  4. Records move to Recycle Bin (recoverable for 30 days).
  5. Related child records are handled per cascade configuration.

Cascade Behaviors

Parent ObjectChild HandlingExample
AccountReassign or cascade deleteDeleting Account can reassign its Contacts
OpportunityArchive or cascadeDeleting Opportunity archives related Activities
ContactNullify referencesDeleting Contact clears lookups on Activities

Mass Reassignment

Mass reassignment transfers record ownership across users, teams, or territories.

Reassignment Options

  • Direct reassignment: All selected records move to a specific user.
  • Round-robin: Records distributed evenly across a set of users.
  • Rule-based: Assignment rules evaluate each record individually.
  • Territory-based: Records reassigned based on current territory definitions.

Reassignment Scope

Choose what transfers with ownership:

OptionDescription
Record onlyOnly the parent record ownership changes
Record + open activitiesOpen tasks and events transfer to new owner
Record + all activitiesComplete activity history transfers
Full cascadeRecord, activities, open opportunities, and related children transfer

Common Reassignment Scenarios

  • Rep departure: Reassign all records to a specific backup or distribute across team.
  • Territory change: Bulk reassign based on new territory rules.
  • Team restructuring: Move records between teams based on new org chart.
  • Load balancing: Redistribute from overloaded reps to those with capacity.

Export

Export Methods

List View Export Export records currently displayed in any list view. Exports honor active filters and column selections.

Report Export Export any saved report's results in multiple formats (see Custom Reports documentation).

Full Object Export Export all records of a specific object type with all fields or selected fields.

Filtered Export Apply custom filter criteria and export matching records.

Scheduled Exports

Configure recurring exports that run automatically:

SettingDescription
FrequencyDaily, weekly, monthly
FormatCSV, Excel, JSON
DeliveryEmail attachment, SFTP, cloud storage (S3, GCS)
ScopeFull export or incremental (only changed records since last export)
FiltersApplied to each run (supports relative dates)

Export Limits

PlanRecords per ExportExports per DayScheduled Exports
Starter10,000102
Professional100,0005010
EnterpriseUnlimitedUnlimitedUnlimited

Import History and Rollback

Import History

Every import operation is recorded with complete metadata:

FieldDescription
Import IDUnique identifier for the operation
Date/TimeWhen the import was executed
UserWho performed the import
ObjectTarget object type
Source FileOriginal file name (file retained for 90 days)
Total RecordsCount of rows in the source file
SucceededRecords successfully created or updated
FailedRecords that could not be imported
SkippedRecords skipped due to duplicate rules
DurationTime taken to complete the import

Rollback Capability

SalesOS supports full rollback of import operations within 30 days:

  1. Navigate to Settings > Data Management > Import History.
  2. Find the import to rollback and click Undo Import.
  3. SalesOS identifies all records created by that import.
  4. Preview shows which records will be deleted and which updates will be reverted.
  5. Confirm rollback to execute.

Rollback limitations:

  • Records modified after import will show a warning (rollback reverts to pre-import state, losing subsequent changes).
  • Records that have been referenced by other records (e.g., an Account now linked to new Opportunities) require handling of those references before rollback.
  • Rollback is all-or-nothing for a given import batch.

Error Handling

Error Categories

CategoryExamplesResolution
Format ErrorsInvalid date, non-numeric in number fieldFix source data format
Validation ErrorsMissing required field, picklist mismatchAdd missing data or correct values
Constraint ErrorsDuplicate unique field, exceeded field lengthDeduplicate or truncate
Reference ErrorsLookup target does not existCreate referenced record first or correct ID
Permission ErrorsUser lacks create/edit permissionContact admin for access
System ErrorsTimeout, connection failureRetry; contact support if persistent

Error Reports

Failed records generate a downloadable error report containing:

  • Original row data from the source file.
  • Specific field(s) causing the error.
  • Error code and human-readable message.
  • Suggested fix for common errors.

This report can be corrected and re-uploaded to import only the previously failed records.

Partial Success Handling

When an import partially succeeds:

  • Successfully imported records are committed and visible immediately.
  • Failed records are collected into an error file.
  • The import history shows both success and failure counts.
  • You can re-import only the corrected error file without duplicating successful records (using duplicate detection).

Limits and Performance

Operation Limits

OperationLimitNotes
Import file size50 MBSplit larger files into batches
Records per import500,000Larger imports processed in background
Fields per record200Per-object field limit applies
Mass update batch50,000Larger batches require admin role
Mass delete batch10,000Safety limit; admin can override
Concurrent operations3Per user; prevents resource contention
Daily API operationsVaries by planCheck usage in Settings > Limits

Performance Tips

  • Time your imports: Schedule large imports during off-peak hours for faster processing.
  • Batch strategically: Break very large files into 50,000-record batches for optimal throughput.
  • Minimize triggers: If automation rules fire on record creation, temporarily disable non-critical automations during bulk imports.
  • Use external IDs: Include external system IDs for faster duplicate matching vs. fuzzy name matching.
  • Index your match fields: Ensure fields used for duplicate detection are indexed.

Best Practices

  1. Always preview before executing. Never skip the validation preview step, regardless of how confident you are in your data quality. A two-minute review can prevent hours of cleanup work.

  2. Start with a small test batch. Before importing 100,000 records, import 100 first. Verify field mapping, duplicate handling, and validation behavior on the small batch, then proceed with confidence to the full dataset.

  3. Maintain import templates. Create and version-control templates for recurring import scenarios. Templates with pre-defined mappings, validation rules, and instructions reduce errors and enable delegation.

  4. Document your imports. Use the description field on each import to note the purpose, source system, and any special handling. Your future self and colleagues will appreciate the context when reviewing import history.

  5. Back up before mass operations. Before any mass update or delete, export the affected records first. While SalesOS provides rollback, having an independent backup adds an extra safety net.

  6. Use external IDs for system integrations. When importing from external systems, always include the source system's unique identifier. This enables reliable duplicate detection and future re-imports without creating duplicates.

  7. Clean data before importing. Invest time in source data cleanup (standardizing formats, removing invalid entries, deduplicating) before upload. The validation step catches errors, but prevention is more efficient than correction.

  8. Assign ownership deliberately. Ensure every imported record has a valid owner. Records without ownership create orphans that slip through reporting and territory coverage. Use the default owner setting as a safety net.

  9. Communicate mass changes in advance. Before performing mass updates or reassignments that affect other users' records, notify the impacted team members. Unexpected changes to their pipeline or accounts create confusion and erode trust.

  10. Review and retire old import history. Periodically review import history and confirm that rollback capability is no longer needed for older imports. While SalesOS retains history automatically, understanding what is recoverable helps in incident response.