Skip to main content
ButterCMS automatically sends webhook notifications for various content events including blog posts, pages, and collection items. These events enable real-time integration with your applications, triggering immediate responses to content changes. Event Types: Webhooks are triggered for create, update, publish, unpublish, and delete operations across all content types. Delivery Method: All webhook events are delivered as HTTP POST requests to your configured endpoint URLs, with JSON payloads containing event metadata and complete content data.

Page events

page.published

Triggered when a page is published or republished. This event fires when:
  • A draft page is published for the first time
  • An already published page is republished after changes
  • A scheduled page is automatically published
EventTriggerUse Case
page.publishedPage is published or republishedInvalidate cache, trigger site rebuild, send notifications
page.draftDraft page is savedNotify reviewers, update preview systems
page.unpublishedPage is unpublished (taken offline)Remove from search index, clear cache
page.deletePage is permanently deletedClean up related resources, update sitemaps
page.allAny page activityGeneral logging, comprehensive audit trails

page.draft

Triggered when a draft page is created or updated. This event fires when:
  • A new page is created and saved as draft
  • An existing draft page is modified
  • A published page has draft changes saved

page.unpublished

Triggered when a published page is unpublished. This event fires when:
  • A published page is manually unpublished
  • A page is reverted from published to draft state

page.delete

Triggered when a published page is permanently deleted. This event fires when:
  • A page is permanently removed from the system
  • A page is moved to trash and then permanently deleted

page.all

Triggered for any page-related activity. This is a catch-all event useful for logging or when you need to track all page changes regardless of type.

Blog Post events

post.published

Triggered when a blog post is published or republished. This event fires when:
  • A draft blog post is published for the first time
  • An already published post is republished after changes
  • A scheduled post is automatically published
EventTriggerUse Case
post.publishedBlog post is publishedShare to social media, send newsletter, update RSS feed
post.draftDraft post is savedNotify editors, update preview
post.deleteBlog post is deletedRemove from indexes, update feeds
post.allAny blog post activityComprehensive audit logging

post.draft

Triggered when a draft blog post is created or updated. This event fires when:
  • A new blog post is created and saved as draft
  • An existing draft post is modified

post.delete

Triggered when a blog post is permanently deleted.

Collection item events

collectionitem.published

Triggered when a collection item is published or republished. This event fires when:
  • A draft collection item is published for the first time
  • An already published item is republished after changes
  • A scheduled item is automatically published
EventTriggerUse Case
collectionitem.publishedItem is publishedUpdate product catalog, sync to external systems
collectionitem.draftDraft item is savedQuality assurance notifications
collectionitem.unpublishedItem is unpublishedRemove from listings, update availability
collectionitem.deleteItem is deletedClean up references, archive data
collectionitem.allAny collection item activityFull audit trail

collectionitem.draft

Triggered when a draft collection item is created or updated.

collectionitem.unpublished

Triggered when a published collection item is unpublished.

collectionitem.delete

Triggered when a collection item is permanently deleted.

collectionitem.all

Triggered for any collection item activity.

Media events

media.videouploaded

Triggered when a video file upload is completed. This event fires when:
  • A video file finishes uploading to the media library
  • Video processing is complete and the file is ready for use
EventTriggerUse Case
media.videouploadedVideo upload completesGenerate thumbnails, start transcoding, notify users
Currently, only video uploads trigger webhook events. Image uploads do not generate webhook notifications.

Event timing

Understanding when events fire helps you build reliable integrations:

Immediate events

These events fire immediately when the action is taken:
  • *.draft - Fires immediately when content is saved
  • *.delete - Fires immediately when content is deleted
  • *.unpublished - Fires immediately when content is unpublished

Conditional events

These events may fire immediately or be delayed:
  • *.published - Fires immediately for manual publish, or at scheduled time for scheduled content
  • media.videouploaded - Fires when video processing completes (may take time for large files)

Choosing the right events

For static site generators (Gatsby, Next.js, Hugo)

Subscribe to:
  • page.published - Rebuild site when pages change
  • post.published - Update blog when posts are published
  • collectionitem.published - Sync reference data

For cache invalidation

Subscribe to:
  • page.published, page.unpublished, page.delete
  • post.published, post.delete
  • collectionitem.published, collectionitem.unpublished

For search index updates

Subscribe to:
  • All *.published events - Add/update content in search
  • All *.delete events - Remove content from search
  • All *.unpublished events - Remove from public search

For notifications and alerts

Subscribe to:
  • *.draft events - Notify reviewers of new content
  • *.published events - Alert subscribers of new content
  • *.delete events - Warn about content removal

Event delivery order

ButterCMS does not guarantee the order of webhook deliveries. If your application depends on event ordering, implement idempotency and use timestamps from the payload to determine the correct sequence.
Events may arrive out of order due to:
  • Network latency variations
  • Retry attempts for failed deliveries
  • Concurrent content operations