Skip to content

Export your Highrise CRM data into a single JSON file

Notifications You must be signed in to change notification settings

marmelab/highrise-export

Repository files navigation

Highrise Exporter

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.

Install

$ git clone git@github.com:marmelab/highrise-export.git
$ pnpm install build
$ node ./dist/cli.js

CLI

$ 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.

Output

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

  • 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

Useful commands

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

About

Export your Highrise CRM data into a single JSON file

Topics

Resources

Stars

Watchers

Forks

Contributors 2

  •  
  •