Skip to main content

Notion to Harvestr status synchronization (via Zapier)

Sync Notion Status to Harvestr Discovery Status with Zapier

Written by Marina Salmon
Updated today

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

  1. Create a new write_discovery token

  2. 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:

  1. Update the status of a linked item in Notion

  2. 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.

Did this answer your question?