Webhooks
Webhooks
Webhooks let GoVista push real-time event notifications to your systems whenever something important happens.
What Are Webhooks?
Instead of polling the API to check for changes, webhooks send HTTP POST requests to your server when events occur.
Available Events
Device Events:
device.online— Device came onlinedevice.offline— Device went offlinedevice.paired— New device paireddevice.removed— Device removeddevice.alert— Device alert triggered
Content Events:
content.uploaded— New content uploadedcontent.deleted— Content deletedcontent.approved— Content approvedcontent.rejected— Content rejected
Playlist Events:
playlist.created— New playlist createdplaylist.deployed— Playlist deployed to devicesplaylist.updated— Playlist modified
Schedule Events:
schedule.activated— Schedule became activeschedule.deactivated— Schedule deactivated
Creating a Webhook
1. Go to Settings > API > Webhooks 2. Click Create Webhook 3. Enter the endpoint URL (must be HTTPS) 4. Select the events you want to receive 5. Optionally add a secret key for signature verification 6. Save and activate
Webhook Payload
``json { "event": "device.offline", "timestamp": "2025-01-15T10:30:00Z", "data": { "device_id": "dev_abc123", "device_name": "Lobby Screen 1", "store": "NYC Downtown", "last_heartbeat": "2025-01-15T10:25:00Z" } } ``
Use webhooks to build automated workflows. For example, send a Slack message when a device goes offline, or update your monitoring dashboard in real-time.
Signature Verification
If you set a secret key, GoVista includes an HMAC-SHA256 signature in the X-GoVista-Signature header. Verify this signature to ensure the webhook came from GoVista.
Retry Logic
If your endpoint returns a non-2xx status code:
- GoVista retries up to 5 times
- Retry intervals: 1 min, 5 min, 30 min, 2 hours, 12 hours
- After all retries fail, the webhook is marked as failed
Webhook Logs
View delivery history for each webhook:
- Payload sent
- Response received
- Status code
- Retry attempts
Your webhook endpoint must respond within 10 seconds. Long-running processes should be handled asynchronously — accept the webhook quickly, then process in the background.