I’m working on a side project that uses the Notion API. I want to set up webhooks to get notified when database entries are added or removed.
The main thing I’m confused about is what data actually gets sent in these webhook events. I looked at the official docs but the sample payloads don’t give me enough detail about what’s included.
Specifically for the page.created event, I need to know if it sends all the page data like the title and custom properties, or if it only sends basic info like the page ID and parent database ID.
Has anyone here actually worked with Notion webhooks before? I can’t test this myself right now because I would need to deploy an endpoint to receive the events and my project isn’t ready for that yet.
I’m hoping someone who has experience with these webhooks can tell me exactly what kind of data gets included when a new page is created in a database.
hey, i recently dabbled with notion webhooks too! for the page.created event, it just sends the basics like page ID and parent database ID. for full details, you’ll have to do another api call with that ID if you need more info.
yeah, webhook timing issues are real. had instances where the payload arrives but notion hasn’t indexed the page yet. adding a small delay before fetching works, but it seems kinda hacky.
Notion webhooks are super frustrating at first - the docs don’t tell you how bare-bones the payloads really are. I built this into a CMS and learned that page.created webhooks are basically just pings. You get the page ID, parent database, and event info, but zero actual content or properties. Makes sense since pages can be huge, but you’re stuck making two API calls every time. Here’s what worked for me: verify the webhook first to make sure it’s legit, then immediately queue up the follow-up call to grab the full page data. Webhook reliability got way better this past year, but I’d still set up polling as backup for anything mission-critical.
yeah, it’s kind of limited. when a page is created, you only get the page ID and the parent db ID. for title and properties, you’ll need to hit the API separately for that info.
Had this exact problem six months ago building a sync tool for my team. The webhook payload for page.created events is pretty bare bones - you get the event type, page ID, parent database ID, and timestamps. That’s it. No actual content, titles, or property values. I fixed it by setting up a queue system. The webhook triggers an event, then makes a follow-up API call to grab the full page details using the page ID. Works great, but you’ll burn through more API calls. The webhook’s basically just a notification - not meant to deliver the actual data.
Notion webhooks are quite limited in what they provide initially. When a new page is created, the information sent is mostly basic IDs along with some metadata, without any actual content or properties included. This approach likely helps manage payload sizes, especially for larger databases. The challenge lies in efficiently managing the necessary follow-up API calls without hitting rate limits. My strategy involves batching the webhook events for a few seconds and then fetching the detailed page data in larger, optimized chunks to minimize API call overhead. However, be cautious as the reliability of webhooks can be inconsistent—there have been instances where events didn’t get delivered at all, so implementing a secondary sync method might be beneficial to avoid missing important updates.