Harvest’s simple online time tracking software makes it easy to track billable hours, manage invoices, and streamline expense reports. Here are some things you can expect from the Harvest/Grow integration.
NOTE: This data source is only available for accounts on the Professional plans. If you would like to upgrade your plan, talk to your Grow account manager or visit your account's billing page.
How to Connect
Before connecting please collect your Harvest Subdomain, Email and Password.
- On the respective dashboard, click "Add Metric". Select Harvest from the data source list. Click "Connect".
- Fill out the requisite information in the authorization popup window. You will need your Harvest Subdomain, Email and Password.
- Once your Harvest account is connected, start building your metrics!
And that’s it. You are good to go!
Below is a list of the reports you can pull from Harvest, along with a description of the fields available with each report.
- ClientContacts: All contacts attached to client accounts, including client ID, name, phone, contact details, company, etc.
- Clients: All clients, including ID, name, active, currency, updated date, created date, statement key, default invoice kind, default invoice timeframe, address, delete date, currency symbol, details, last invoice kind, etc.
- Expenses: All expense items matching the selected date range, including ID, total cost, units, created date, updated date, project ID, expense category, user, spent date, is closed, notes, billable, company, has receipt, is locked, locked reason, project, client name, etc.
- ExpenseCategories: All expense categories, including ID, name, unit name, unit price, created date, updated date, and deactivated.
- InvoiceCategories: All invoice categories, including ID, name, created date, updated date, use as service, and use as expense.
- Invoices: All invoices created within the selected date range, including issue date, created date, due date, amount due, etc.
- People: All persons of interest, including ID, email, created date, company, is admin, name, timezone, is contractor, phone, is active, has access to future projects, default hourly rate, department, preferred entry method, preferred approval screen, updated date, first timer, is project manager, can see rates, can create invoices, can create projects, cost rate, weekly capacity, etc.
- Projects: All projects, including ID, client name, code, active, bill by, budget, budget by, over budget notification percentage, over budget notified date, show budget to all, created date, updated date, start date, end date, estimate, estimate by, is fixed fee, billable, notes, hourly rate, cost budget, cost budget include expenses, etc.
- Tasks: All tasks, including ID, name, billable by default, created date, updated date, is default, default hourly rate, and deactivated.
- Time Entries: All time entries for the selected date range and client(s), including ID, notes, spent date, hours, user, project, task, created date, adjustment record, is closed, is billed, hours with timer, etc.
- Time Entries by User For Timeframe: All time entries matching the selected date range and user(s), including ID, notes, spent date, hours, user, project, task, created date, adjustment record, is closed, is billed, hours with timer, etc.
- Time Entries No Billable Info: All time entries lacking billable information for the selected client(s), including ID, notes, spent date, hours, user, project, task, created date, adjustment record, is closed, is billed, hours with timer, etc.
- User Assignments: All user assignments for the selected project(s), including assignment ID, user, project, is project manager, deactivated, hourly rate, budget, created date, updated date, and estimate.
- Task Assignments: All task assignments for the selected project(s), including task assignment ID, project and task ID, billable, deactivated, hourly rate, budget, created date, updated date, and estimate.
FAQs + Tips and Tricks
The Time Entries endpoint is sometimes slow.
If you have lots of users and lots of projects, it will be easier if you are very specific in what you want pull in. If you can limit the data to what you are actually planning on visualizing, the data will pull in faster. We suggest using the endpoint “Time Entries by User,” but you can do according to your needs.
Invoices data comes in based on the “inserted_at” data.
If you use the custom date range and group by any other date (created_at, updated_at, due_at), then you’ll see some extra dates and will have to use SQL to limit the data further. The best practice is to filter based on the "inserted_at" column.
Grow uses Harvest v1.
This means that some “billable” data is going to be tricky to get. A workaround we’ve used is to bring in time entries by user in report1, then the project list in a second report. After you’ve done this, do a join to see which time entries are marked as billable and which aren’t.
Harvest Hours Numbers Not Matching
Harvest gives users the option to round up to half hour increments. You can know if you are using rounding if you see this on your Harvest dashboard:
Then to get the numbers to match, we need to round our numbers in Grow. But it is not that simple. If in a given week, if someone works 20 minutes on an account, 10 times. (200 minutes, or 3 Hours and 20 Minutes) then Harvest will round it up to 3 hours and 30 minutes. Harvest does NOT round up each individual 20 minutes to 30 minutes. That would be 300 minutes, very far off from the exact amount. You need to find out what time frame is being rounded (weekly, monthly, invoice period?) and round the data in Grow accordingly.