See project progress without rebuilding the status report
When project notes change, turn the latest details into a compact progress snapshot you can scan quickly.
Trigger
Page Content Updated
Triggers when the body content of a Notion page is 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 page content edit in the workspace the integration has access to. Notion aggregates content edits within a short window (~60s typical).
Action
Execute Code
Execute python code in a sandbox and return any result, stdout, stderr, and error. use /home/user folder to write/read files. try to not use plt.show() as the code is executed remotely. use files for image/chart output instead.
Why this helps
Project status can live across notes and become a chore to reconstruct before every check-in.
- Create a repeatable snapshot from updated project content.
- Spot remaining work and potential schedule drift sooner.
- Spend less time assembling status notes by hand.
Setup
Build it in a few focused steps.
- 1Connect Notion and Codeinterpreter to Notis once.
- 2Create a Project progress snapshot automation in the portal.
- 3Write one instruction asking Codeinterpreter to analyze the updated project page and summarize progress, remaining work, and pace.
- 4Choose the Notion Page Content Updated trigger and a run-report channel.
- 5Test by updating a project page with one real status change.
Questions about this workflow
Can it estimate completion dates?
It can produce an estimate if the page contains enough dates and remaining-work information; treat estimates as planning aids.
Will every edit run it?
Notion aggregates content edits within a short window, and the trigger can be scoped to a page or data source.
When this happens · Trigger
Do this · Action
Supported Triggers and Actions
Notis builds workflows that link Notion to Codeinterpreter. A trigger fires from one place; an action lands in another.
Notion triggers
Codeinterpreter actions
Recurring trigger
Notis starts this workflow on a schedule, such as daily, weekly, or during business hours.
Create Sandbox
Create a sandbox to execute python code in a jupyter notebook cell. this is useful for agents to communicate, execute code, see output, read files, write files, etc. it's like you own personal computer, but in the cloud. use /home/user folder to write/read files.
Webhook trigger
Notis starts this workflow when an external tool or custom backend sends an HTTP request.
Execute Code
Execute python code in a sandbox and return any result, stdout, stderr, and error. use /home/user folder to write/read files. try to not use plt.show() as the code is executed remotely. use files for image/chart output instead.
All Page Events
Triggers when any Notion page is created or updated across the workspace.
Get File
Get a file from the sandbox and returns the file. the files should be read from /home/user folder.
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.
Run Terminal Command
Run a command in the terminal and returns the stdout, stderr, and error code. use /home/user folder to write/read files.
New Comment
Triggers when a new comment is added to a specified Notion block or page.
Upload File
Upload a file to the sandbox environment. the files should be uploaded to the /home/user folder.
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.
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.
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.
Connect any two apps with Notis in the middle.
Notion and Codeinterpreter, 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 Codeinterpreter.