Steppd webhooks send a real-time HTTP POST to a URL you control whenever a document or member event fires. You can use them to connect Steppd to Zapier, Make, n8n, Pipedream, Gumloop, or any system that can receive a POST request, routing structured process data into Slack, HubSpot, Asana, Notion, Google Sheets, Jira, Trello, and beyond.Documentation Index
Fetch the complete documentation index at: https://docs.steppd.com/llms.txt
Use this file to discover all available pages before exploring further.
Webhooks are available on the Scale plan only.
Event types
Steppd fires webhooks for eight lifecycle events across documents and team membership.- Document events
- Member events
| Event | When it fires |
|---|---|
document.created | A new document is created (any status). |
document.published | A document is published or a revision is promoted to published. |
document.revised | A new revision draft is created from a published document. |
document.archived | A published document is archived. |
document.assigned | A document is assigned to a team member. |
Create a webhook
Webhooks are created and managed from your Profile page, under the Webhooks tab. Each team member can create their own webhooks; admins can see all webhooks in Settings → Webhooks.Open Profile → Webhooks
Click your avatar or name in the sidebar to go to your Profile, then select the Webhooks tab.
Fill in the webhook details
Enter a Name (for your reference), the destination URL where Steppd should POST events, and select one or more events to listen for. You must select at least one event.
Click Create webhook
Click Create webhook. Your signing secret is displayed once immediately after creation.
Edit a webhook
To change a webhook’s name, destination URL, or event subscriptions, click Edit on the webhook row, make your updates, and save.Test a webhook
Click Test on any webhook row to send a test payload to the configured URL. Steppd displays the HTTP status code returned by your endpoint so you can confirm delivery is working before going live.Manually trigger webhooks
From the action menu on any published document, choose Trigger Webhooks to fire the webhook events for that document on demand. You can choose which event type to fire:document.published, document.revised, or document.archived. The payload is identical to what fires automatically, and triggering does not change the document or count against your publish limit.
This is useful for re-sending a payload after a downstream system was temporarily unavailable, or for testing an integration without needing to re-publish.
Webhook payload
When an event fires, Steppd delivers a POST request with a JSON body containing the event details and the full document content. Document payloads include:event_type, the event string, e.g.document.publisheddata.title, the document titledata.version, the current version labeldata.department, the assigned department, if setdata.owner_name, the document owner’s name- A nested structure of every section, step, and sub-step in the document
Signing secret
Each webhook has a signing secret generated at creation. Use it to verify that incoming requests to your endpoint originated from Steppd and were not tampered with in transit. Your secret is shown only once, at the moment of creation. Store it securely. If you lose your signing secret, delete the webhook and create a new one to generate a fresh secret.Webhook payload examples
The recipes below show real automation configurations you can copy and use as a starting point. Create a matching webhook for the event shown, then paste the prompt into the Automation Assistant to generate the full workflow.Notify Slack when an SOP is published (Zapier)
Notify Slack when an SOP is published (Zapier)
Event:
document.publishedLog new SOPs to Google Sheets (Zapier)
Log new SOPs to Google Sheets (Zapier)
Event:
document.createdSync published SOPs to Notion (n8n)
Sync published SOPs to Notion (n8n)
Event:
document.publishedCreate a Jira ticket when an SOP is revised (Make)
Create a Jira ticket when an SOP is revised (Make)
Event:
document.revised