This integration is powered by Singer's Harvest Forecast tap. For support, visit the GitHub repo or join the Singer Slack.
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 | |
Stitch plan |
Standard |
API availability |
Available |
Singer GitHub repository | |||
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
- Sign into your Stitch account.
-
On the Stitch Dashboard page, click the Add Integration button.
-
Click the Harvest Forecast icon.
-
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. - 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 enter123456
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:
- For tables using Key-based Incremental Replication, data equal to or newer than this date will be replicated to your destination.
- For tables using Full Table Replication, all data - including records that are older, equal to, or newer than this date - will be replicated to your destination.
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.
- If not already logged into Harvest Forecast, enter your credentials and click Sign In.
- A screen asking for authorization to Forecast will display. Note that Stitch will only ever read your data.
- Click Connect.
- After the authorization process successfully completes, you’ll be redirected back to Stitch.
- 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.
Initial replication jobs with Anchor Scheduling
If using Anchor Scheduling, an initial replication job may not kick off immediately. This depends on the selected Replication Frequency and Anchor Time. Refer to the Anchor Scheduling documentation for more information.
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
Schemas and versioning
Schemas and naming conventions can change from version to version, so we recommend verifying your integration’s version before continuing.
The schema and info displayed below is for version 1 of this integration.
This is the latest version of the Harvest Forecast integration.
Table and column names in your destination
Depending on your destination, table and column names may not appear as they are outlined below.
For example: Object names are lowercased in Redshift (CusTomERs
> customers
), while case is maintained in PostgreSQL destinations (CusTomERs
> CusTomERs
). Refer to the Loading Guide for your destination for more info.
assignments
Replication Method : |
Full Table |
Primary Key |
id |
Official docs : |
The assignments
table contains info about the assignments assigned to the people in your Harvest Forecast account.
id
The assignment ID. |
updated_at
The time the assignment was last updated. |
active_on_days_off
If |
allocation
The number of hours allocated to the assignment. |
end_date
The day the assignment ended. |
notes
Any notes about the assignment. |
project_id
The ID of the project associated with the assignment. Reference: |
person_id
The ID of the assignee. Reference: |
placeholder_id
If the assignment is a placeholder, this column will contain the placeholder ID. Reference: |
repeated_assignment_set_id
|
start_date
The day the assignment started. |
updated_by_id
The ID of the person who last updated the assignment. Reference: |
clients
Replication Method : |
Key-based Incremental |
Replication Key |
updated_at |
Primary Key |
id |
Official docs : |
The clients
table contains info about the clients in your Harvest Forecast account.
id
The client ID. Reference: |
updated_at
The time the client was last updated. |
archived
If |
harvest_id
The ID of the client in Harvest. |
name
The name of the client. |
updated_by_id
The ID of the person who last updated the client. Reference: |
milestones
Replication Method : |
Key-based Incremental |
Replication Key |
updated_at |
Primary Key |
id |
Official docs : |
The milestones
table contains info about the project milestones in your Harvest Forecast account.
id
The milestone ID. |
updated_at
The time the milestone was last updated. |
date
The date of the milestone. |
name
The name of the milestone. |
project_id
The ID of the project associated with the milestone. Reference: |
updated_by_id
The ID of the person who last updated the milestone. Reference: |
people
Replication Method : |
Key-based Incremental |
Replication Key |
updated_at |
Primary Key |
id |
Official docs : |
The people
table contains info about the people in your Harvest Forecast account.
id
The person ID. Reference: |
|||||||
updated_at
The last time the person was updated. |
|||||||
admin
If |
|||||||
archived
If |
|||||||
avatar_url
The full URL of the avatar associated with the person. |
|||||||
color_blind
Indicates if the person uses Harvest Forecast’s color blind-friendly version of the heat map feature. |
|||||||
email
The email address associated with the person. |
|||||||
first_name
The person’s first name. |
|||||||
harvest_user_id
The ID of the person in Harvest. |
|||||||
last_name
The person’s last name. |
|||||||
login
|
|||||||
personal_feed_token_id
|
|||||||
roles
A list of the roles assigned to the person.
|
|||||||
subscribed
If |
|||||||
updated_by_id
The ID of the person who last updated the person. Reference: |
|||||||
weekly_capacity
The total number of hours the person is available during the week. |
|||||||
working_days
Details about the person’s availability during the week.
|
placeholders
Replication Method : |
Key-based Incremental |
Replication Key |
updated_at |
Primary Key |
id |
Official docs : |
The placeholders
table contains info about the placeholders in your Harvest Forecast account.
id
The placeholder ID. Reference: |
|
updated_at
The date the placeholder was last updated. |
|
archived
Whether or not the placeholder has been archived. |
|
name
The placeholder name. |
|
roles
Details about the role.
|
|
updated_by_id
The ID of the person who updated the placeholder. Reference: |
projects
Replication Method : |
Key-based Incremental |
Replication Key |
updated_at |
Primary Key |
id |
Official docs : |
The projects
table contains info about the projects in your Harvest Forecast account.
id
The project ID. Reference: |
updated_at
The time the project was last updated. |
archived
If |
code
The code associated with the project. |
color
The color label associated with the project. |
client_id
The ID of the client associated with the project. Reference: |
end_date
The end date of the project. |
harvest_id
The ID of the project in Harvest. |
name
The name of the project. |
notes
Any notes about the project. |
start_date
The start date of the project. |
tags
A list of the tags associated with the project.
projects (table), tags (attribute)
|
updated_by_id
The ID of the person who last updated the project. Reference: |
Replication Method : |
Full Table |
Primary Key |
id |
Official docs : |
The roles
table contains info about the roles in your Harvest Forecast account.
id
The role ID. Reference: |
|
harvest_role_id
The ID of the role in Harvest. |
|
name
The name of the role. |
|
person_ids
IDs of the persons associated with the role.
|
|
placeholder_ids
IDs of the placeholders associated with the role.
|
|
updated_at
The time the role was last updated. |
|
updated_by_id
The ID of the user who last updated the role. Reference: |
Related | Troubleshooting |
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.