Release Status Released Supported By Singer community
Availability Free Status Page Harvest Forecast Status Page
Default Historical Sync 1 year Default Replication Frequency 60 minutes
Whitelisting Unsupported Destination Incompatibilities None

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 Sync

The Sync Historical Data setting will define 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.

Stitch offers two methods of creating a replication schedule:

  • Replication Frequency: This method requires selecting the interval you want replication to run for the integration. Start times of replication jobs are based on the start time and duration of the previous job. Refer to the Replication Frequency documentation for more information and examples.
  • Anchor scheduling: Based on the Replication Frequency, or interval, you select, this method “anchors” the start times of this integration’s replication jobs to a time you select to create a predictable schedule. Anchor scheduling is a combination of the Anchor Time and Replication Frequency settings, which must both be defined to use this method. Additionally, note that:

    • A Replication Frequency of at least one hour is required to use anchor scheduling.
    • An initial replication job may not begin immediately after saving the integration, depending on the selected Replication Frequency and Anchor Time. Refer to the Anchor Scheduling documentation for more information.

To help prevent overages, 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 schemas

Replication Method: Key-based Incremental Replication Key : updated_at
Primary Key : id

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

id
INTEGER

The assignment ID.

updated_at
STRING

The time the assignment was last updated.

active_on_days_off
BOOLEAN

If true, the assignment takes place on a non-work day.

allocation
INTEGER

The number of hours allocated to the assignment.

end_date
STRING

The day the assignment ended.

notes
STRING

Any notes about the assignment.

project_id
INTEGER

The ID of the project associated with the assignment.

Reference:

person_id
INTEGER

The ID of the assignee.

Reference:

placeholder_id
INTEGER

If the assignment is a placeholder, this column will contain the placeholder ID.

repeated_assignment_set_id
INTEGER
start_date
STRING

The day the assignment started.

updated_by_id
INTEGER

The ID of the person who last updated the assignment.

Reference:


Replication Method: Key-based Incremental Replication Key : updated_at
Primary Key : id

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

id
INTEGER

The client ID.

Reference:

updated_at
STRING

The time the client was last updated.

archived
BOOLEAN

If true, the client has been archived.

harvest_id
INTEGER

The ID of the client in Harvest.

name
STRING

The name of the client.

updated_by_id
INTEGER

The ID of the person who last updated the client.

Reference:


Replication Method: Key-based Incremental Replication Key : updated_at
Primary Key : id

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

id
INTEGER

The milestone ID.

Reference:

updated_at
STRING

The time the milestone was last updated.

date
STRING

The date of the milestone.

name
STRING

The name of the milestone.

project_id
INTEGER

The ID of the project associated with the milestone.

Reference:

updated_by_id
INTEGER

The ID of the person who last updated the milestone.

Reference:


Replication Method: Key-based Incremental Replication Key : updated_at
Primary Key : id

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

id
INTEGER

The person ID.

Reference:

updated_at
STRING

The last time the person was updated.

admin
BOOLEAN

If true, the person is an admin in Harvest Forecast.

archived
BOOLEAN

If true, the person has been archived.

avatar_url
STRING

The full URL of the avatar associated with the person.

color_blind
STRING

Indicates if the person uses Harvest Forecast’s color blind-friendly version of the heat map feature.

email
STRING

The email address associated with the person.

first_name
STRING

The person’s first name.

harvest_user_id
INTEGER

The ID of the person in Harvest.

last_name
STRING

The person’s last name.

login
STRING
personal_feed_token_id
INTEGER
roles

A list of the roles assigned to the person.

If your destination doesn't natively support nested data, this data may be denested into a subtable named people__roles. Refer to the Singer schema for details on possible attributes.

_sdc_source_key_id
INTEGER

The person ID.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

value
STRING

The name of the role assigned to the person.

subscribed
BOOLEAN

If true, the person is subscribed to the weekly schedule digest.

updated_by_id
STRING

The ID of the person who last updated the person.

Reference:

weekly_capacity
INTEGER

The total number of hours the person is available during the week.

working_days__monday
BOOLEAN

If true, the person is available to work on Mondays.

working_days__tuesday
BOOLEAN

If true, the person is available to work on Tuesdays.

working_days__wednesday
BOOLEAN

If true, the person is available to work on Wednesdays.

working_days__thursday
BOOLEAN

If true, the person is available to work on Thursdays.

working_days__friday
BOOLEAN

If true, the person is available to work on Fridays.

working_days__saturday
BOOLEAN

If true, the person is available to work on Saturdays.

working_days__sunday
BOOLEAN

If true, the person is available to work on Sundays.


Replication Method: Key-based Incremental Replication Key : updated_at
Primary Key : id

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

id
INTEGER

The project ID.

Reference:

updated_at
STRING

The time the project was last updated.

archived
BOOLEAN

If true, the project has been archived.

code
STRING

The code associated with the project.

color
STRING

The color label associated with the project.

client_id
INTEGER

The ID of the client associated with the project.

Reference:

end_date
STRING

The end date of the project.

harvest_id
INTEGER

The ID of the project in Harvest.

name
STRING

The name of the project.

notes
STRING

Any notes about the project.

start_date
STRING

The start date of the project.

tags

A list of the tags associated with the project.

If your destination doesn't natively support nested data, this data may be denested into a subtable named projects__tags. Refer to the Singer schema for details on possible attributes.

_sdc_source_key_id
INTEGER

The project ID.

_sdc_level_0_id
INTEGER

This column forms part of a composite key for the table. The value will auto-increment for each unique record, beginning with 0.

value
STRING

The tag associated with the project.

updated_by_id
STRING

The ID of the person who last updated the project.

Reference:



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.