---
title: "Save and resume"
description: "Autosave in-progress answers, restore them after a reload, and optionally recover abandoned drafts."
group: "Respondents & data"
order: 2
type: "feature"
keywords:
  - "save progress"
  - "drafts"
  - "resume"
  - "drop-off"
  - "resume email"
updated: "2026-07-14"
---

Save and resume stores in-progress answers before submission and restores them when the respondent comes back.

## When to use it

Turn it on for forms long enough that a reload, closed tab, interruption, or device change would hurt. Leave it off for a one-tap rating — or any flow where storing answers before submission would surprise the respondent.

It's also a privacy choice. Tell respondents when their unfinished answers are stored and how long they're kept.

## In the dashboard

Open the form's **Respondents** settings and enable **Save and resume**. The default renderer autosaves as the respondent types and shows a notice after it restores a draft.

You can then choose separate recovery controls:

- **See in-progress answers** lets workspace members read the saved content in an **In progress** tab.
- **Resume emails** sends one answer-free resume link after a draft has been idle for a day, when Fillo has a usable verified or entered email.
- **Resume URL** sends an embedded form back to an HTTP or HTTPS route in your product.
- **Drop-off digest** sends the form notification address a daily summary containing aggregate counts only. It does not include names, emails, answers, filenames, or draft contents.

Every recovery setting is off by default. Seeing in-progress answers deserves its own consent framing — a teammate can read text the respondent hasn't submitted.

## In code

Code-defined forms can enable the renderer-coupled save behavior in the schema:

```ts
const application = defineForm({
  id: "application",
  pages: [{
    id: "about",
    blocks: [{ id: "name", kind: "short_text", label: "Full name", required: true }],
  }],
  settings: {
    saveProgress: true,
  },
});
```

Notification addresses, resume emails, in-progress visibility, resume destinations, and daily digests are dashboard-owned. Public publishable-key sync can't set them because they send mail or touch pre-submission privacy.

Headless UIs receive the same engine state. Use `resumedDraft`, `flushDraft()`, and `resetDraft()`, and flush on page hide if your integration doesn't use `FilloForm` or `FilloProvider`.

## Identity and devices

An anonymous browser restores from its local draft reference. A server-verified respondent can resume across devices, because Fillo can safely match the draft to the same external account ID. A page-supplied identity without a valid HMAC isn't enough for cross-device trust.

Resume links carry a narrow draft reference in the URL fragment. Treat the link as access to that draft: keep it out of analytics, logs, screenshots, and unrelated storage.

## Retention and limits

An unfinished draft expires seven days after its last save. Saving slides that expiry forward. Submitting or choosing **Start over** deletes the draft. File references saved with a draft share its retention window.

Saved progress is available on every plan, Free included. A partial draft isn't a completed response and doesn't count toward your plan's response allowance.

## Related

- [Respondents and identity](/docs/respondents): Verify a signed-in account for cross-device resume.
- [Data retention and deletion](/docs/data-retention): Compare draft, response, telemetry, and workspace deletion windows.
- [Webhooks](/docs/webhooks): Subscribe to the answer-free `draft.abandoned` event.
