How Webhooks Work
Creating Webhooks
From the Console
- Navigate to Settings > Webhooks
- Click Create Webhook
- Configure the webhook:
- Name: Descriptive identifier
- URL: Your endpoint URL (must be HTTPS)
- Events: Select events to subscribe to
- Secret: Optional signing secret for verification
- Save and test
Webhook Configuration
| Field | Description | Required |
|---|---|---|
| Name | Friendly name for identification | Yes |
| URL | HTTPS endpoint to receive events | Yes |
| Events | Event types to subscribe to | Yes |
| Secret | Shared secret for payload signing | Recommended |
| Headers | Custom headers to include | No |
| Active | Enable/disable the webhook | Yes |
Event Types
Subscribe to events across CloudThinker:Recommendation Events
| Event | Trigger |
|---|---|
recommendation.created | New recommendation generated |
recommendation.updated | Recommendation status changed |
recommendation.implemented | Recommendation marked complete |
recommendation.comment | Comment added to recommendation |
Incident Events
| Event | Trigger |
|---|---|
incident.created | New incident created |
incident.updated | Incident details changed |
incident.resolved | Incident marked resolved |
incident.comment | Comment added to incident |
Security Events
| Event | Trigger |
|---|---|
finding.created | New security finding detected |
finding.resolved | Security finding resolved |
compliance.changed | Compliance status changed |
Task Events
| Event | Trigger |
|---|---|
task.started | Scheduled task began execution |
task.completed | Task finished successfully |
task.failed | Task encountered an error |
Agent Events
| Event | Trigger |
|---|---|
conversation.completed | Agent conversation finished |
approval.requested | Agent requests approval for action |
approval.granted | User approved agent action |
Resource Events
| Event | Trigger |
|---|---|
resource.discovered | New cloud resource found |
resource.changed | Resource configuration changed |
resource.deleted | Resource no longer exists |
Webhook Payload
Each webhook includes a standardized payload:Payload Fields
| Field | Description |
|---|---|
id | Unique event identifier |
type | Event type (e.g., recommendation.created) |
timestamp | ISO 8601 timestamp |
workspace_id | Workspace where event occurred |
data | Event-specific payload |
Security
Signature Verification
When you configure a webhook secret, CloudThinker signs each payload:IP Allowlisting
CloudThinker webhooks originate from known IP ranges. Contact support for the current IP list to configure firewall rules.HTTPS Only
Webhook URLs must use HTTPS. Self-signed certificates are not supported in production.Retry Logic
CloudThinker retries failed webhook deliveries:Retry Schedule
| Attempt | Delay |
|---|---|
| 1 | Immediate |
| 2 | 1 minute |
| 3 | 5 minutes |
| 4 | 30 minutes |
| 5 | 2 hours |
| 6 | 8 hours |
Success Criteria
A delivery is successful when your endpoint returns:- HTTP 2xx status code
- Response within 30 seconds
Failure Handling
After all retries fail:- Event is marked as failed
- Notification sent (if configured)
- Event available in webhook logs
Webhook Management
Testing Webhooks
Test webhook delivery before going live:- Select a webhook in settings
- Click Send Test Event
- Choose an event type
- Review delivery status and payload
Viewing Logs
Monitor webhook activity:- Navigate to Settings > Webhooks > Logs
- View delivery attempts
- See request/response details
- Filter by status, event type, date
Pausing Webhooks
Temporarily disable a webhook:- Select the webhook
- Toggle Active to off
- Events during pause are not queued
Webhook Templates
Use templates for common integrations:Slack
Post events to Slack channels:Jira
Create Jira tickets from CloudThinker events:PagerDuty
Trigger PagerDuty incidents:Best Practices
Always Verify Signatures
Always Verify Signatures
Use webhook secrets and verify signatures to ensure requests originate from CloudThinker.
Respond Quickly
Respond Quickly
Return a 2xx response immediately, then process the event asynchronously. Long processing delays cause timeouts.
Handle Duplicates
Handle Duplicates
Webhook deliveries may occasionally duplicate. Use the event
id to deduplicate on your end.Monitor Failures
Monitor Failures
Set up alerts for webhook failures. Investigate and fix issues promptly to avoid missing events.
Use Specific Subscriptions
Use Specific Subscriptions
Only subscribe to events you need. Reduces noise and processing overhead.
Integration Examples
GitHub Actions
Trigger workflows from CloudThinker events:AWS Lambda
Process webhooks with serverless functions:Incident Webhooks
Learn about incident-specific webhook integrations