# Promote a version with labels

**Category:** [Prompt Manager](https://help.totalctrl.app/hc/totalctrl/totalctrl-help-center/en-US/categories/prompts)
**Updated:** 2026-08-19

## Why labels

Labels are named pointers to a specific version. They let you promote a release — for example marking which version is `production` — without changing any code. Your application can resolve a label to whatever version it currently points at.
## System vs custom labels

The names `production` and `staging` are **system labels** and cannot be deleted. You can also create your own, such as `canary`. Label names may contain only lowercase letters, digits, and hyphens. Each label gets a color automatically (production is green, staging is amber, canary is purple, others gray).
## Move a label to a version

- Open the prompt's detail page or a specific version.
- Create a label if it does not exist yet, then choose **Move** and pick the target version number.
- The label now points to that version. If the label already existed, it simply re-points — only one version holds a given label at a time.

## What happens on promotion

Moving a label fires a `prompt.label.moved` webhook containing the library, prompt, label name, target version, and who moved it. This is how downstream systems can react to a release. The move is also recorded in the audit log. To delete a custom label, use the delete action; system labels are protected.

---

## Related Articles

- [Prompts Manager Overview](https://help.totalctrl.app/en-US/articles/prompts-manager-overview)
- [Test a prompt with evaluations](https://help.totalctrl.app/en-US/articles/test-a-prompt-with-evaluations)
- [Build a test dataset](https://help.totalctrl.app/en-US/articles/build-a-test-dataset)
- [Edit a prompt and save a version](https://help.totalctrl.app/en-US/articles/edit-a-prompt-and-save-a-version)
- [GitHub Sync](https://help.totalctrl.app/en-US/articles/github-sync)

---
[← Back to TotalCtrl Help Center](https://help.totalctrl.app/en-US/)