Webhooks

4 min read

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 online
  • device.offline — Device went offline
  • device.paired — New device paired
  • device.removed — Device removed
  • device.alert — Device alert triggered

Content Events:

  • content.uploaded — New content uploaded
  • content.deleted — Content deleted
  • content.approved — Content approved
  • content.rejected — Content rejected

Playlist Events:

  • playlist.created — New playlist created
  • playlist.deployed — Playlist deployed to devices
  • playlist.updated — Playlist modified

Schedule Events:

  • schedule.activated — Schedule became active
  • schedule.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.

Was this article helpful?