> For the complete documentation index, see [llms.txt](https://docs.dapta.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.dapta.ai/dforms/builder/autosave-and-publishing.md).

# Autosave, drafts & publishing

How dForms saves your work: the save status pill, automatic retries, recovery of unsaved changes, what happens when two people edit the same form, and the difference between the draft you edit and the

You never click Save in the editor. Every change is written to a draft automatically, and the draft stays private until you click **Publish**. This page explains the save status pill, what happens when the connection drops or someone else edits the same form, and how publishing works.

***

## Autosave and the status pill

**Step 1:** Make any change in the editor. The pill next to the form name switches to **Saving…** and, a moment later, to **Saved**.

<figure><img src="https://3835013762-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCy5rSNtQmtqYCGzJlNEB%2Fuploads%2Fgit-blob-2f6172ee7a02b292bf321705c542aa2db203d3c4%2Fforms-autosave-and-publishing-01-saving.png?alt=media" alt="The editor topbar with the save status pill reading Saving…"><figcaption><p>About one second after you stop typing, the draft is sent to the server.</p></figcaption></figure>

<figure><img src="https://3835013762-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCy5rSNtQmtqYCGzJlNEB%2Fuploads%2Fgit-blob-dfa5cdcbb7978f86135b4a747f723a37a93c63aa%2Fforms-autosave-and-publishing-02-saved.png?alt=media" alt="The editor topbar with the save status pill reading Saved"><figcaption><p><strong>Saved</strong> means the draft is stored. It does not mean it is live.</p></figcaption></figure>

| Pill                | Meaning                                                                                                                                                                                             |
| ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Draft**           | The form has no questions yet. Nothing to save or publish.                                                                                                                                          |
| **Saving…**         | Your last change is being written to the server.                                                                                                                                                    |
| **Saved**           | The draft is up to date on the server.                                                                                                                                                              |
| **Retrying…**       | The last save did not reach the server (for example your connection dropped). Your changes are kept in the browser and the save is retried automatically.                                           |
| **Not saved**       | The server refused the save, or a change is not valid yet. Hover the pill to read the reason.                                                                                                       |
| **Saved elsewhere** | Someone else, or another tab, saved this form while you were editing. Nothing is saved until you choose a version. See [If someone else saves the same form](#if-someone-else-saves-the-same-form). |

When a save cannot reach the server, an error message tells you: **Can’t reach the server. Your changes are kept and saving will retry automatically.** When the server refuses a save or a change is not valid yet, the message (and the pill's tooltip) reads **Couldn’t save: {reason}**. Fix the field and the save goes through.

> **💡 Tip:** Closing the tab while a save is pending is safe: the editor flushes the last change on the way out, and it also keeps a local backup of your work.

***

## Recovering unsaved changes

If the browser crashed, the tab was killed, or the last save never reached the server, the next time you open the form the editor shows a banner at the top: **Unsaved changes recovered**, with the text **This form has edits from a previous session that never reached the server. Restore them, or keep the saved version?**

* Click **Restore edits** to load the recovered changes into the editor (they are then saved normally).
* Click **Discard** to keep the version stored on the server and drop the local backup.

The banner only appears when the local backup differs from what the server has. If everything was saved correctly you will not see it.

***

## If someone else saves the same form

Two people, or two browser tabs, can have the same form open. Each save carries the version it started from, so one editor can never silently overwrite the other.

When the form was saved somewhere else since you last saved, your next save is refused. The pill turns to **Saved elsewhere**, and a banner at the top of the editor reads **This form was saved from somewhere else**: *Another person, or another tab, saved this form while you were editing. Your edits here are not saved yet.* Nothing more is saved until you pick one of its two buttons:

<figure><img src="https://3835013762-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCy5rSNtQmtqYCGzJlNEB%2Fuploads%2Fgit-blob-ffce96154581a23bc402bb1ed321d0097053d728%2Fforms-autosave-and-publishing-05-conflict-banner.png?alt=media" alt="The editor with the red banner This form was saved from somewhere else, its See saved version and Keep mine buttons, and the save status pill reading Saved elsewhere"><figcaption><p>The conflict banner. Nothing is saved until you choose a version.</p></figcaption></figure>

* **See saved version** reloads the editor with the version saved elsewhere. Your edits from this tab are not thrown away: the **Unsaved changes recovered** banner offers them back.
* **Keep mine** keeps your edits, and your next save overwrites the other version.

**Publish** is refused the same way until you choose. Changes you make yourself outside the draft, such as a new link from **Edit link** or a HubSpot mapping saved from the question panel, never trigger the banner.

***

## Draft versus published

Saving and publishing are two different things:

* **Draft**: what you see in the editor and in **Preview**. Every autosave updates it.
* **Published**: what respondents see at your public link and in embeds. It only changes when you click **Publish**.

**Step 2:** As soon as the draft differs from the live form, an amber **Unpublished changes** chip appears next to the form name.

<figure><img src="https://3835013762-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCy5rSNtQmtqYCGzJlNEB%2Fuploads%2Fgit-blob-aaa807cdce0817aa049770c40f991c891c2ce005%2Fforms-autosave-and-publishing-03-unpublished-badge.png?alt=media" alt="The editor topbar with the Unpublished changes chip next to the form name and the Publish button"><figcaption><p>The chip tells you the live form is behind your draft.</p></figcaption></figure>

**Step 3:** Click **Publish**. If an edit is still being saved, **Publish** waits for that save first, so what goes live is exactly what you see. The button reads **Publishing…** for a moment, then a toast confirms **Changes published. Your form is live.** The chip disappears and **Publish** becomes disabled with the tooltip **All changes are published**.

<figure><img src="https://3835013762-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCy5rSNtQmtqYCGzJlNEB%2Fuploads%2Fgit-blob-6f204cf38c1de18c805202b35529160bc39c0242%2Fforms-autosave-and-publishing-04-published-toast.png?alt=media" alt="The editor after clicking Publish, with the confirmation toast Changes published. Your form is live. in the bottom right corner"><figcaption><p>Publishing copies the draft to the live form. Keep editing afterwards: new edits stay private until the next Publish.</p></figcaption></figure>

If that last save fails, nothing is published and the message reads **Your latest changes could not be saved, so nothing was published. Try again once they save.** If the publish itself goes wrong you will see **Could not publish. Please try again.** Your draft is not lost in either case; click **Publish** again.

## Revert to the previous version

Published something by mistake? The arrow next to **Publish** opens **Publish options** with **Revert to the previous published version**, and under it the date that version went live (**Published on {date}**).

<figure><img src="https://3835013762-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCy5rSNtQmtqYCGzJlNEB%2Fuploads%2Fgit-blob-110403271ce1f1cefeff0a4727770d2cae688545%2Fforms-autosave-and-publishing-06-publish-menu.png?alt=media" alt="The menu next to Publish open, with Revert to the previous published version and the date it was published"><figcaption><p>One step back. It is greyed out with <strong>No earlier published version yet</strong> on a form published only once.</p></figcaption></figure>

Click it and confirm with **Revert**. The earlier version goes live again and the one that was live becomes the previous version, so reverting a second time undoes the revert. Your draft does not change, and the integrations under **Connect** stay as they are.

## Good to know

| Topic               | Behavior                                                                                                                                                                                                                                                                                                  |
| ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| First publish       | A new form answers at its public link as soon as you create it, but until you publish it once, visitors see an empty page reading **This form has no steps yet.** Publish before you share the link.                                                                                                      |
| Editing a live form | Respondents keep seeing the last published version while you work. Nothing changes for them until you publish.                                                                                                                                                                                            |
| Integrations        | Connections you switch on under **Connect** > **Integrations** (HubSpot, webhooks, Calendly) apply to the live form immediately; they do not wait for Publish. Tracking IDs under **Tracking & pixels** and the **Spam protection (captcha)** setting are part of the draft and go live when you publish. |
| Unpublishing        | There is no Unpublish button. To take a form offline, delete it from the **Forms** list (this also deletes its submissions), or duplicate it first if you want to keep a copy.                                                                                                                            |
| Duplicates          | **Duplicate** in the Forms list creates "{name} (copy)" from the original's **published** version, in the same folder. The copy answers at its own link right away, and edits the original has not published yet are not copied. Edit the copy and **Publish** it when it is ready.                       |
| Who can publish     | Every member of the workspace can create, edit and publish forms.                                                                                                                                                                                                                                         |

## What's next

* [Preview on desktop, tablet and mobile](/dforms/builder/preview.md): check the draft before you publish.
* [Publish, Share & Embed](/dforms/share.md): copy the link, embed the form, share card.
* [Create a form](/dforms/builder/create-a-form.md): duplicate and delete forms from the list.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.dapta.ai/dforms/builder/autosave-and-publishing.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
