This guide explains how to automatically update a Harvestr Discovery’s status when the status of a linked item changes in a Notion database.
Once configured, updating the status of an item in a Notion database will automatically update the linked Discovery in Harvestr
What you need
In Notion
A database with at least:
a Status property
a Harvestr URL property that will contain the URL of the Harvestr Discovery you want to sync
In Harvestr
a Notion URL property that will contain the URL of the Harvestr Discovery you want to sync. This field is not required for the Notion to Harvestr sync, but it is useful if you also want to keep the relationship visible in Harvestr or support a sync in the other direction later.
You need:
a Harvestr API token with read discovery access so you can list discovery states
a Harvestr API token with permission to update discoveries
Permissions
You also need:
a Zapier account with access to Webhooks by Zapier
a Harvestr account with Editor permissions
How linking works
Whenever you want to sync a Discovery with a Notion item:
paste the Harvestr Discovery URL into the Harvestr URL field on the Notion item (required)
paste the Notion item URL into the Notion URL field on the Discovery in Harvestr (optional)
How to set up the sync
Step 1: Configure the trigger in Notion
In Zapier, click Create Zap.
For the trigger, choose:
App: Notion
Trigger event: Updated Properties in Data Source Item
Then configure the trigger:
for Data Source, select the data table that contains the items you want to sync with your Discoveries
for Properties to watch, select your Notion Status property
This means the Zap will only run when the status of one of those Notion items changes.
Step 2: Filter on linked items only
Add a Filter by Zapier step.
Set the condition to continue only when:
Properties Harvestr URL exists
This ensures the Zap only runs for Notion items that are actually linked to a Harvestr Discovery.
Step 3: Extract the Discovery ID from the Harvestr URL
The Harvestr URL field in Notion should contain the URL of the linked Discovery with its ID.
To extract the ID, add a Zapier step:
Formatter by Zapier
Event: Text
Transform: Extract Pattern
Input: Your Harvestr URL field
Pattern:
(?:[?&]v=|/)([A-Za-z0-9_-]+)$
Leave all the other paramaters as they are
Test to see if the Discovery ID is extracted from the Harvestr URL.
Step 4: Map the Notion status to a Harvestr Discovery State ID
First, get your Harvestr discovery state IDs
Go to your Harvestr API settings and create a read_discovery API token.
Use the list discovery states API endpoint from our docs to list your discovery states:
click Authorize and your token
click Execute and keep the corresponding state IDs available for the next steps
In Zapier
Add a step:
Formatter by Zapier
Action event: Utilities
Transform: Lookup Table
Lookup key: Your Notion Status property
Lookup table setup
In the left column, put your Notion status names.
In the right column, put the corresponding Harvestr discovery state IDs retrieved from the API.
Example:
Notion status | Harvestr discoveryStateId |
Planned | abc |
In progress | xyz |
Done | 123 |
The output of this step will be the correct Harvestr discoveryStateId.
Step 5: Update the Discovery in Harvestr
Add a final step:
Webhooks by Zapier
Action event: Custom Request
Configure it like this:
Method
PATCH
URL
https://rest.harvestr.io/v1/discovery/<DISCOVERY_ID>
Use the Discovery ID extracted in Step 3.
Data
Use raw JSON:
{
"discoveryStateId": "<MAPPED_DISCOVERY_STATE_ID>"
}Replace <MAPPED_DISCOVERY_STATE_ID> with the output of the lookup table from Step 4.
Headers
Create a new write_discovery token
In Zapier, add the following header with the token you've just created:
X-Harvestr-Private-App-Token | YOUR_API_TOKEN |
Step 6: Test the Zap
To test the setup:
Update the status of a linked item in Notion
Check that the linked Discovery status is updated in Harvestr
Troubleshooting
The Zap does not trigger
Make sure you selected:
Updated Properties in Data Source Item
the correct Notion table
the correct Status property in "Properties to watch"
The Zap runs but nothing updates in Harvestr
Check that:
the Notion item has a valid Harvestr URL
the Discovery ID extraction works correctly
the lookup table contains the correct Harvestr discovery state IDs
your Harvestr API token has the right permissions
The wrong status is applied
Review the lookup table and confirm that each Notion status name is mapped to the correct Harvestr discoveryStateId.
