Skip to main content
FAQ: Harvest Actuals Integration

Understand how Harvest Actuals are synchronized with Runn

Rowan Savage avatar
Written by Rowan Savage
Updated over a week ago

Quick start

  1. We suggest you import all your clients, projects and people first.

  2. Check your people to find any with "Unknown" role. Correct this by either changing their role to an existing role or creating a new role.

  3. Go back to the integrations page, and turn on Actuals sync.

  4. Save and wait for your actuals to sync up.

How Actuals are matched between Harvest and Runn

Runn will automatically try to import all time entries from Harvest. However, due to the differences between the systems, we may not always be able to match a time entry.

Runn follows these rules for matching:

  • All Harvest tasks are combined into a single day entry within Runn.

  • If a person only has a single role assigned to them within the project, the time will be allocated to this role.

  • If a person has no role allocated within the project, Runn will use the person's primary role.

  • If a person has multiple roles in a project, Runn will use the person's primary role.

  • If the project or person does not exist in Runn, the time entry will be discarded.


Why are there small variations in the actuals imported from Harvest to Runn?

This is likely because Runn rounds to the nearest minute on a per-entry basis.

We don’t record to the second. If for example you had 3 entries that were recorded as:

  • 10m 20s

  • 10m 20s

  • 10m 20s

We would record this as 30 minutes. Not 31 minutes.

What happens if I change a time entry in Harvest after it is imported?
Runn will update its record to match Harvest, as long as the entry is not more than 45 days old when it is changed.

Does Runn handle approved and unapproved time entries differently?
No. Runn will import the entry as soon as it is entered. If it is changed before being approved, this change will automatically come across to Runn.

Can I see what tasks were completed on a date?
No. Runn does not currently record the tasks individually. Instead, it merges all tasks together into a role.

What happens if I change the Actual entry within Runn?
Any actuals manually entered in Runn will automatically be overwritten by the Harvest time entry next time the data is synchronized.

Can I force the actual import to happen immediately after entering them in Harvest?
Yes. Go to a project and click the "Sync Actuals" button. This will sync actuals across all projects.

How often should I enter my time entries in Harvest?
As long as they are entered at least once a month, Runn will import correctly. However, we suggest the more often the better. Daily if possible. This will allow Runn to recognize any potential performance issues, such as working under or over-scheduled hours, or if you are tracking to go over budget.

What time specifically will the sync happen each day?

We can’t provide a timeframe of when it will happen beyond “within 24hrs” - our integration cycles through the accounts throughout the day. So depending on where an account is in the queue, how long it takes, and what other integrations are queued up it can happen anytime.

Can I initiate the sync the time data of a specific person/project immediately?

Yes you can go to the Person or Project page — and at the top there is a “Sync People” or “Sync Project” button. This will perform the sync right away with the latest data.

How far back are Actuals synced?
On the initial sync, Runn imports approximately 6 months of data for active projects. However, the exact history will depend on factors such as if people are still active within your account. Once the initial sync is complete, the daily sync imports data for active projects going back 1 month.

How come I see X's next for completed timesheets?
Runn and Harvest treat time different. In Runn you must enter 0 when work was scheduled and not completed. While in Harvest, no entry means 0.

Runn will automatically attempt to add 0 for you, however there are edge cases that it will missing. Primarily when someone was scheduled to do work, but never did any work on a project.

You must manually go in and enter 0 for these days. They will be highlighted in red. The simplest way is to enter 0 in every empty space, but it is only required to enter 0 when there is scheduled hours on the same day.

I see 0 has been entered for our staff - even though their timesheets haven't been completed in Harvest.

To ensure that Runn shows the same totals as Harvest, when you enable an integration we turn on an account setting called "Autofill Actuals". At the end of each week, we will automatically set any dates we are missing with 0 hours completed. This will remain until the user enters their real hours into Harvest - in which case 0 will be overwritten within 24 hours. For more detailed explanation of missing actuals, or to turn it off see our Missing Actuals help doc.

Additional actuals appearing in Runn compared to Harvest?

There are some edge cases that our integration does not handle. However this should be rare, and easily picked up by a project manager who is keeping an eye on the project performance.

The two main ones you may encounter are:

  1. Someone adds time to the wrong project. Then deletes the time and adds it to a different project.

    1. Unfortunate Runn is unable to delete times off - as the API we use does not inform us of deletions. Instead this will need to be manually corrected in Runn.

  2. Someone has time repeated against two roles in a project

    1. Runn will try and find the best role to put the time against. However, if someone changed roles half-way through a project (such as intermediate to senior) and after the data was imported, someone went back and changed their role on the project - next time we run the import - it will see there is no data against their new role and import that as well. To fix this you can delete the time entries against the old role.

    2. You can avoid this situation by pro-actively change their role on the project before the change occurs. For example, if they are going to change to senior in two weeks. Update the plan to have them as senior starting from two weeks. Then Runn will match up the role correctly based on the role they were assigned on the day of the actual.

Can I pull in rates from Harvest?

Unfortunately we can not pull in rates from Harvest, as they do rates differently to Runn.

Runn does rates per role, while Harvest doesn’t have roles, and does rates either per person, per task, or a single rate across the project.

The rates we generate for projects pulled in from Harvest will come from the “Standard Rate Card” in Runn.

If you have a set of standard rates you use per role, you can set that up in Runn and they should appear on the Standard Rate Card in Runn. Then as you import the projects from Harvest, you should see the project rates populated by the Standard Rate Card.

What if a duplicate project is accidentally imported by Harvest sync?

You can delete the project that was imported by Harvest and then add the Harvest ID to the project that was created in Runn. This way, next time it syncs, the actuals will appear on the correct project.

Did this answer your question?