zappzy Support Center > Developer > Webhooks: Connect zappzy to third-party tools and send them real-time notifications
Webhooks are intended for developers, so we assume a basic level of experience.
That’s why this article is text- and image-based — no video walkthrough.
Step-by-step guide
Webhooks send automatic notifications to other tools when events happen in zappzy - like notifying Slack when a post goes live or updating your CRM when you add a new social media account.
Once you're logged in to zappzy, you'll see the menu on the left side. In the Configuration section, click on Webhooks (workspace owner or admin only).
The Webhooks overview will appear on your main screen.
To create a webhook, click the CREATE WEBHOOK button.
The Create webhook form will appear on your main screen.
To create a webhook, first give your webhook a name in the Name field.
Then in the Callback URL field, add the URL where zappzy should send the data.
For Method, select POST (that's what most tools use), but you can also choose GET, PUT, or DELETE if needed.
In Content-Type, choose application/json since that's the standard format, or select application/x-www-form-urlencoded if your tool requires it.
Set your Max attempts to decide how many times zappzy should retry if delivery fails.
Finally, make sure Status is set to Active to enable your webhook.
If your tool requires it, you can add a secret key in the Secret field. This is optional - only use it if your tool needs extra security.
Finally, choose one of the 7 available events:
To see how each event works and what data it sends, click on the event.
Once you've made your selection, click CREATE
For security reasons, you’ll need to enter your zappzy password.
Enter your password and click CONFIRM.
You'll return to the Webhooks overview and see your active webhook. From now on, whenever the selected event happens, the webhook will send a notification.
To edit the webhook, click the three vertical dots on the right side of the corresponding webhook row.
A menu will open - click Edit.
The Edit Webhook form will appear on your main screen. Make your changes and click UPDATE.
You'll return to the Webhooks overview. Your changes have been saved.
To delete the webhook, click the three vertical dots on the right side of the corresponding webhook row.
A menu will open - click Delete.
The Delete webhook pop-up appears. Click CONFIRM to delete the webhook.
For security reasons, you’ll need to enter your zappzy password.
Enter your password and click CONFIRM.
You'll return to the Webhooks overview. Your webhook has been deleted.
To view the webhook deliveries (a log of your webhook activity), click the deliveries icon on the right side of the corresponding webhook row.
The Webhook deliveries of the selected webhook will appear on your main screen.
Here you can see when each event of the selected webhook succeeded or failed, along with the server response and the payload that was sent.
Account Added
Account Added triggers when a new social media account gets connected to your zappzy workspace.
You can see the data that zappzy sends to your tool in this payload, so you can map the zappzy data to your tool's fields accordingly.
Webhook Payload:
{
"event": "account.added",
"data": {
"id": 128,
"uuid": "12339b66-4ec4-4b93-a33f-123f5d770e08",
"name": "YourName",
"username": "xxXXx",
"image": "https://www.zappzy.com/storagebox/12341bc2-db23-4c5d-852a-d3786e8cc9fb/avatars/1234mjrr5tAcICCKvSNXYrASnZYng68qyfxOo.jpg",
"provider": "bluesky",
"data": {
"server": "https://bsky.social"
},
"authorized": true,
"created_at": "2025-05-24 13:12:14"
}
}
Account Updated
Account Updated triggers when an existing social media account in your zappzy workspace gets modified.
You can see the data that zappzy sends to your tool in this payload, so you can map the zappzy data to your tool's fields accordingly.
Webhook Payload:
{
"event": "account.updated",
"data": {
"id": 128,
"uuid": "12339b66-4ec4-4b93-a33f-123f5d770e08",
"name": "YourName",
"username": "xxXXx",
"image": "https://www.zappzy.com/storagebox/12341bc2-db23-4c5d-852a-d3786e8cc9fb/avatars/1234mjrr5tAcICCKvSNXYrASnZYng68qyfxOo.jpg",
"provider": "bluesky",
"data": {
"server": "https://bsky.social"
},
"authorized": true,
"created_at": "2025-05-24 13:16:14"
}
}
Account Deleted
Account Deleted triggers when a social media account gets removed from your zappzy workspace.
You can see the data that zappzy sends to your tool in this payload, so you can map the zappzy data to your tool's fields accordingly.
Webhook Payload:
{
"event": "account.deleted",
"data": {
"uuid": "12339b66-4ec4-4b93-a33f-123f5d770e08"
}
}
Post Scheduled
Post Scheduled triggers when a post gets scheduled for future publishing in your zappzy workspace.
You can see the data that zappzy sends to your tool in this payload, so you can map the zappzy data to your tool's fields accordingly.
Webhook Payload:
{
"event": "post.scheduled",
"data": {
"id": 259,
"uuid": "1236ccf0-5aa7-4c98-9b7d-123a774be0de",
"status": "publishing",
"accounts": [],
"versions": [{
"account_id": 0,
"is_original": true,
"content": [{
"body": "<div>This is a test post.</div>",
"media": [],
"video_thumbs": [],
"url": "",
"opened": true
}],
"options": {
"mastodon": {
"sensitive": false
},
"facebook_page": {
"type": "post"
},
"instagram": {
"type": "post"
},
"youtube": {
"title": null,
"status": "public"
},
"pinterest": {
"title": null,
"link": null,
"boards": {
"account-0": null
}
},
"linkedin": {
"visibility": "PUBLIC"
},
"tiktok": {
"privacy_level": {
"account-0": null
},
"allow_comments": {
"account-0": false
},
"allow_duet": {
"account-0": false
},
"allow_stitch": {
"account-0": false
},
"content_disclosure": {
"account-0": false
},
"brand_organic_toggle": {
"account-0": false
},
"brand_content_toggle": {
"account-0": false
}
}
}
}],
"tags": [],
"scheduled_at": "2025-05-24 13:11:22",
"published_at": null,
"created_at": "2025-05-24 13:11:06",
"trashed": false
}
}
Post Published
Post Published triggers when a post gets successfully published to your social media accounts.
You can see the data that zappzy sends to your tool in this payload, so you can map the zappzy data to your tool's fields accordingly.
Webhook Payload:
{
"event": "post.published",
"data": {
"id": 258,
"uuid": "1231f0ce-8fdd-422c-8433-1233f56d6357",
"status": "published",
"accounts": [],
"versions": [{
"account_id": 0,
"is_original": true,
"content": [{
"body": "<div>This is a test post.</div>",
"media": [],
"video_thumbs": [],
"url": "",
"opened": true
}],
"options": {
"mastodon": {
"sensitive": false
},
"facebook_page": {
"type": "post"
},
"instagram": {
"type": "post"
},
"youtube": {
"title": null,
"status": "public"
},
"pinterest": {
"title": null,
"link": null,
"boards": {
"account-0": null
}
},
"linkedin": {
"visibility": "PUBLIC"
},
"tiktok": {
"privacy_level": {
"account-0": null
},
"allow_comments": {
"account-0": false
},
"allow_duet": {
"account-0": false
},
"allow_stitch": {
"account-0": false
},
"content_disclosure": {
"account-0": false
},
"brand_organic_toggle": {
"account-0": false
},
"brand_content_toggle": {
"account-0": false
}
}
}
}],
"tags": [],
"scheduled_at": "2025-05-24 13:09:37",
"published_at": "2025-05-24 13:10:04",
"created_at": "2025-05-24 13:09:32
"trashed": false
}
}
Publishing Post Failed
Publishing Post Failed triggers when a post couldn't be published to your social media accounts.
You can see the data that zappzy sends to your tool in this payload, so you can map the zappzy data to your tool's fields accordingly.
Webhook Payload:
{
"event": "post.publishing_failed",
"data": {
"id": 260,
"uuid": "1231f0ce-8fdd-422c-8433-1233f56d6357",
"status": "failed",
"accounts": [{
"id": 126,
"uuid": "12374a8a-f007-4ceb-84f9-123ecdf0d35",
"name": "YourName",
"username": "xxXXx",
"image": "https://www.zappzy.com/storagebox/12341bc2-db23-4c5d-852a-d3786e8cc9fb/avatars/1234mjrr5tAcICCKvSNXYrASnZYng68qyfxOo.jpg",
"provider": "bluesky",
"data": null,
"authorized": false
"created_at": "2025-05-09 08:55:15",
"external_url": null,
"errors": ["zappzy::account.access_token_expired"]
}],
"versions": [{
"account_id": 0,
"is_original": true,
"content": [{
"body": "<div>This is a test post.</div>",
"media": [],
"video_thumbs": [],
"url": "",
"opened": true
}],
"options": {
"mastodon": {
"sensitive": false
},
"facebook_page": {
"type": "post"
},
"instagram": {
"type": "post"
},
"youtube": {
"title": null,
"status": "public"
},
"pinterest": {
"title": null,
"link": null,
"boards": {
"account-0": null
}
},
"linkedin": {
"visibility": "PUBLIC"
},
"tiktok": {
"privacy_level": {
"account-0": null
},
"allow_comments": {
"account-0": false
},
"allow_duet": {
"account-0": false
},
"allow_stitch": {
"account-0": false
},
"content_disclosure": {
"account-0": false
},
"brand_organic_toggle": {
"account-0": false
},
"brand_content_toggle": {
"account-0": false
}
}
}
}],
"tags": [],
"scheduled_at": "2025-05-24 15:51:42",
"published_at": null,
"created_at": "2025-05-24 15:51:37",
"trashed": false
}
}
Post Deleted
Post Deleted triggers when a post gets removed from your zappzy workspace.
You can see the data that zappzy sends to your tool in this payload, so you can map the zappzy data to your tool's fields accordingly.
Webhook Payload:
{
"event": "post.deleted",
"data": {
"uuids": ["1231f0ce-8fdd-422c-8433-1233f56d6357"],
"to_trash": true
}
}