> For the complete documentation index, see [llms.txt](https://kb.craftformswp.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kb.craftformswp.com/documentation/form-building/abandoned-form-capture.md).

# Abandoned Form Capture

Most people who start a form never finish it. They get distracted, the price surprises them, or they close the tab to "do it later". Abandoned form capture saves what they had typed so far as an **Abandoned** entry in your Submissions, so you can see where people drop off and follow up with a lead who left their email but never clicked *Send*.

It's off by default and turned on per form. It's included in the **free** version.

<figure><img src="https://97821998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM2yV1foUgoGHBC66VBDw%2Fuploads%2FIn41Hwb35mJ9NlUAiz6j%2Fabandoned-submissions-list.jpg?alt=media&amp;token=91a76901-ef40-4d58-893b-ced3ae83f063" alt=""><figcaption><p>Abandoned entries in CraftForms Submissions</p></figcaption></figure>

### Before you turn it on: privacy <a href="#before-you-turn-it-on-privacy" id="before-you-turn-it-on-privacy"></a>

An abandoned entry holds data the visitor **chose not to send**. In many countries (GDPR in the EU and UK, for example) you need a lawful basis and a clear privacy notice to keep it. Only turn this on for forms where your privacy notice says that form data may be saved before it's submitted, and why. If you're unsure, ask whoever handles privacy for your business.

To keep the risk down, CraftForms:

* never saves **password** fields, **file uploads**, **signatures**, generated images (Image Cropper, Picture Frame, Layered Image, Ambient Scene) or **payment** details in an abandoned entry;
* deletes abandoned entries automatically after **30 days** (see [How long abandoned entries are kept](http://localhost:63342/markdownPreview/1151196213/markdown-preview-index-ihaed4vvrgno12s5iollvh3ckm.html#how-long-abandoned-entries-are-kept));
* runs **no** emails, webhooks, integrations, payments or flows for an abandoned entry. It's only saved.

### Turn it on <a href="#turn-it-on" id="turn-it-on"></a>

The setting belongs to the form's **Save Submission** action, because an abandoned entry is an early version of the submission that action saves.

1. Open the form (**CraftForms → Forms → Edit**).
2. In the right sidebar, open **Submit Actions**.
3. Click **Edit** on the **Save Submission** action. If the form doesn't have one, click **Add Action** and add **Save Submission**.
4. Tick **Capture abandoned submissions**.
5. Click **Save**, then save the form.

<figure><img src="https://97821998-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM2yV1foUgoGHBC66VBDw%2Fuploads%2FSaWmufmWDbXj8WqrMSYx%2Fabandoned-capture-setting.jpg?alt=media&amp;token=18a23171-97c5-49e9-8fdd-6dc0021ce24d" alt=""><figcaption><p>Turning on abandoned form capture in CraftForms</p></figcaption></figure>

The form needs a **Save Submission** action. Without one, nothing is captured. If a form has more than one Save Submission action, the setting of the first one counts.

### What gets captured, and when <a href="#what-gets-captured-and-when" id="what-gets-captured-and-when"></a>

Capturing starts once the visitor **types into or changes any field**. A visitor who only looks at the form leaves nothing behind. No particular field is required, but an entry is far more useful when it has an email or phone number, so put those fields near the top of the form.

The form saves what has been filled in so far when:

* the visitor **switches to another tab** or minimises the browser;
* the visitor **closes the tab** or leaves the page;
* the visitor **stops typing for 30 seconds**.

Each save **updates the same entry** rather than creating a new one, so one visitor filling in one form gives one Abandoned entry that keeps getting more complete. The browser keeps a small random ID for this (in its local storage), so the same entry is updated even if the visitor reloads the page or comes back the next day in the same browser.

Captured:

* the values of the fields filled in so far, shown with their labels like a normal entry;
* the visitor's IP address, browser (user agent) and the page the form was on;
* the date and time of the last save.

Not captured:

* password fields, file uploads, signatures, generated images and payment details;
* empty fields, and fields hidden or disabled by Field Conditions.

### When the visitor does submit <a href="#when-the-visitor-does-submit" id="when-the-visitor-does-submit"></a>

When the visitor finishes and submits the form, their Abandoned entry is **turned into the real submission**: same entry, now **Unread**, with the final values. Any duplicate abandoned entries for that visitor and form are removed. You don't end up with an "abandoned" and a "real" entry for the same person.

For 30 minutes after submitting, the form won't start a new abandoned entry for that visitor, for example when a customer comes back from a payment page and touches a field.

### Find abandoned entries <a href="#find-abandoned-entries" id="find-abandoned-entries"></a>

1. Go to **CraftForms → Submissions**.
2. In the status filter, choose **Abandoned**. **All statuses** shows them too, next to Unread and Read.

Abandoned entries have an amber **Abandoned** badge. Opening one doesn't change its status. It stays Abandoned until the visitor submits.

What to do with them:

* **Follow up** with a lead who left contact details, for example *"Saw you were asking about a wedding bouquet: anything I can help with?"*. Make sure your privacy notice covers contacting people this way.
* **Spot drop-off points.** If most abandoned entries stop at the same question, that question is probably the problem: too personal, too early or confusing.
* **Check pricing.** Many abandoned entries with a full configuration but no submit can mean the price surprised people.

#### Export <a href="#export" id="export"></a>

Click **Export to CSV**. Abandoned entries are **left out of exports by default**. To include them, tick **Abandoned** under **Status** in the export window. Leaving all status boxes unticked exports Unread and Read only.

### How long abandoned entries are kept <a href="#how-long-abandoned-entries-are-kept" id="how-long-abandoned-entries-are-kept"></a>

Abandoned entries are deleted **permanently** once they haven't been updated for **30 days**. A cleanup runs once a day. Entries that became real submissions are never touched.

There's no setting screen for the period. A developer can change it with a filter, for example to 14 days:

```php
add_filter( 'craftforms_abandoned_retention_days', fn() => 14 );
```

### Good to know <a href="#good-to-know" id="good-to-know"></a>

* **Abandoned entries don't refill the form.** If the visitor comes back, they see an empty form (or your defaults). Capture is for you to see and follow up, not a "save and continue later" feature.
* **Forms embedded on other websites** (static sites, headless setups) capture abandoned entries only with **CraftForms PRO** and **Allow External Submissions** turned on for that form.
* **No capture while editing a cart item.** When a customer opens **Edit configuration** from the WooCommerce cart, their choices are already known, so nothing is captured.
* **Private windows and other devices** each count as a separate visitor, so the same person may leave more than one Abandoned entry.
* **After a failed submit** (for example a required field is missing), nothing is saved until the visitor edits a field again.

### FAQ <a href="#faq" id="faq"></a>

**Will abandoned entries trigger my notification emails?** No. No submit actions or flows run for an abandoned entry: no emails, webhooks, Mailchimp or payments. They run once, when the visitor actually submits.

**Do abandoned entries count toward any limit?** No.

**Can I get an email when someone abandons a form?** Not yet. Check **CraftForms → Submissions** filtered by **Abandoned**.

**I turned it on but see no Abandoned entries.** Check that the form has a **Save Submission** action with the box ticked and that the form is saved. Then test in a private window: type into a field, switch to another tab, and refresh Submissions. If the page is served from a cache, clear the cache after enabling the setting.
