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: Harvest is supported by a third-party ETL called StitchData. To learn more, click here.
How to Connect
Before connecting please collect your Harvest Subdomain, Email and Password.
- Click on the Data tab at the top left of the global navigation. You will be brought to your Data Connections.
- Click on the blue "Connect" button and search for Harvest.
- Click on the Harvest logo.
- In the initial popup window, enter your Harvest Subdomain and click "Connect".
- You will see a pop-up asking to login (if you're not currently logged in to your Harvest account) then for authorization for Grow to access the data in your Harvest account. Click "Authorize App"
- You will see a green confirmation message that the connection has been made.
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, address, delete date, details, 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 is_active.
- 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, 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, show budget to all, created date, updated date, start date, end date, 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, and default hourly rate.
- Time Entries: All time entries for the selected date range and client(s), including ID, notes, spent date, hours, user, project, task, created date, 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, 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, deactivated, hourly rate, budget, created date, and updated date.
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.
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.