# Version history

View every published version of your form and revert to any previous snapshot.

> ✅ **Pro feature** — included in the Pro plan.


## Version history

Every time you publish, formbase saves a full snapshot of your form — content, theme, logo, and cover. Open the publish history to browse past versions and roll back to one.

<h2 id="how-it-works">How it works</h2>

<p>
  Each publish creates a snapshot. formbase keeps the 50 most recent per form and drops the oldest when a new publish passes the cap — but
  never a snapshot a submission or a live respondent link still points at, so a busy form can hold more than 50.
</p>
<p>
  Anyone who can edit the form can browse the history. Reverting requires a <strong>Pro or Business</strong> plan, and it is the workspace
  owner's plan that counts: a Pro member cannot revert a form owned by a free workspace.
</p>

<h2 id="open-history">Opening publish history</h2>

<p>
  Click the <strong>Publish history</strong> button (clock icon) in the top toolbar — it appears once the form has been published at least
  once. The dialog lists your 20 most recent versions, newest first, each with its date, time, and how long ago it was; the live one carries
  a <strong>Live</strong> badge. Click <strong>Load older versions</strong> at the bottom to fetch the rest.
</p>
<p>
  Selecting a version previews it without changing anything. The preview has three tabs: <strong>Form</strong>, <strong>Emails</strong> (the
  owner notification, respondent confirmation, and reminder copy saved in that version), and <strong>Translations</strong> (the translation
  bundles it published with).
</p>

<h2 id="reverting">Reverting to a previous version</h2>

<p>
  Pick any version other than the live one and click <strong>Revert to this version</strong>. A confirmation dialog offers two ways out:
</p>

<p>A trashed form cannot be reverted — restore it first.</p>

<h2 id="what-is-restored">What gets restored</h2>

<p>A revert restores everything the snapshot froze:</p>

<ul>
  <li>Form content (questions, pages, content blocks, logic rules)</li>
  <li>Cover image and logo</li>
  <li>Light and dark mode themes</li>
  <li>Translation drafts and notification email subject/body drafts</li>
</ul>

<p>Access controls, notification delivery settings and recipients, integrations, and retention rules stay as they are.</p>

> ⚠️ **Reverting replaces your current draft**
> <p>
>     If you have unpublished changes in the editor, reverting overwrites them. Only published versions become snapshots, so publish your
>     current draft first if you might want it back.
>   </p>

<h2 id="use-cases">When to use version history</h2>

<ul>
  <li>
    <strong>Undo a bad publish</strong> — you shipped a version with broken logic or a missing page. Revert and publish the previous one.
    Most of these are caught before they ship: see <a href="/building-forms/publish-checks">Publish checks</a> for the errors and warnings
    formbase raises beside the Publish button.
  </li>
  <li>
    <strong>Seasonal forms</strong> — you run the same event form every quarter. Revert to last quarter's version as a draft and update the
    dates instead of starting from scratch.
  </li>
  <li>
    <strong>A/B testing</strong> — publish version A and collect responses through one share link. When ready, revert to version B, publish
    it, and create a new link. Each link tracks its responses separately in{' '}
    <a href="/submissions-analytics/share-link-analytics">share link analytics</a>. Share links always serve the live form, never a specific
    snapshot.
  </li>
  <li>
    <strong>Audit trail</strong> — check what the form looked like when a batch of responses came in.
  </li>
</ul>

<h2 id="next-steps">Next steps</h2>
<div class="not-prose grid gap-3 sm:grid-cols-2">
  - [Sharing & Embedding](/sharing-publishing/sharing-embedding) — Understand how share links always serve the live version
  - [Share link analytics](/submissions-analytics/share-link-analytics) — Compare performance across versions and channels
</div>
