Activate a webhook
/v1/campaigns/{campaign_id}/webhook/activateThis endpoint is deprecated but still works. Use Create a webhook (POST /v1/campaigns/{campaign_id}/webhooks) instead.
Registers a webhook URL that will receive events when leads respond to campaign outreach. Multiple webhooks can be registered per campaign, and all active webhooks will receive events simultaneously.
Headers
AuthorizationstringRequiredBearerfollowed by a space and your API key, for exampleBearer vk_….
Path parameters
campaign_idstring · uuidRequiredID of the campaign.
Request body
webhook_urlstringRequiredURL to receive webhook events
at most 2,000 charactersExample"https://api.example.com/webhooks/victoria"replacebooleanA campaign has one response webhook. When a different URL already holds it, the request is refused with WEBHOOK_SLOT_TAKEN unless this is true, in which case that webhook is repointed at webhook_url and the previous receiver stops getting this campaign's responses.
Defaultfalsesecretstring or nullCaller-supplied HMAC signing secret so the receiver holds the same key; generated server-side when omitted (and then unrecoverable by the receiver)
at least 16 charactersat most 2,000 characters
Response
200
webhook_idstringRequiredID of the webhook record
createdboolean or nullTrue when a new webhook was created, false when an existing disabled one was re-enabled
messagestringDefault"Webhook activated successfully"replacedboolean or nullTrue when an existing webhook for a different URL was repointed (replace=true)
secretstring or nullPresent only when the signing secret was generated server-side, and only in this response: store it now, it cannot be retrieved again. Absent when you supplied your own.
successbooleanDefaulttrue
Errors
Errors share one JSON body: success, error, message, optional details, and request_id.
| Status | Code | Meaning |
|---|---|---|
| 400 | VALIDATION_ERROR | The request didn't match the endpoint's schema: a missing or malformed field, a bad query parameter, or a value out of range. |
| 400 | INVALID_WEBHOOK_URL | The webhook URL must use |
| 401 | UNAUTHORIZED | The |
| 401 | API_KEY_EXPIRED | The API key is past its expiry date. Create a new key in the Victoria AI app. |
| 403 | INSUFFICIENT_SCOPE | The API key doesn't have the scope this endpoint requires, such as |
| 403 | ORGANIZATION_DEACTIVATED | The organization that owns this API key has been deactivated. |
| 404 | CAMPAIGN_NOT_FOUND | No campaign with this ID exists in your organization. |
| 404 | NOT_FOUND | No endpoint matches the path. A resource ID in the path that isn't a valid UUID also answers |
| 409 | DUPLICATE_WEBHOOK | An active webhook for this URL already exists on the campaign. |
| 409 | WEBHOOK_SLOT_TAKEN | A campaign has one response webhook, and a different URL already holds this campaign's. |
| 413 | PAYLOAD_TOO_LARGE | The request body is larger than 1 MB. |
| 429 | RATE_LIMITED | Too many requests for this API key: more than 100 a minute to one endpoint, or 600 a minute in total. Retry after the number of seconds in the |
| 500 | INTERNAL_ERROR | Something failed on our side. The response never includes internal details; quote its |
| 503 | UPSTREAM_TIMEOUT | A service the API depends on timed out. The request is safe to retry. |
| 503 | AUTH_UNAVAILABLE | The API key couldn't be checked because the authentication service was unavailable. The request is safe to retry. |
Response headers
| Header | Description |
|---|---|
X-Request-ID | Correlation ID for the request, also returned as |
RateLimit-Limit | Requests allowed to this endpoint per minute. |
RateLimit-Remaining | Requests you can still send to this endpoint right now. |
RateLimit-Reset | Seconds until the endpoint's full limit is available again. |
Retry-After | On a |
Deprecation |
|
Link |
|