Import / Export
Bulk import data into Rally CRM from CSV files or export your data as CSV or Excel (XLSX) files. Use the template endpoints to download correctly formatted CSV files for each entity type, then upload populated files to import records in bulk.
Contacts
GET
/api/v1/importexport/contacts/exportExport contacts as CSVGET
/api/v1/importexport/contacts/export/excelExport contacts as XLSXPOST
/api/v1/importexport/contacts/importImport contacts from CSVGET
/api/v1/importexport/contacts/templateDownload CSV templateCompanies
GET
/api/v1/importexport/companies/exportExport companies as CSVGET
/api/v1/importexport/companies/export/excelExport companies as XLSXPOST
/api/v1/importexport/companies/importImport companies from CSVGET
/api/v1/importexport/companies/templateDownload CSV templateDeals
GET
/api/v1/importexport/deals/exportExport deals as CSVGET
/api/v1/importexport/deals/export/excelExport deals as XLSXPOST
/api/v1/importexport/deals/importImport deals from CSVGET
/api/v1/importexport/deals/templateDownload CSV templateActivities
GET
/api/v1/importexport/activities/exportExport activities as CSVGET
/api/v1/importexport/activities/export/excelExport activities as XLSXPOST
/api/v1/importexport/activities/importImport activities from CSVGET
/api/v1/importexport/activities/templateDownload CSV templateImport Response
All import endpoints return a summary of the operation, including how many rows were successfully imported and any errors encountered.
ImportResultDto
| Property | Type | Required | Description |
|---|---|---|---|
totalRows | int | ✓ | Total number of rows processed from the CSV file |
imported | int | ✓ | Number of rows successfully imported |
skipped | int | ✓ | Number of rows skipped due to duplicates or validation errors |
errors | List<string> | ✓ | List of error messages describing why specific rows were skipped |
{
"totalRows": 150,
"imported": 142,
"skipped": 8,
"errors": [
"Row 12: Invalid email format 'not-an-email'",
"Row 34: Duplicate contact with email 'john@acme.com'",
"Row 67: Required field 'first_name' is empty",
"Row 89: Invalid lifecycle_stage value 'prospect'",
"Row 91: Company 'Unknown Corp' not found",
"Row 103: Invalid date format in 'expected_close_date'",
"Row 118: Duplicate contact with email 'jane@acme.com'",
"Row 145: Required field 'last_name' is empty"
]
}CSV Column Headers
Use the template endpoints to download a pre-formatted CSV file for each entity type. Below are the expected column headers for each entity. Required columns are marked accordingly.
Contacts
| Column Header | Description |
|---|---|
first_name | Contact first name |
last_name | Contact last name |
email | Email address |
phone | Phone number |
mobile | Mobile phone number |
title | Job title |
department | Department |
company_name | Associated company (matched by name) |
address | Street address |
city | City |
state | State or province |
country | Country |
postal_code | ZIP or postal code |
lifecycle_stage | Lifecycle stage (e.g., lead, customer) |
lead_source | How the lead was acquired |
tags | Comma-separated tags |
notes | Additional notes |
Companies
| Column Header | Description |
|---|---|
name | Company name |
domain | Company website domain |
industry | Industry sector |
description | Company description |
employee_count | Number of employees |
annual_revenue | Annual revenue |
phone | Phone number |
website | Company website URL |
address | Street address |
city | City |
state | State or province |
country | Country |
postal_code | ZIP or postal code |
tags | Comma-separated tags |
notes | Additional notes |
Deals
| Column Header | Description |
|---|---|
name | Deal name |
value | Deal monetary value |
currency | Currency code (e.g., USD, EUR) |
probability | Win probability (0-100) |
expected_close_date | Expected close date (ISO 8601) |
stage_name | Pipeline stage name |
pipeline_name | Pipeline name |
contact_email | Associated contact (matched by email) |
company_name | Associated company (matched by name) |
notes | Additional notes |
Activities
| Column Header | Description |
|---|---|
activity_type | Type (call, meeting, task, email, note) |
subject | Activity subject line |
body | Activity description or body text |
scheduled_at | Scheduled date/time (ISO 8601) |
completed_at | Completion date/time (ISO 8601) |
status | Status (pending, completed, cancelled) |
priority | Priority level (low, normal, high, urgent) |
due_date | Due date (ISO 8601) |
contact_email | Associated contact (matched by email) |
company_name | Associated company (matched by name) |
deal_name | Associated deal (matched by name) |
Examples
Export Contacts as CSV
# Export contacts as CSV and save to file
curl -o contacts.csv \
"https://your-tenant.rallycrm.io/api/v1/importexport/contacts/export" \
-H "X-Api-Key: rk_live_your_api_key_here"
# Export contacts as Excel
curl -o contacts.xlsx \
"https://your-tenant.rallycrm.io/api/v1/importexport/contacts/export/excel" \
-H "X-Api-Key: rk_live_your_api_key_here"
# Download the CSV template
curl -o contacts_template.csv \
"https://your-tenant.rallycrm.io/api/v1/importexport/contacts/template" \
-H "X-Api-Key: rk_live_your_api_key_here"Import Contacts from CSV
# Import contacts from a CSV file
curl -X POST \
"https://your-tenant.rallycrm.io/api/v1/importexport/contacts/import" \
-H "X-Api-Key: rk_live_your_api_key_here" \
-F "file=@contacts.csv"Import Tips
- Download the template first to ensure your CSV has the correct column headers and format.
- Dates should use ISO 8601 format (e.g.,
2025-06-15or2025-06-15T14:30:00Z). - Company and contact associations are matched by name or email. Ensure the referenced records already exist in Rally.
- Files must be UTF-8 encoded. Maximum file size is 10 MB.