> This page is for version 2025-12-08.
> For other versions, use one of these documentation indexes:
> - 2026-09-29 (default): https://docs.withpersona.com/2026-09-29/llms.txt
> - 2025-12-08: https://docs.withpersona.com/2025-12-08/llms.txt
> - 2025-10-27: https://docs.withpersona.com/2025-10-27/llms.txt
> - 2023-01-05: https://docs.withpersona.com/2023-01-05/llms.txt
> - 2022-09-01: https://docs.withpersona.com/2022-09-01/llms.txt
> - 2021-07-05: https://docs.withpersona.com/2021-07-05/llms.txt
> - 2021-05-14: https://docs.withpersona.com/2021-05-14/llms.txt
> - 2020-05-18: https://docs.withpersona.com/2020-05-18/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.withpersona.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.withpersona.com/_mcp/server.

# Deployment completed

POST 

Webhook for the `deployment.completed` event. For more info see [Webhooks Overview](https://docs.withpersona.com/webhooks).
This webhook is delivered only to production environments.

Reference: https://docs.withpersona.com/api-reference/webhooks/deployment-events/webhook-deployment-completed

## Request

### Headers

- `Persona-Signature` (string, optional) — Header. An HMAC that you should use to check that requests are authentic. Compare this value with your own digest, computed from the request body and your webhook secret. For more info see [Webhook Best Practices](https://docs.withpersona.com/webhooks-best-practices).
- `Persona-Webhook-Attempts-Made` (integer, optional) — The number of times that Persona has attempted to deliver this webhook. This value is incremented each time Persona attempts to deliver the webhook, regardless of whether the delivery was successful.
- `Persona-Webhook-Attempts-Left` (integer, optional) — The number of times that Persona will attempt to deliver this webhook. This value is decremented each time Persona attempts to deliver the webhook.
- `Persona-Webhook-First-Attempted-At` (integer, optional) — The time at which Persona first attempted to deliver this webhook. This value is a Unix timestamp in seconds.

### Payload

- `data` (WebhooksWebhookDeploymentCompletedPayloadContentApplicationJsonSchemaData, optional)

## Types

### WebhooksWebhookDeploymentCompletedPayloadContentApplicationJsonSchemaData

- `attributes` (WebhooksWebhookDeploymentCompletedPayloadContentApplicationJsonSchemaDataAttributes, optional)
- `id` (string, optional) — Unique identifier for this Event. Starts with `evt_`.
- `type` ("event", optional)

### WebhooksWebhookDeploymentCompletedPayloadContentApplicationJsonSchemaDataAttributes

- `created-at` (datetime, optional) — Datetime when the event was created.
- `name` ("deployment.completed", optional)
- `payload` (WebhooksWebhookDeploymentCompletedPayloadContentApplicationJsonSchemaDataAttributesPayload, optional)

### WebhooksWebhookDeploymentCompletedPayloadContentApplicationJsonSchemaDataAttributesPayload

- `data` (deployment, optional) — A Deployment object. A deployment is an atomic, immutable write of routing rules across a set of (resource, environment) keys — the state the deployment engine serves traffic from.

### deployment

A Deployment object. A deployment is an atomic, immutable write of routing rules across a set of (resource, environment) keys — the state the deployment engine serves traffic from.

- `type` ("deployment", optional)
- `id` (string, optional)
- `attributes` (DeploymentAttributes, optional)

### DeploymentAttributes

- `created-at` (datetime, optional)
- `routes` (list of DeploymentAttributesRoutesItems, optional) — The routes this deployment puts in force. Each route binds a (resource template, environment) key to a rules tree. Without `filter[changes-only]` this is the effective state as of the deployment — including routes written by earlier deployments — so a route whose `source-deployment-id` is set was authored by the deployment named there. With `filter[changes-only]` it is exactly the rows this deployment wrote.

### DeploymentAttributesRoutesItems

- `resource-type` (string, optional) — The platform resource type the route targets. `inquiry-template` is the only supported resource type today; `workflow` and `scheduled-run-config` support is planned for a future deploy-manager release.
- `template-id` (string, optional) — The token of the resource template the route targets.
- `environment` (DeploymentAttributesRoutesItemsEnvironment, optional) — The environment the route applies to.
- `rules` (list of DeploymentAttributesRoutesItemsRulesItems, optional) — The routing rules evaluated for the key. An empty list undeploys the resource from the environment. Each rule has a strategy and may have a criteria tree with `and`, `or`, and `!` operators over context or resource origins.
- `source-deployment-id` (string, optional, nullable) — The token of the deployment that wrote this route, when it predates this deployment; null when this deployment wrote it.

### DeploymentAttributesRoutesItemsEnvironment

The environment the route applies to.

- `token` (string, required)
- `name` (string, required)

### DeploymentAttributesRoutesItemsRulesItems

- `strategy` (DeploymentAttributesRoutesItemsRulesItemsStrategy, required)
- `criteria` (route-criteria, optional) — A deployment route criteria node: an `and`/`or`/`!` operator tree whose `origin` leaves are either `{ context }` or `{ resource-type, template-id, version }`. Version references carry the version token and its deployment tag object (null when the version is untagged). Each operator's operand may be a single node or a non-empty array of nodes.

### DeploymentAttributesRoutesItemsRulesItemsStrategy

### route-criteria

A deployment route criteria node: an `and`/`or`/`!` operator tree whose `origin` leaves are either `{ context }` or `{ resource-type, template-id, version }`. Version references carry the version token and its deployment tag object (null when the version is untagged). Each operator's operand may be a single node or a non-empty array of nodes.

### DeploymentAttributesRoutesItemsRulesItemsStrategy0

- `type` ("constant", required)
- `version` (DeploymentAttributesRoutesItemsRulesItemsStrategyOneOf0Version, required)

### DeploymentAttributesRoutesItemsRulesItemsStrategy1

- `type` ("weighted-random", required)
- `version-refs` (list of DeploymentAttributesRoutesItemsRulesItemsStrategyOneOf1VersionRefsItems, required)

### RouteCriteria0

- `and` (RouteCriteriaOneOf0And, required)

### RouteCriteria1

- `or` (RouteCriteriaOneOf1Or, required)

### RouteCriteria2

- `!` (RouteCriteriaOneOf2, required)

### RouteCriteria3

- `origin` (RouteCriteriaOneOf3Origin, required)

### DeploymentAttributesRoutesItemsRulesItemsStrategyOneOf0Version

- `token` (string, required) — The resource version's token.
- `tag` (VersionTag, required, nullable) — The version's deployment tag, when one was minted.

### DeploymentAttributesRoutesItemsRulesItemsStrategyOneOf1VersionRefsItems

- `version` (DeploymentAttributesRoutesItemsRulesItemsStrategyOneOf1VersionRefsItemsVersion, required)
- `weight` (integer, required) — The ref's weight within the weighted split.

### RouteCriteriaOneOf0And

### RouteCriteriaOneOf1Or

### RouteCriteriaOneOf2

### RouteCriteriaOneOf3Origin

### VersionTag

The version's deployment tag, when one was minted.

- `name` (string, required)
- `description` (string, required, nullable)
- `created-at` (datetime, required)

### DeploymentAttributesRoutesItemsRulesItemsStrategyOneOf1VersionRefsItemsVersion

- `token` (string, required)
- `tag` (VersionTag, required, nullable) — The version's deployment tag, when one was minted.

### RouteCriteriaOneOf3Origin0

- `context` (string, required) — The request context the route matches on.

### RouteCriteriaOneOf3Origin1

- `resource-type` (string, required) — The platform resource type the origin targets.
- `template-id` (string, required) — The token of the resource template the origin targets.
- `version` (RouteCriteriaOneOf3OriginOneOf1Version, optional, nullable)

### RouteCriteriaOneOf3OriginOneOf1Version

- `token` (string, required)
- `tag` (VersionTag, required, nullable) — The version's deployment tag, when one was minted.