Harvest Forecast integration summary

Stitch’s Harvest Forecast integration replicates data using the Harvest Forecast Experimental API. Refer to the Schema section for a list of objects available for replication.

Harvest Forecast feature snapshot

A high-level look at Stitch's Harvest Forecast (v1) integration, including release status, useful links, and the features supported in Stitch.

STITCH
Release status

Released on September 18, 2018

Supported by

Singer Community

Stitch plan

Standard

API availability

Available

Singer GitHub repository

singer-io/tap-harvest-forecast

REPLICATION SETTINGS
Anchor Scheduling

Supported

Advanced Scheduling

Unsupported

Table-level reset

Unsupported

Configurable Replication Methods

Unsupported

DATA SELECTION
Table selection

Unsupported

Column selection

Unsupported

Select all

Unsupported

TRANSPARENCY
Extraction Logs

Supported

Loading Reports

Supported

Connecting Harvest Forecast

Harvest Forecast setup requirements

To set up Harvest Forecast in Stitch, you need:

  • A Harvest account with access to Harvest Forecast. Your Harvest ID will be used to authorize the integration using OAuth.


Step 1: Add Harvest Forecast as a Stitch data source

  1. Sign into your Stitch account.
  2. On the Stitch Dashboard page, click the Add Integration button.

  3. Click the Harvest Forecast icon.

  4. Enter a name for the integration. This is the name that will display on the Stitch Dashboard for the integration; it’ll also be used to create the schema in your destination.

    For example, the name “Stitch Harvest Forecast” would create a schema called stitch_harvest_forecast in the destination. Note: Schema names cannot be changed after you save the integration.

  5. Enter your Harvest Forecast account ID in the Harvest Forecast Account ID field. For example: If your Harvest Forecast account shows the URL as forecastapp.com/123456/schedule/projects, you’d enter 123456 in this field.

Step 2: Define the historical replication start date

The Sync Historical Data setting defines the starting date for your Harvest Forecast integration. This means that data equal to or newer than this date will be replicated to your data warehouse.

Change this setting if you want to replicate data beyond Harvest Forecast’s default setting of 1 year. For a detailed look at historical replication jobs, check out the Syncing Historical SaaS Data guide.

Step 3: Create a replication schedule

In the Replication Frequency section, you’ll create the integration’s replication schedule. An integration’s replication schedule determines how often Stitch runs a replication job, and the time that job begins.

Harvest Forecast integrations support the following replication scheduling methods:

To keep your row usage low, consider setting the integration to replicate less frequently. See the Understanding and Reducing Your Row Usage guide for tips on reducing your usage.

Step 4: Authorize Stitch to Access Harvest Forecast

Lastly, you’ll be directed to Harvest’s website to complete the setup.

  1. If not already logged into Harvest Forecast, enter your credentials and click Sign In.
  2. A screen asking for authorization to Forecast will display. Note that Stitch will only ever read your data.
  3. Click Connect.
  4. After the authorization process successfully completes, you’ll be redirected back to Stitch.
  5. Click All Done.

Initial and historical replication jobs

After you finish setting up Harvest Forecast, its Sync Status may show as Pending on either the Stitch Dashboard or in the Integration Details page.

For a new integration, a Pending status indicates that Stitch is in the process of scheduling the initial replication job for the integration. This may take some time to complete.

Free historical data loads

The first seven days of replication, beginning when data is first replicated, are free. Rows replicated from the new integration during this time won’t count towards your quota. Stitch offers this as a way of testing new integrations, measuring usage, and ensuring historical data volumes don’t quickly consume your quota.


Harvest Forecast table reference

assignments

The assignments table contains info about the assignments assigned to the people in your Harvest Forecast account.

Replication Method

Full Table

Primary Key

id

Useful links

Harvest Forecast documentation

assignments schema on GitHub

Join assignments with on
clients
assignments.person_id = clients.updated_by_id
assignments.updated_by_id = clients.updated_by_id
milestones
assignments.person_id = milestones.updated_by_id
assignments.updated_by_id = milestones.updated_by_id
assignments.project_id = milestones.project_id
people
assignments.person_id = people.id
assignments.updated_by_id = people.id
assignments.person_id = people.updated_by_id
assignments.updated_by_id = people.updated_by_id
projects
assignments.person_id = projects.updated_by_id
assignments.updated_by_id = projects.updated_by_id
assignments.project_id = projects.id
placeholders
assignments.person_id = placeholders.updated_by_id
assignments.updated_by_id = placeholders.updated_by_id
assignments.placeholder_id = placeholders.id
roles
assignments.person_id = roles.updated_by_id
assignments.updated_by_id = roles.updated_by_id
assignments.placeholder_id = roles.placeholder_ids

active_on_days_off

BOOLEAN

allocation

INTEGER

end_date

DATE-TIME

id

INTEGER

notes

STRING

person_id

INTEGER

placeholder_id

INTEGER

project_id

INTEGER

repeated_assignment_set_id

INTEGER

start_date

DATE-TIME

updated_at

DATE-TIME

updated_by_id

INTEGER

clients

The clients table contains info about the clients in your Harvest Forecast account.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updated_at

Useful links

Harvest Forecast documentation

clients schema on GitHub

Join clients with on
projects
clients.id = projects.client_id
clients.updated_by_id = projects.updated_by_id
assignments
clients.updated_by_id = assignments.person_id
clients.updated_by_id = assignments.updated_by_id
milestones
clients.updated_by_id = milestones.updated_by_id
people
clients.updated_by_id = people.id
clients.updated_by_id = people.updated_by_id
placeholders
clients.updated_by_id = placeholders.updated_by_id
roles
clients.updated_by_id = roles.updated_by_id

