Webhooks allow you to receive real-time notifications about activities in Confidence by sending HTTP POST requests to your specified endpoint. You can configure webhooks as notification channels for activity feeds, enabling integration with external systems, monitoring tools, or custom notification workflows.Documentation Index
Fetch the complete documentation index at: https://confidence.spotify.com/llms.txt
Use this file to discover all available pages before exploring further.
Configure a Webhook
Create an Activity Feed with Webhook
Enter a Webhook Secret for signature verification
See the Security section for details on signature verification
Edit a Feed
When editing an existing webhook, you must re-enter the secret. The secret is write-only and never returned from the server for security reasons.
Webhook Payload
Confidence sends activity notifications as JSON in theListActivitiesResponse format. Each webhook request contains an array of activities.
Example Payload
Activity Fields
name: Unique identifier for the activityprimaryResource: The main resource this activity relates torelatedResources: Other resources involved in the activitypriority: Activity priority level (LOW, MEDIUM, HIGH)actor: The identity that performed the activitytitle: Human-readable activity titlebody: Detailed description in Markdown formatactivityTime: When the activity occurredcreateTime: When Confidence created the activityupdateTime: When the activity was last updatedcreator: Identity that created the activity recordupdater: Identity that last updated the activity record
Security
Webhooks use HMAC-SHA256 signatures to ensure authenticity and integrity of messages. Every webhook request includes three custom headers for verification.Request Headers
| Header | Description |
|---|---|
Confidence-Webhook-Signature | HMAC-SHA256 signature of the payload |
Confidence-Webhook-Id-Signature | Webhook configuration ID |
Confidence-Webhook-Timestamp | Unix timestamp (seconds) when Confidence sent the request |
Signature Generation
Confidence computes the signature as:secret: The webhook secret you provided during configurationtimestamp: The value from theConfidence-Webhook-Timestampheaderpayload: The raw JSON request body
Verify Signatures
To verify a webhook request is authentic:Extract headers from the incoming request
Confidence-Webhook-SignatureConfidence-Webhook-Timestamp
Validate timestamp to prevent replay attacks
- Check that the timestamp is recent (within ±5 minutes of current time)
- Reject requests with timestamps too far in the past or future
Compute expected signature
- Concatenate timestamp and payload:
"{timestamp}.{payload}" - Compute HMAC-SHA256 using your webhook secret
- Convert result to hexadecimal string
Example Verification
Best Practices
- Secret Management
- Endpoint Implementation
- Error Handling
- Security Considerations
- Generate strong secrets: Use cryptographically random strings (at least 32 characters)
- Rotate secrets regularly: Update webhook secrets periodically
- Store securely: Never commit secrets to version control or expose in logs
- Use environment variables: Store secrets in environment variables or secret management systems
Troubleshoot Common Issues
- Webhook not receiving notifications
- Signature verification failing
- Activities missing from webhook
- Verify the webhook is enabled (toggle switched on)
- Check that the priority filter allows the activity level
- Ensure your endpoint is publicly accessible via HTTPS
- Verify your endpoint returns HTTP 200 status
Related Resources
Activity Feeds
Configure activity feeds for different resources
Notifications Introduction
Overview of notification types and priorities
Surface Settings
Configure surface-level notifications
API Reference
Explore the Confidence API

