The Harvest migration tool imports client, job and timesheet data from a Harvest account into . The tool is available in Settings on the Migration tab, and works through four steps: connecting to Harvest, preparing the data, reviewing and importing it, and completing setup.
No data is written to until the Import button is clicked in step 3. The tool never creates, updates or deletes data in Harvest.
What is imported
The tool collects the following record types from Harvest. All record types are imported together, because the records depend on each other and can't be brought across separately.
| Harvest | WorkflowMAX |
| Clients | Clients (inactive clients are archived) |
| Client Contacts | Contacts on the client |
| Users | Staff (current billable and cost rates only, no privilege set) |
| Roles | Role names only, with no staff assigned |
| Projects | Jobs (project code becomes the job number) |
| Tasks + Task Assignments | Tasks on each job |
| User Assignments | Not applied – assign job teams in WorkflowMAX |
| Time Entries | Timesheets (duration only) |
| Expense Categories | Costs in the cost list |
| Expenses | Costs on the job |
| Estimates | Quotes |
| Invoices + Invoice Payments | Invoices and payments (marked as already exported) |
How the import treats existing data
It adds to the existing WorkflowMAX data. It never clears or overwrites it.
-
Existing records are matched and reused, not overwritten:
Record Matched by Clients Name Staff Email Jobs Job number Roles Name
Note: Running the import again doesn't create duplicates.
What is not imported
The following items are not migrated into WorkflowMAX from Harvest:
- Attachments and receipts
- Forecast
- Recurring invoice schedules
- Running timers
- Historical rates (only current rates are imported)
- Weekly capacity
- Staff privileges
- Job teams
- Project notes, billing method and project manager
- Hour budgets on the job
- Archived project state (inactive projects become open jobs)
- Client tax number, legal name and payment terms
- Timesheet start and end times (the duration comes across)
Before starting
Things to note before starting your migration:
- The personal access token must be created by a Harvest Administrator. Harvest limits a token to what its user can see, so a Manager's or Member's token fetches incomplete data (e.g. only their own time).
- Only a WorkflowMAX administrator can run the migration.
- Finish time entry, invoicing and expenses in Harvest first. Changes made in Harvest after the import starts aren't picked up unless the import is run again.
The migration needs a Harvest Account ID and a Harvest personal access token. Both are available from the Developers page in Harvest.
-
Find the Harvest Account ID and personal access token
- Sign in to Harvest and go to the Developers tab.
- Click Create new personal access token, enter a name for the token and create it.
- Copy the token shown in Your token.
- In Choose account, select the Harvest account to migrate. The matching Account ID is displayed.
- Copy the Account ID.
The Harvest screens described here are managed by Harvest and may change. Refer to Harvest's own documentation if the screens look different.
A personal access token gives access to Harvest data. Keep it private, and don't share it or include it in screenshots or support requests.
Import data from Harvest
Step 1: Connect Harvest
- Go to Settings and select the Migration tab.
- Under Migrate from Harvest, click Get Started.
- In Harvest Account ID, enter the Account ID copied from Harvest.
- In Personal Access Token, paste the token copied from Harvest.
- Click Connect, and then click Next.
Step 2: Prepare data
The tool prepares the data in two stages. Nothing is written to during this step.
- Fetching from Harvest – Each record type is collected from Harvest. The status of each record type changes from COLLECTING to COMPLETED, and Resources fetched shows overall progress.
- Transforming & validating – The Harvest data is converted into records and checked. Records processed shows overall progress, and each record type shows the number of records that are valid, to review and skipped.
- Wait for both stages to finish. The message Your data is ready. Continue to review the results before importing. appears.
- Click Next.
Preparation time depends on the amount of data in the Harvest account. Accounts with a large number of time entries take longer.
Step 3: Review and import
This step shows what came through before anything is written to the account.
-
Check the summary totals:
Total Description Ready to import Records that passed validation and will be imported. Needs attention Records that need to be reviewed before import. Skipped Records that won't be imported. - Under By record type, check the number of records that are ready, to review and skipped for each record type.
- Click Import [number] records. Records imported shows the progress of the import.
This is the step that writes data to . Any mapping or formatting has been applied only to the prepared copy of the data, and the Harvest account isn't changed.
Records that need attention or were skipped
Only records that are ready to import are imported. Records under Needs attention or Skipped are left out. Open the count on any record type to see each record and why it wasn't converted.
Some records are skipped because the data in Harvest is incomplete:
- a timer that is still running
- time without a project, task or person
- an expense without a project
You can fix these records in Harvest and run the migration again. Records already imported are recognised and are not duplicated.
If a record type shows Retry, select it to try that type again.
If records still fail to migrate, or the reason isn't one listed above, contact WorkflowMAX Support at support@workflowmax.com. Include the record type and the message shown on the row. Don't include your personal access token.
Step 4: Complete
- When the import finishes, the message Import complete appears with the total number of Records imported.
- Click Finish.
- Note that each imported staff member isn't automatically sent an invitation to setup their account. To activate them, click the airplane icon next to their name and confirm the prompt to send the activation invitation. Once sent, the status will switch to Invite Pending. From here, the invitation can be re-sent if it expires.
Step 5: Next steps
After the import
- Set a privilege for each new staff member. Privileges aren't copied from Harvest.
- Send invitations from the staff list.
- Check billable and cost rates. Only current Harvest rates are imported.
- Assign staff to jobs. Harvest project assignments aren't copied.
- Compare Records imported with the totals on Review and import.
- Spot-check invoices and confirm that invoiced time isn't showing as unbilled.
If any records failed to migrate, contact support@workflowmax.com.
Cancel the migration
Click Cancel to stop the migration. Before you click Import, nothing is written to WorkflowMAX.
If you cancel after the import has started, records that have already been imported stay in WorkflowMAX. Cancelling does not remove them.
To bring the rest across, run the migration again – records already imported are recognised and are not duplicated.
Invoices and accounting
Migrated invoices are marked as already exported, so they aren't sent to Xero or the accounting system again.
Time and costs already invoiced in Harvest are marked invoiced, so they don't show as unbilled work.
Retry and failures
- Retry on a record type tries that type again without duplicating records.
- A record that fails while it's being written shows as failed against its record type, and is counted under Could not be written on Complete. It doesn't appear under Needs attention