Skip to content

Webhooks

Webhooks deliver real-time HTTP callbacks when survey events occur. This is the recommended way to react to completions — for example, updating a patient record in your HIS when a satisfaction survey is submitted.

For full webhook configuration details, payload format, and signature verification, see the Survey Webhooks documentation.

Endpoint: POST /api/surveys/{surveyId}/webhooks

{
"surveyId": "SURVEY_UUID",
"name": "Patient Survey Completion",
"url": "https://your-system.example.com/webhooks/survey-complete",
"events": ["survey.response_completed"],
"secret": "your-webhook-secret",
"isActive": true
}
FieldTypeRequiredDescription
namestringYesWebhook name
urlstringYesHTTPS endpoint to receive callbacks
eventsstring[]YesEvent types to subscribe to
secretstringNoShared secret for HMAC-SHA256 signature verification
isActivebooleanNoEnable/disable (default: true)
ActionMethodEndpoint
ListGET/api/surveys/{surveyId}/webhooks
GetGET/api/surveys/{surveyId}/webhooks/{id}
UpdatePATCH/api/surveys/{surveyId}/webhooks/{id}
DeleteDELETE/api/surveys/{surveyId}/webhooks/{id}
TestPOST/api/surveys/{surveyId}/webhooks/{id}/test
List deliveriesGET/api/surveys/{surveyId}/webhooks/{id}/deliveries
Retry deliveryPOST/api/surveys/{surveyId}/webhooks/{id}/deliveries/{deliveryId}/retry

A common pattern combining the programmatic API with webhooks:

  1. Create contacts via POST /api/directory/contacts/upsert
  2. Send survey via POST /api/surveys/{id}/distributions/quick
  3. Register webhook for survey.response_completed
  4. Receive callback when the contact completes the survey
  5. Optionally poll GET /api/surveys/{id}/responses/bulk-status for contacts that haven’t responded yet