Request format
Event list
A subscription can choose from 17 events: 8 page, 4 database, 2 data source, and 3 comment. See Batching for timing.Page
Events for rows and subpages.
Moving a row to another database sends
page.moved (with the new database as parent) and data_source.content_updated for the old database.
Database
Inline database events also send
page.content_updated for the parent document. A move sends it for both documents. Deleting a document that holds an inline database sends only that document’s page.deleted.
Data source
There’s no
data_source.created, moved, deleted, or undeleted. A Bottari database has one data source, so these don’t occur separately.
Comment
These aren’t sent while Read comments is off.Data fields
parent
The format depends on the target. It differs fromparent in API objects: type here is database, page, space, or block.
For a row,
data.parent.id and data.parent.data_source_id are both the database ID.
The parent of a comment on text follows these rules:
- It comes from the saved content. If the comment marker isn’t saved yet,
parentcan be the page. Saving takes up to 10 seconds.GET /v1/commentsreads the open content, so it answers with the block. - If the marker disappears from the content, the old block can’t be found, so
parentis the page. - For a comment on text in a subpage card,
parenthas the form{document id}.{block}. The block API returns that card aschild_page, so reading a block with this ID returns 404. You can still use it asblock_idinGET /v1/comments.
updated_properties
Inpage.properties_updated, this is an array of property ID strings.
- The title is
title. Other IDs appear exactly as the API returns them. - Formula properties don’t appear.
- Changing a relation sends an event to the rows on both sides. Relations pointing at a database the integration can’t read are left out.
- A value changed and restored within 60 seconds sends an empty array.
data_source.schema_updated, this is an array of objects, and changes within 60 seconds merge into one event.
action is created, updated, or deleted. Creating two properties puts two created entries in one event, and renaming one property while deleting another puts updated and deleted in one event. Changing options reports that property as updated.
updated_blocks
An array of{ id, type } objects. type is block, page, or database; the last two are subpages and inline databases.
- It includes deleted blocks and new subpages. Reading a deleted block’s ID returns 404.
- It includes blocks edited and restored within 60 seconds.
- Documents and databases the integration can’t read are left out.
- Adding or removing a synced block puts it in the array, only when the integration can read it.
- Button and Bottari notes blocks are left out of content comparison. If only such a block changes outside app editing, the array can be empty.
Comment data
entity.id is the comment ID, and discussion_id is the thread ID. They match for the first comment of a thread.
Authors
When changes merge, each author appears once, in writing order. Changes written by a task agent or a session appear as the session owner, with type
person.
Reading a row an automation wrote through the API shows last_edited_by as 00000000-0000-0000-0000-000000000003, which differs from the value in webhook authors.
When no event is sent
There are no view or file upload events.