cancel
Showing results for 
Search instead for 
Did you mean: 
intapiuser
Community Team Member
Community Team Member
Harvest Rest API Connector
 
Harvest provides an API framewok to support valid applications connecting and in our case pulling data for analytics.  
This Rest configuration will allow you to pull from the Harvest Rest API service.  Please refer to provided sample file for setup.
Installing the connector
  1. Download connector files
  2. Copy the folder to the following location where Sisense is installed:
                ...\Program Files\Sisense\DataConnectors\DotNetContainer\Connectors
Harvest Setup
The connector uses HTTP Basic Authentication.  The user will need to setup the authentication string.  Directions can be found below.
Server Setup
  • Add folder to data connectors folder  (Program Files\Sisense\DataConnectors\DotNetContainer\Connectors\Rest.Harvest.Connector)
  • Add the config file.  (config.json already included in the download)
  • Include Connector DLL per documentation (already included in the download).
 
rest Config File
There are two sections that can be edited.  
First is the URL and Authorization.  You will need to fill in the subdomain and authentication string.
"Settings": {
 "Provider": "rest.Harvest.connector",
 "DisplayName": "Harvest", 
 "MaxDocs": 100,
 "FetchSize": 1000,
 "Parameters": {
 "url": "https://<YourWebsiteHere>.Harvestapp.com",
 "Authorization": "Basic <Your Authentication String Here>"
 }
 }
Second is the time frame for Timesheets and Expenses tables.  It is currently set to all of 2016, however this can be changed.  The ?from= can be changed to include more or less dates.
{
 "Name": "Timesheets",
 "Schema": "Https",
 "Method": "GET",
 "Public": "False",
 "Base": "[@Settings.Parameters.url]",
 "Path": "/projects/{0}/entries?from=20160101&to=20161231",
 "Headers": {
 "Accept": "application/json",
 "Content-Type": "application/json",
 "Authorization": "[@Settings.Parameters.Authorization]"
 },
 "PathParameters": ["[@Tables.Projects.@~Doc.project.id]"],
 "Body": {},
 "DataFormat": "Json",
 "DataPath": "results"
 },
{
 "Name": "Expenses",
 "Schema": "Https",
 "Method": "GET",
 "Public": "False",
 "Base": "[@Settings.Parameters.url]",
 "Path": "/projects/{0}/expenses?from=20160101&to=20161231",
 "Headers": {
 "Accept": "application/json",
 "Content-Type": "application/json",
 "Authorization": "[@Settings.Parameters.Authorization]"
 },
 "PathParameters": ["[@Tables.Projects.@~Doc.project.id]"],
 "Body": {},
 "DataFormat": "Json",
 "DataPath": "results"
 }
Tables
All of the major points of data are included in the connector.
  • Clients
  • Expense_Categories
  • Invoices
  • Projects
  • Expenses
  • Timesheets
  • User_Assignments
  • Tasks
  • Users
 
Additional Notes
  • When first clicking on the Harvest data source in the ElastiCube manager, it may take a few minutes for the table selection window to come up.  This is due to the APIs collecting Project IDs to later reference.  
  • To ensure that the connector is working, check to see if logs are being created here: C:\ProgramData\Sisense\DataConnectors\DotNetContainer\Logs
  • This functionality is intended for REST API developers and requires knowledge about REST APIs.
Rate this article:
Version history
Last update:
‎02-13-2024 11:53 AM
Updated by: