# Form entries

URL: https://docs.sparklayer.io/help/forms/entries

Review SparkLayer form entries, approve or reject trade applications into a customer group, export entries to CSV, and edit entries or check workflow runs.

> **Quick summary**
>
> - An entry is one submission of a form. To see a form's entries, go to **Forms** in the SparkLayer Dashboard ([open](https://app.sparklayer.io/forms)) and click the form's name, or **View entries**. Forms is only in the SparkLayer Dashboard, not in the SparkLayer Wholesale app in Shopify admin.
> - For a trade application, click the applicant, choose their **Customer group**, then click **Approve** or **Reject**. Approving creates the buyer in your store with that group's tag, so they see trade prices when they sign in.
> - **Approve**, **Reject** and the application status run on [workflows](https://docs.sparklayer.io/help/forms/workflows.md), which are on the Growth plan and above (see [Plans and features](https://docs.sparklayer.io/help/plans-and-features.md)). Without them, [approve applications by hand](#approve-an-application-without-workflows).
> - Click **Export** to download a form's entries as a CSV file.
> - You can edit an entry after it's submitted, and each entry keeps a history of its revisions and workflow runs.

## How it works

An entry is created as soon as someone starts filling in a form, with the status **draft**. When the customer submits a valid form, the status changes to **complete**.

To track your own statuses, such as "Awaiting review" or "Approved", add [internal fields](https://docs.sparklayer.io/help/forms/setup.md#add-internal-fields) to the form. The **Wholesale Registration Form** template already has them, and shows each application as **Pending**, **Approved** or **Rejected**.

From application to buyer:

1. **Application submitted**: The entry shows as Pending
2. **You decide**: Choose the customer group, then Approve or Reject
3. **Buyer created**: Approved buyers are added to your store with the group's tag
4. **Buyer signs in**: They see their group's trade prices

Each entry stays linked to the [form version](https://docs.sparklayer.io/help/forms/versions.md) it was created with. Its answers always show in the right structure, even after you change the form.

When a logged-in customer fills in the form, their customer ID is saved with the entry. (A logged-in customer is one synced to SparkLayer and signed in at the time.) You can use the ID in display logic, default values and workflows through [data references](https://docs.sparklayer.io/help/forms/data-references.md#logged-in-sparklayer-customer).

## View entries

1. In the SparkLayer Dashboard, go to **Forms** in the SparkLayer Dashboard ([open](https://app.sparklayer.io/forms)).
2. Click the form's name, or **View entries** in its row.

The form's entries screen has **Export** and **Edit form** at the top. For the Wholesale Registration Form, the table shows each entry's **Applicant** (with their company), **Email**, **Country**, **Submitted** date and **Status**.

**More detail**

- Search by name, company or email.
- A dot (●) before a name means the entry is unread, when [read/unread tracking](https://docs.sparklayer.io/help/forms/setup.md#configure-form-settings) is on. The **Unread** column on the Forms screen counts them, for example "2 new".
- When applications are waiting, a banner says how many, for example "2 applications waiting for a decision".
- No entries yet? On a published form, click **Add it to your store** to get the embed options. On a draft form, publish it first.

## Approve or reject an application

1. Open the form's entries and click the applicant's name.
2. Check their company, email and country.
3. Under **Your decision**, choose the **Customer group** they should join. Each group shows its price list, for example "Trade · Trade 20%".
4. Tick **Tax exempt** if the buyer shouldn't pay tax. This sets the Shopify tax exemption on the customer.
5. Click **Approve**, or **Reject** to turn them down.

| Decision | What happens |
| --- | --- |
| **Approve** | The buyer is created as a customer in Shopify with the group's tag, and emailed. They can sign in and see trade prices straight away. |
| **Reject** | The buyer is sent your rejection email. |

The decision runs the form's **Approve/Reject workflow**, which you can change on the **Workflows** tab. See [Form workflows](https://docs.sparklayer.io/help/forms/workflows.md). Once decided, the entry shows its status. If you open it again, you see the decision only.

> **Approve and Reject need workflows**
>
> The **Approve** and **Reject** buttons, the **Application status** and the emails to applicants are all run by workflows, which are on the Growth plan and above (see [Plans and features](https://docs.sparklayer.io/help/plans-and-features.md)). On a plan without workflows, the buttons still show, but clicking them does nothing.

On BigCommerce, approving creates the customer in BigCommerce. See [Use SparkLayer Forms on BigCommerce](https://docs.sparklayer.io/help/platforms/bigcommerce/install.md#use-sparklayer-forms-on-bigcommerce) for what to check first.

### Approve an application without workflows

On a plan without workflows, review and approve applications by hand:

1. Check the form's **Entries** tab for new applications. No email tells you about them.
2. To approve someone, create them as a customer in your platform. On Shopify, add the customer at **Customers** ([open in the Shopify admin](https://admin.shopify.com/customers)) with the `b2b` tag plus their group's tag, for example `b2b-trade`. See [Assign customers to a customer group](https://docs.sparklayer.io/help/customers/add-customers-to-a-group.md#assign-customers-to-a-customer-group).
3. Let the applicant know yourself, whether you approve them or not.

Shopify Flow can't start from a SparkLayer form submission, so you can't automate these steps with Flow.

## Filter entries with views

A view saves which columns the table shows and which filters it applies. You can add as many views as you need, for example an "Awaiting review" view for a registration form.

| View | What it shows |
| --- | --- |
| **Default View** | The **Submitted at** date and time, and the first three fields of each entry. |
| **All Fields** | Every column. Mostly used for exporting entries to CSV. |

To create a view, open the form's entries, click **New view** and choose the columns and filters.

## Export entries

1. Open the form's entries.
2. Click **Export** to download the entries as a CSV file.

## Open an entry

Open an entry to see everything about one submission. Click the entry, and you see:

- Every answer, grouped by page
- The internal fields for your team to fill in
- System metadata (see [Entry metadata](#entry-metadata))
- Workflow activity
- Attached files
- The revision history

### Files and attachments

Files from file upload fields appear in the entry, with their name, type and size. Click a file to preview or download it. Files stay linked to the entry and follow the same permissions. Deleting the entry deletes its files.

## Edit an entry

You can edit an entry after it's submitted, for example to correct a mistake, update account details or continue an internal process.

1. Open the entry.
2. Click **Edit**.
3. Update the fields you need to change.
4. Add a message explaining why you made the edit. We recommend it, as it's kept with the revision.
5. Save your changes.

When you save:

- Validation runs again
- Conditional logic is re-evaluated
- Related workflows may run, depending on how they're set up
- A new revision is recorded

Some fields can't be edited: read-only fields, system-generated values, calculated or derived fields, and locked workflow outputs. A disabled field is controlled by the form's setup or by a workflow.

### Revisions

SparkLayer records every admin edit as a revision. You can see who changed what, restore previous values and follow how workflows updated the entry over time. This helps with onboarding and approval processes, where an entry changes over several steps.

| Revision detail | Example |
| --- | --- |
| **Editor** | An admin or the system. |
| **Timestamp** | When the change happened. |
| **Field updates** | The previous and new values. |

## Delete an entry

On the entries table, click **Delete** on the row. 

> **Deleting an entry is permanent**
>
> Deleting an entry also removes its uploaded files and its workflow history, and can't be undone. Export the entry first if you might need it later.

## Check workflow runs

Each entry keeps a history of the [workflow](https://docs.sparklayer.io/help/forms/workflows.md) runs against it. For each run, you can see when it started, whether it succeeded or failed, how long it took, its logs and each step's output.

You can diagnose most problems this way without a developer. If a workflow fails:

1. Open the failed run.
2. Find the step that failed.
3. Check its input data and error message. The Wholesale Registration Form also shows it in the entry's **Error message** internal field.
4. Correct the entry or the workflow, then run it again.

## Entry metadata

Each entry also stores system information, such as its ID, its form version and when it was submitted.

**Every metadata field**

| Metadata | What it is |
| --- | --- |
| **Entry ID** | The entry's unique identifier. |
| **Entry key** | The key needed to see and edit the entry in the form (the `entry-key` [embed attribute](https://docs.sparklayer.io/help/forms/embedding-and-styling.md#embed-attributes)). |
| **Form version** | The version the entry was submitted with. |
| **Created at** | When the draft entry was created, which is when the customer started filling in the form. |
| **Updated at** | When the entry last changed. |
| **Submitted at** | When the customer submitted the entry. |
| **Status** | The entry's current status, such as **draft** or **complete**. |

## FAQs

**I click Approve and nothing happens**

The **Approve** and **Reject** buttons run workflows, which are on the Growth plan and above. On a plan without them, the buttons do nothing: [approve the application by hand](#approve-an-application-without-workflows). On a plan with workflows, [check the workflow runs](#check-workflow-runs) on the entry to see which step failed.

**Why don't I get an email when someone submits a form?**

Submission emails come from the form's **Notification of submission** workflow. Check it's on the **Workflows** tab and published, and that your plan includes workflows (Growth and above). See [Get notified of new submissions](https://docs.sparklayer.io/help/forms/setup.md#get-notified-of-new-submissions).

**Can Shopify Flow act on a form submission?**

No. Shopify Flow can't start from a SparkLayer form submission. Use the form's own [workflows](https://docs.sparklayer.io/help/forms/workflows.md) instead.

**Approving failed on BigCommerce**

BigCommerce rejects the new customer if one already exists with that email, or if the address is missing a state or region that the country needs (such as Australia). Edit the entry to add the missing details, then approve it again. See [Use SparkLayer Forms on BigCommerce](https://docs.sparklayer.io/help/platforms/bigcommerce/install.md#use-sparklayer-forms-on-bigcommerce).
