Update a sequence step
/v1/campaigns/{campaign_id}/sequence/steps/{step_id}Changes one step's message, subject, content or delay. The step is found by its id anywhere in the sequence, including inside conditional branches, and the whole sequence is validated again before it's saved.
If the sequence changed after it was read, the request answers 409 SEQUENCE_MODIFIED instead of overwriting the other change. Retrieve the campaign again and retry.
Headers
AuthorizationstringRequiredBearerfollowed by a space and your API key, for exampleBearer vk_….
Path parameters
campaign_idstring · uuidRequiredID of the campaign.
step_idintegerRequiredID of the step.
Request body
updatesobjectRequiredFields to change on the step. Only message, subject, content and delay may be patched; id, type and branches are structural and require PUT .../sequence.
Response
200
messagestringRequiredcampaign_idstring or nullsuccessbooleanDefaulttrue
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 | NO_SEQUENCE | The campaign has no sequence, so there's no step to update. |
| 400 | SEQUENCE_VALIDATION_FAILED | The sequence breaks a structural rule, such as an unknown step type or a |
| 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 | STEP_NOT_FOUND | No step with this ID exists in the campaign's sequence, including inside conditional branches. |
| 404 | NOT_FOUND | No endpoint matches the path. A resource ID in the path that isn't a valid UUID also answers |
| 409 | STEP_ID_AMBIGUOUS | More than one step in the sequence has this ID, so the update can't tell which one to change. |
| 409 | SEQUENCE_MODIFIED | The sequence changed after it was read. Retrieve the campaign again and retry. |
| 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 |