archived

BOOLEAN

harvest_id

INTEGER

id

INTEGER

name

STRING

updated_at

DATE-TIME

updated_by_id

INTEGER

milestones

The milestones table contains info about the project milestones in your Harvest Forecast account.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updated_at

Useful links

Harvest Forecast documentation

milestones schema on GitHub

Join milestones with on
assignments
milestones.updated_by_id = assignments.person_id
milestones.updated_by_id = assignments.updated_by_id
milestones.project_id = assignments.project_id
clients
milestones.updated_by_id = clients.updated_by_id
people
milestones.updated_by_id = people.id
milestones.updated_by_id = people.updated_by_id
projects
milestones.updated_by_id = projects.updated_by_id
milestones.project_id = projects.id
placeholders
milestones.updated_by_id = placeholders.updated_by_id
roles
milestones.updated_by_id = roles.updated_by_id

date

DATE-TIME

id

INTEGER

name

STRING

project_id

INTEGER

updated_at

DATE-TIME

updated_by_id

INTEGER

people

The people table contains info about the people in your Harvest Forecast account.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updated_at

Useful links

Harvest Forecast documentation

people schema on GitHub

Join people with on
assignments
people.id = assignments.person_id
people.updated_by_id = assignments.person_id
people.id = assignments.updated_by_id
people.updated_by_id = assignments.updated_by_id
clients
people.id = clients.updated_by_id
people.updated_by_id = clients.updated_by_id
milestones
people.id = milestones.updated_by_id
people.updated_by_id = milestones.updated_by_id
projects
people.id = projects.updated_by_id
people.updated_by_id = projects.updated_by_id
placeholders
people.id = placeholders.updated_by_id
people.updated_by_id = placeholders.updated_by_id
people.roles = placeholders.roles
roles
people.id = roles.updated_by_id
people.updated_by_id = roles.updated_by_id
people.roles = roles.id

admin

BOOLEAN

archived

BOOLEAN

avatar_url

STRING

color_blind

STRING

email

STRING

first_name

STRING

harvest_user_id

INTEGER

id

INTEGER

last_name

STRING

login

STRING

personal_feed_token_id

INTEGER

roles

ARRAY

subscribed

BOOLEAN

updated_at

DATE-TIME

updated_by_id

STRING

weekly_capacity

INTEGER

working_days

OBJECT

friday

BOOLEAN

monday

BOOLEAN

saturday

BOOLEAN

sunday

BOOLEAN

thursday

BOOLEAN

tuesday

BOOLEAN

wednesday

BOOLEAN

placeholders

The placeholders table contains info about the placeholders in your Harvest Forecast account.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updated_at

Useful links

placeholders schema on GitHub

Join placeholders with on
assignments
placeholders.updated_by_id = assignments.person_id
placeholders.updated_by_id = assignments.updated_by_id
placeholders.id = assignments.placeholder_id
clients
placeholders.updated_by_id = clients.updated_by_id
milestones
placeholders.updated_by_id = milestones.updated_by_id
people
placeholders.updated_by_id = people.id
placeholders.updated_by_id = people.updated_by_id
placeholders.roles = people.roles
projects
placeholders.updated_by_id = projects.updated_by_id
roles
placeholders.updated_by_id = roles.updated_by_id
placeholders.id = roles.placeholder_ids
placeholders.roles = roles.id

archived

BOOLEAN

id

INTEGER

name

STRING

roles

ARRAY

updated_at

DATE-TIME

updated_by_id

INTEGER

projects

The projects table contains info about the projects in your Harvest Forecast account.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updated_at

Useful links

Harvest Forecast documentation

projects schema on GitHub

Join projects with on
clients
projects.client_id = clients.id
projects.updated_by_id = clients.updated_by_id
assignments
projects.updated_by_id = assignments.person_id
projects.updated_by_id = assignments.updated_by_id
projects.id = assignments.project_id
milestones
projects.updated_by_id = milestones.updated_by_id
projects.id = milestones.project_id
people
projects.updated_by_id = people.id
projects.updated_by_id = people.updated_by_id
placeholders
projects.updated_by_id = placeholders.updated_by_id
roles
projects.updated_by_id = roles.updated_by_id

archived

BOOLEAN

client_id

INTEGER

code

STRING

color

STRING

end_date

DATE-TIME

harvest_id

INTEGER

id

INTEGER

name

STRING

notes

STRING

start_date

DATE-TIME

tags

ARRAY

updated_at

DATE-TIME

updated_by_id

INTEGER

roles

The roles table contains info about the roles in your Harvest Forecast account.

Replication Method

Full Table

Primary Key

id

Useful links

roles schema on GitHub

Join roles with on
assignments
roles.updated_by_id = assignments.person_id
roles.updated_by_id = assignments.updated_by_id
roles.placeholder_ids = assignments.placeholder_id
clients
roles.updated_by_id = clients.updated_by_id
milestones
roles.updated_by_id = milestones.updated_by_id
people
roles.updated_by_id = people.id
roles.updated_by_id = people.updated_by_id
roles.id = people.roles
projects
roles.updated_by_id = projects.updated_by_id
placeholders
roles.updated_by_id = placeholders.updated_by_id
roles.placeholder_ids = placeholders.id
roles.id = placeholders.roles

harvest_role_id

INTEGER

id

INTEGER

name

STRING

person_ids

ARRAY

placeholder_ids

ARRAY

updated_at

DATE-TIME

updated_by_id

INTEGER


Questions? Feedback?

Did this article help? If you have questions or feedback, feel free to submit a pull request with your suggestions, open an issue on GitHub, or reach out to us.