Celebrate Milestones Automatically
Every time you mark a project milestone as complete in Notion, automatically post a celebration to Twitter. Build public momentum around your progress without extra effort.
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 a post
Creates a tweet on twitter; `text` is required unless `card uri`, `media media ids`, `poll options`, or `quote tweet id` is provided.
Why this helps
Founders celebrate internally but rarely share wins publicly. Missed opportunities to build social proof and maintain audience engagement.
- Share wins publicly without remembering to post
- Build social proof around your progress
- Maintain consistent audience engagement
- Celebrate team effort visibly
Setup
Build it in a few focused steps.
- 1Connect Notion and Twitter to Notis.
- 2Create a new automation by telling Notis: 'When I mark a milestone as complete in my Notion project database, post a celebration tweet about it to Twitter.'
- 3Select 'Notion event' as the trigger and choose 'Page Properties Updated'.
- 4Tell Notis what to include in the celebration: the milestone name, a celebratory tone, and any relevant hashtags.
- 5Test by marking a test milestone as complete in Notion and verify the tweet appears within 60 seconds.
Questions about this workflow
What if I update other properties by mistake and don't want a tweet?
Tell Notis to only post when the status specifically changes to 'Completed.' For example: 'Only tweet if the Status field changes to Done.' That prevents accidental posts.
Can I customize the celebration message for each milestone type?
Yes. Tell Notis: 'If it's a product launch, use this tone. If it's a personal goal, use that tone.' Notis can have different templates based on milestone type.
What if the milestone name is really long?
Tell Notis to truncate it or summarize it. For example: 'Shorten the milestone name to 50 characters and add a link to the project page.' Notis adapts automatically.
Can I turn off celebrations for certain milestones?
Add a field to those milestones in Notion (like a checkbox 'Skip Social') and tell Notis to skip posts for those items. Full control in your hands.
When this happens · Trigger
Do this · Action
Supported Triggers and Actions
Notis builds workflows that link Notion to Twitter. A trigger fires from one place; an action lands in another.
Notion triggers
Twitter actions
All Page Events
Triggers when any Notion page is created or updated across the workspace.
Add a list member
Adds a user to a specified twitter list; the list must be owned by the authenticated user.
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.
Add post to bookmarks
Adds a specified, existing, and accessible tweet to a user's bookmarks, with success indicated by the 'bookmarked' field in the response.
New Comment
Triggers when a new comment is added to a specified Notion block or page.
Get bookmarks by user
Retrieves tweets bookmarked by the authenticated user, where the provided user id must match the authenticated user's id.
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 group DM conversation
Creates a new group direct message (dm) conversation on twitter with specified participant ids and an initial message, which can include text and media attachments.
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 compliance job
Creates a new compliance job to check the status of tweet or user ids; upload ids as a plain text file (one id per line) to the `upload url` received in the response.
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 a list
Creates a new, empty list on x (formerly twitter), for which the provided name must be unique for the authenticated user; accounts are added separately.
New Page
Triggers when a new page is added to a Notion database.
Create a post
Creates a tweet on twitter; `text` is required unless `card uri`, `media media ids`, `poll options`, or `quote tweet id` is provided.
Page Added to Page
Fires when a new subpage (a `child_page` type block) is added under a specified parent Notion page.
Delete direct message
Permanently deletes a specific twitter direct message (dm) event using its `event id` if the authenticated user sent it; this action is irreversible and does not delete entire conversations.
Connect any two apps with Notis in the middle.
Not just Notion and Twitter. Any combination from 1,000+ integrations.
When this happens · Trigger
Do this · Action
Save your first hour today.
7 days free trial with 20$ free usage included.
No card. Works with personal or business Twitter.