Related to my previous post on Ghost webhooks (Documentation for Webhooks might be a bit outdated), I wanted to better understand how webhooks are triggered and what content is sent. So, I ran some simple scenarios and I noticed that the site.changed
event was not working as I expected; the event keeps showing up in scenarios unrelated to the settings.
Also, for some changes in Settings, the same event was sent twice for changes made in:
- Design → Brand (Design → Site-wide seems OK)
- Membership
Here the logs after changing the site description:
ghost | [2023-02-03 20:28:18] INFO "PUT /ghost/api/admin/custom_theme_settings/" 200 61ms
ghost | [2023-02-03 20:28:18] INFO Triggering webhook for "site.changed" with url "http://host.docker.internal:
3000/site.changed"
ghost | [2023-02-03 20:28:18] INFO "POST /" 200 128ms
ghost | [2023-02-03 20:28:18] INFO "PUT /ghost/api/admin/settings/" 200 151ms
ghost | [2023-02-03 20:28:18] INFO "GET /members/api/member/" 204 1ms
ghost | [2023-02-03 20:28:18] INFO Triggering webhook for "site.changed" with url "http://host.docker.internal:
3000/site.changed"
ghost | [2023-02-03 20:28:18] INFO "GET /ghost/api/content/settings/?key=e078f293cc06dd83c8cc97f709&limit=all"
200 21ms
ghost | [2023-02-03 20:28:18] INFO "GET /ghost/api/content/newsletters/?key=e078f293cc06dd83c8cc97f709&limit=al
l" 304 25ms
ghost | [2023-02-03 20:28:18] INFO "GET /ghost/api/content/tiers/?key=e078f293cc06dd83c8cc97f709&limit=all&incl
ude=monthly_price,yearly_price,benefits" 304 32ms
Below are my other scenarios and the events that were sent to my custom integration, in case anyone is interested in those.
-
Posts
-
Drafts
- Create a new draft post:
site.changed
and
post.added
- Delete a draft post:
post.deleted
andsite.changed
- Edit a draft post:
post.edited
- Publish a draft post:
site.changed
,
post.published
andpost.edited
- Add a tag to a draft post:
post.tag.attached
andpost.edited
- Remove a tag from a draft post:
post.tag.detached
andpost.edited
- Create a new draft post:
-
Published
- Edit a published post:
site.changed
,
post.published.edited
and post.published.edited` - Unpublish a published post:
site.changed
,
post.unpublished
,post.edited
- Add a tag to a published post:
site.changed
,
post.tag.attached
,post.published.edited
andpost.edited
- Remove a tag from a published post:
site.changed
,
post.tag.detached
,post.published.edited
andpost.edited
- Edit a published post:
-
Drafts
-
Pages
-
Drafts
- Create a new draft page:
site.changed
and
page.added
- Delete a draft page:
page.deleted
andsite.changed
- Edit a draft page:
page.edited
- Publish a draft page:
site.changed
,
page.published
andpage.edited
- Add a tag to a draft page:
page.tag.attached
etpage.edited
- Remove a tag from a draft page:
page.tag.detached
etpage.edited
- Create a new draft page:
-
Published
- Unpublish a published page:
site.changed
,
page.unpublished
andpage.edited
- Edit a published page:
site.changed
,
page.published.edited
andpage.edited
- Add a tag to a published page:
page.tag.attached
andpage.edited
- Remove a tag from a published page:
page.tag.detached
andpage.edited
- Unpublish a published page:
-
Drafts
-
Tags
-
Public
- Create a new public tag:
tag.added
andsite.changed
- Edit a public tag:
tag.edited
andsite.changed
- Delete a public tag:
tag.deleted
,site.changed
- Create a new public tag:
-
Internal
- Create a new internal tag:
tag.added
andsite.changed
- Edit a internal tag:
tag.edited
andsite.changed
- Delete a internal tag:
tag.deleted
andsite.changed
- Create a new internal tag:
-
Public
-
Members
- Create a new member: not tested
- Edit a member:
member.edited
- Delete a new member:
member.edited
Setup information
Ghost Version
5.33.5
Node.js Version
v16.19.0
How did you install Ghost?
Docker
Provide details of your host & operating system
Windows 10
Database type
SQLite 3 (development)