Export all your highrise data (contacts, companies, notes, tasks, tags, dels) into a single JSON. Preserves attachments.
This is a CLI tool that generates a JSON file and fetches all the attachments into a local directory. This JSON file is compatible with the import format expected by Atomic CRM.
$ git clone git@github.com:marmelab/highrise-export.git
$ pnpm install build
$ node ./dist/cli.js$ highrise-export --help
Usage
$ highrise-import
Options
--url Your Highrise instance URL. Can be provided with HIGHRISE_API_URL environment variable
--token Your Highrise API Token. Can be provided with HIGHRISE_API_TOKEN environment variable
--output The path of the directory where to write the export output. Can be provided with EXPORT_OUTPUT environment variable
Examples
$ highrise-export --url=https://example.highrisehq.com --token=605b32dd --output="~/Documents/highrise-export"
You can provide all options with environment variables: HIGHRISE_API_URL, HIGHRISE_API_TOKEN and EXPORT_OUTPUT.
The CLI support dotenv files so you can write them in an .env file.
The directory provided by --output will contains a data.json file and an attachments directory.
The data.json JSON has the following format:
{
"sales": [
{
"id": 1,
"first_name": "John",
"last_name": "Doe",
"email": "john.doe@example.com"
}
],
"companies": [
{
"id": 1,
"name": "Doe Inc.",
"description": "A popular company for random data",
"sales_id": 14,
"city": "Sampleville",
"country": "United States",
"address": "123 Example Ave",
"zipcode": "55555",
"state_abbr": "IL",
}
],
"contacts": [
{
"id": 1,
"first_name": "John",
"last_name": "Doe",
"sales_id": 14,
"title": "Stand-in",
"background": "A popular guy for random data",
"linkedin_url": "http://us.linkedin.com/in/john-doe",
"avatar": "http://avatar.com/john-doe",
"company_id": 2,
"emails": [{ "email": "john.doe@example.com", "type": "Work" }],
"phones": [
{ "number": "555-555-5555", "type": "Work" },
{ "number": "555-666-6666", "type": "Home" }
],
"tags": ["Partner"],
}
],
"notes": [
{
"contact_id": 1,
"sales_id": 3,
"text": "Hello world!",
"date": "2006-05-16T17:26:00Z",
"attachments": [
{
"url": "/attachments/f5cab073-203d-410e-89e9-52d7bb4e992d.png",
"name": "picture.png"
},
{
"url": "/attachments/d50c81de-1a1b-4146-8444-06c8bfbd4a4f.txt",
"name": "document.txt"
}
]
},
],
"tasks": [
{
"contact_id": 1,
"sales_id": 3,
"text": "A task for today",
"due_date": "2006-05-16T17:26:00Z",
"done_date": "2006-05-14T17:26:00Z"
}
]
}- Notes and emails from Highrise are both in the output notes field as Atomic CRM handle emails as notes
- Only the tasks linked to a contact are imported
Attachments are downloaded to the attachments directory of your export (in exports directory). Their names will be `/attachments/[UUID].[EXTENSION].
Use the following sed command to replace them with an S3 URL for instance:
sed -i 's|/attachments|https://mybucket.s3.eu-central-1.amazonaws.com|g' data.json