Create Harvest invoices from approved Notion billing records
Mark a billing record approved in Notion and let Notis prepare its Harvest invoice from the agreed details.
Trigger
Page Properties Updated
Triggers when properties of a Notion page are updated. Customer optionally scopes with at most one of: - data_source_id: any row in this data source - page_id: this specific page - parent_page_id: any page whose immediate parent is this page With none set, fires for any property change in the workspace the integration has access to. Adding a column to a data source fires this trigger once per existing row. Customers can branch on `data.updated_properties` (array of property IDs) to filter downstream.
Action
Create Invoice
Tool to create a new invoice. use when you have gathered all invoice details and need to bill a client in harvest.
Why this helps
Invoice creation gets delayed when billing approval is buried in project updates or relies on memory.
- Move approved billing into the invoicing step promptly.
- Keep invoice creation tied to an explicit approval update.
- Reduce missed billing handoffs.
Setup
Build it in a few focused steps.
- 1Connect Notion and Harvest to Notis once in the portal.
- 2Create an automation in the portal or ask Notis conversationally.
- 3In one plain-language instruction, ask Notis to create a Harvest invoice when a billing record's approval property changes to approved, using the recorded client and billing details.
- 4Choose Page Properties Updated for the billing database, select a channel for run reports, and test by approving one suitable record.
Questions about this workflow
Will this invoice every property update?
Tell Notis to proceed only when the approval property indicates the record is ready to bill.
What information should be in the record?
Include the intended client, invoice details, and any relevant project or billing context.
When this happens · Trigger
Do this · Action
Supported Triggers and Actions
Notis builds workflows that link Notion to Harvest. A trigger fires from one place; an action lands in another.
Notion triggers
Harvest actions
Recurring trigger
Notis starts this workflow on a schedule, such as daily, weekly, or during business hours.
Create Client
Tool to create a new client. use after gathering client details to register a new client in harvest.
Webhook trigger
Notis starts this workflow when an external tool or custom backend sends an HTTP request.
Create Client Contact
Tool to create a new client contact. use when you need to add a contact under an existing client. call after you've retrieved or confirmed the client id.
All Page Events
Triggers when any Notion page is created or updated across the workspace.
Create Estimate
Tool to create a new estimate. use after gathering client and line item details.
Comment Created
Triggers when a new comment is created in Notion. Optional `page_id` filter scopes to comments on a specific page. When omitted, fires for any new comment in the workspace the integration has access to. Requires the 'Read comments' capability on the Notion integration. If a connection was authorized before that capability was enabled, the user must re-authorize the connection for comment events to flow.
Create Estimate Item Category
Tool to create a new estimate item category in harvest. use after deciding to categorize line items within an estimate.
New Comment
Triggers when a new comment is added to a specified Notion block or page.
Create Estimate Message
Tool to create a new message for an estimate. use when you have an estimate id and want to send a message or run an event (send, accept, decline, re-open) on the estimate.
Database Created
Triggers when a new Notion database (the container) is created. A database is the post-2025-09-03 container that holds one or more data sources. This trigger fires for the container's creation event (`database.created`), distinct from `NOTION_DATASOURCE_CREATED` which fires when a new data source is added to an existing database. Most customers calling Notion's `POST /v1/databases` (the legacy API) or creating a database via the Notion UI will see this event. Adding a new data source to an existing database fires `data_source.created` instead — use `NOTION_DATASOURCE_CREATED` for that. Notion's payload puts `entity.type: "block"` (the container is a `child_database` block in the content tree) and `entity.id` is the database id.
Create Expense
Tool to create a new expense entry. use when recording costs against projects. ensure either units or total cost is provided.
Data Source Created
Triggers when a new Notion data source is created. Fires workspace-wide. The payload's `data.parent` carries the data source's tree parent (typically the teamspace) for downstream filtering. A single template-based database creation can fire multiple `data_source.created` events at once — one per data source the template instantiates.
Create Invoice
Tool to create a new invoice. use when you have gathered all invoice details and need to bill a client in harvest.
Data Source Schema Updated
Triggers when a Notion data source's schema is updated. Fires on column add / remove / rename. Payload includes `data.updated_properties: [{id, name, action}]` so consumers can discriminate the kind of change downstream. Optional `data_source_id` filter scopes to schema changes on a single data source. When omitted, fires for any schema change in the workspace the integration has access to. Note: adding a column also fires `page.properties_updated` once per existing row in the data source. Customers wanting a single structural-change signal should use this trigger.
Create Invoice Item Category
Tool to create a new invoice item category. use after you have decided on the category name to register it in harvest.
Connect any two apps with Notis in the middle.
Notion and Harvest, or any other combination from 1,000+ integrations.
When this happens · Trigger
Do this · Action
Save your first hour today.
7-day trial of any paid plan, with 20$ of usage included.
No card. Works with personal or business Harvest.