Integrations
AimBetter
Overview
This document provides a detailed guide to integrating AimBetter with Callgoose SQIBS for real-time incident management based on AimBetter alerting (database performance, health checks, and anomaly detection). The integration uses AimBetter outbound Webhooks to send alert event payloads to Callgoose, where API Filters convert them into incidents that are automatically created and resolved.
Prerequisites
Before beginning, ensure you have the following:
- A Callgoose SQIBS account with permissions to create API Filters and access the integration endpoint.
- An AimBetter account with permissions to configure Alert Rules and Notification / Webhook destinations.
- A Callgoose API token and the Callgoose API endpoint (generated in Callgoose).
- A test AimBetter alert rule (recommended) to validate webhook delivery and payloads.
1. Prepare Callgoose: Obtain Endpoint and Token
1.1 Retrieve Callgoose API Endpoint
Generate or locate your Callgoose process endpoint and token in Callgoose → Integrations / Webhooks. Keep the token secure and never commit it to source control.
2. Configure AimBetter Webhook
AimBetter supports outbound webhooks for alert delivery — configure an AimBetter notification destination that POSTs JSON to the Callgoose endpoint.
2.1 Choose the Webhook Scope
AimBetter webhooks can be configured at the global notifications level or per-alert/monitoring rule. Create or edit the notification destination where you want alerts forwarded.
2.2 Configure Webhook Fields
Set the following options in AimBetter’s webhook/notification configuration:
- Webhook URL: Callgoose endpoint from Step 1 (use the process API + token).
- HTTP Method: POST
- Content Type: application/json
- Send Resolved Alerts: Enable resolved/clear notifications so Callgoose can auto-resolve incidents.
Save and enable the webhook. AimBetter will send a JSON payload whenever a configured alert triggers; you can use a built-in "Test" action (if present) to validate delivery.
3. Example AimBetter Payloads
AimBetter payloads vary by alert type; below are recommended, generic JSON examples you can adapt. Inspect the actual payloads in Callgoose API Logs and copy field names exactly when creating API Filters.
3.1 Trigger (firing) example
{
"status": "firing",
"alert_name": "High DB CPU Usage",
"alert_id": "aim-2025-000123",
"severity": "critical",
"description": "CPU usage on db-prod-1 exceeded 90% for 3 minutes",
"fired_at": "2025-10-01T12:05:00Z",
"labels": {
"host": "db-prod-1",
"environment": "prod",
"db_engine": "mssql"
},
"metrics": {
"cpu_percent": 93.5
}
}
3.2 Resolved example
{
"status": "resolved",
"alert_name": "High DB CPU Usage",
"alert_id": "aim-2025-000123",
"resolved_at": "2025-10-01T12:15:22Z"
}
Tip: Use the exact JSON keys you see in Callgoose’s API logs when building filters (e.g., alert_id, status, alert_name, description).
4. Create API Filters in Callgoose SQIBS
Callgoose API Filters convert incoming AimBetter webhooks into incidents. Create two filters: one to trigger/create incidents, and one to auto-resolve them.
4.1 Trigger Filter — Create Incident
Use settings similar to:
- Payload JSON Key: "status"
- Key Value Contains: firing
- Map Incident With: "alert_id"
- Incident Title: "alert_name"
- Incident Description: "description" (or leave empty to store full JSON)
This filter creates an incident whenever AimBetter fires a new alert.
4.2 Resolve Filter — Auto-Resolve Incident
Use settings similar to:
- Payload JSON Key: "status"
- Key Value Contains: resolved
- Incident Mapped With: "alert_id"
This ensures Callgoose resolves the incident when AimBetter sends a resolved event.
Refer to the API Filter Instructions and FAQ for more details.
5. Verify and Test the Integration
5.1 Test Initial Delivery
- Create a broad test filter in Callgoose that accepts all incoming payloads (useful during initial validation).
- Use AimBetter’s test webhook feature or temporarily lower an alert threshold to trigger a test alert.
- Confirm Callgoose receives the webhook in API Logs.
5.2 View Exact Payload
Open Callgoose’s API Request / Webhook Log to inspect the exact JSON that AimBetter sends. Copy field names verbatim into your API Filters for robust mapping.
5.3 Final Verification
- Trigger an alert in AimBetter → Confirm a new incident is created in Callgoose.
- Clear the alert condition (or wait for resolution) → Confirm the incident auto-resolves in Callgoose.
- Validate the mapping uses the same alert_id (or external id) for create & resolve.
6. Troubleshooting
- Incoming Payload Not Received
- Check AimBetter webhook delivery logs and retries within AimBetter.
- Verify the Callgoose endpoint URL and token are correct.
- Ensure no network egress or firewall rules block AimBetter outbound requests.
- Incidents Not Auto-Resolving
- Confirm AimBetter is sending a status key with value resolved (or the value your Resolve Filter expects).
- Ensure the same alert_id is present in both firing and resolved payloads.
- Wrong or Missing Payload Fields
- Inspect live webhook payloads in AimBetter’s delivery logs (or in Callgoose API logs).
- Update Callgoose API Filters to match exact JSON key paths.
- Re-test using a firing → resolved cycle.
- Authentication / 401 Errors
- Verify the token is valid and included in the endpoint or headers as required by Callgoose.
- If AimBetter supports custom headers for auth, prefer Authorization headers over token-in-URL for security.
7. Security Considerations
- Keep your Callgoose API token private and rotate it regularly.
- Use HTTPS for webhook delivery and restrict allowed outbound IPs or ranges where possible.
- If supported, validate AimBetter signatures or HMAC headers before processing payloads in any intermediary.
8. Conclusion
Integrating AimBetter with Callgoose SQIBS via webhooks enables automated incident creation from database and infrastructure alerts and automatic resolution when AimBetter clears issues. Configure AimBetter webhook destinations to POST structured JSON to Callgoose, and use Callgoose API Filters (Trigger + Resolve) to map payload fields into incidents for reliable, automated incident lifecycle management.
For further customization or advanced use cases, refer to the official documentation for both AimBetter and Callgoose SQIBS:
