Harvest

Harvest is a convenient cloud-based time tracking and invoicing tool, which has been designed for businesses of all sizes.

Data integration: Skyvia supports importing data to and from Harvest, exporting Harvest data to CSV files, replicating Harvest data to relational databases and synchronizing Harvest data with other cloud apps and relational databases.

Backup: Skyvia Backup does not support Harvest.

Query: Skyvia Query supports Harvest.

Establishing Connection

To create a connection with Harvest, log in to Harvest via OAuth authentication in Skyvia.

Creating Connection

To create a Harvest connection, perform the following steps:

Connection Editor window

  1. Click Sign In with Harvest
  2. In the opened window, sign in with your Harvest credentials or sign In with Google.

    Harvest Sign In window

  3. In the next window, click Authorize App to allow Skyvia to access your Harvest account.
  4. The authentication token is generated.

    Connection Editor window 2

Connector Specifics

Object Peculiarities

*Reports* Objects

The objects with the *Reports* part in their names, such as ExpenseReports_Categories, ExpenseReports_Clients, ExpenseReports_Projects, ExpenseReports_Teams, TimeReports_Clients, TimeReports_Projects, TimeReports_Tasks, TimeReports_Teams, UninvoicedReport are read-only. To get data from these objects, you must set filters by from and to fields. The specified time span must not exceed 365 days.

Invoices and Estimates

The LineItems field in the Invoices and Estimates objects stores complex structured data in JSON format. You can use our Nested Objects mapping feature in the Import integrations to insert or update the nested values in such fields. Select the Nested Objects checkbox in Import integration to enable this feature.

InvoiceMessages and EstimateMessages

The Recipients field in the InvoiceMessages and EstimateMessages objects stores complex structured data in JSON format. You can use our Nested Objects mapping feature in the Import integrations to insert or update the nested values in such fields. Select the Nested Objects checkbox in Import integration to enable this feature.

Filtering Specifics

Harvest supports the following native filters:

Object Operator Field
Contacts = ClientId
  >, >= UpdatedDate
Clients = IsActive
  >, >= UpdatedDate
Invoices = State, ClientId
  >, >= UpdatedDate
Projects = ClientId, IsActive
  >, >= UpdatedDate
Estimates = ClientId, State
  >, >= UpdatedDate
Tasks = IsActive
  >, >= UpdatedDate
Expenses = ClientId, UserId, ProjectId, IsBilled
  >, >= UpdatedDate
  >, >=, <, <= SpentDate
TimeEntries = ClientId, UserId, ProjectId, TaskId, ExternalReferenceId, IsBilled, IsRunning
  >, >=, <, <= SpentDate
  >, >= UpdatedDate
InvoiceItemCategories >, >= UpdatedDate

Use these filters to improve performance and save API calls. You can use filters with other fields or operators, but it may increase API call usage.

Incremental Replication and Synchronization

Skyvia supports Incremental Replication for the following Harvest objects: Clients, Contacts, EstimateItemCategories, EstimateMessages, Estimates, ExpensesCategories, Expenses, InvoiceItemCategories, InvoiceMessages, InvoicePayments, Invoices, Projects, ProjectTaskAssigment, ProjectUserAssigment, Roles, Tasks, TimeEntries, UserBillableRates, UserCostRates, Users.

Skyvia supports Synchronization for the following Harvest objects: Clients, Contacts, EstimateItemCategories, Estimates, ExpensesCategories, Expenses, Invoices, InvoiceItemCategories, Projects, ProjectTaskAssigment, ProjectUserAssigment, Roles, Tasks, TimeEntries, Users.

DML Operations Support

Operation Object
INSERT, UPDATE, DELETE Clients, Contacts, EstimateItemCategories, Estimates, ExpensesCategories, Expenses, InvoiceItemCategories, Invoices, Projects, ProjectTaskAssigment, ProjectUserAssigment, Roles, Tasks, TimeEntries, Users
INSERT, DELETE InvoiceMessages, InvoicePayments, EstimateMessages
INSERT UserBillableRates, UserCostRates

Stored Procedures

Skyvia represents part of the supported Harvest features as stored procedures. You can call a stored procedure, for example, as a text of the command in the ExecuteCommand action in a Target component of a Data Flow or in Query.

ChangeEventTypeInvoice

To change an invoice message event type, use the command

call ChangeEventTypeInvoice(:invoice_id,:event_type)

PARAMETER NAME DESCRIPTION
Invoice_Id The invoice identifier
Event_type The type of invoice event that occurred with the message. Valid values are draft, send, close, re-open

ChangeEventTypeEstimate

To change an estimate event type, use the command

call ChangeEventTypeEstimate(:estimate_id,:event_type)

PARAMETER NAME DESCRIPTION
Estimate_Id The invoice identifier
Event_type The type of estimate event that occurred with the message: send, accept, decline, re-open

RestartTimeEntry

Use the following command to restart a time entry

call RestartTimeEntry(:time_entry_id)

StopTimeEntry

Use the following command to stop a time entry

call StopTimeEntry(:time_entry_id)

Supported Actions

Skyvia supports all the common actions for Harvest.