# Collect and export your store's leads

> See the email addresses shoppers leave on your storefront's sign-up forms and popups, compare how each popup design converts, and export or delete leads.

Source: https://www.coritan.com/docs/organizations/commerce/leads/

In the dashboard:

- /dashboard/organizations/…/commerce/leads: https://www.coritan.com/dashboard/organizations

**Leads** lists the email addresses shoppers left on your storefront's sign-up forms and popups, newest first, and shows how often each popup design turns a view into a sign-up. A lead is not a customer: it is an address and what the form sent with it, kept until you delete it.

## Before you begin

- You need the Tier 1 support role or higher to open **Leads**, and Tier 3 support or higher to delete a lead.
- Your storefront sends the leads. Its sign-up form calls `POST /store/leads` and its popup reports each view with `POST /store/leads/impressions`, as [Build a checkout with the Store API](/docs/organizations/storefront/store-api/#collect-leads) shows. Without those calls the section stays empty.
- Coritan stores no IP address or browser details with a lead.

## Compare popup designs

**By design** has one row per popup design in the period chosen in the list below it:

**Views**
: How many times the storefront reported the design shown. Views are counted per day in UTC.

**Leads**
: How many shoppers signed up through the design in the period.

**Conversion**
: Leads divided by views, such as `4.8%`. It shows no figure when the design had no views.

**No design** counts the sign-ups from forms that name no design, such as a footer form. Select a design's row to filter the list to its leads, and select it again to clear the filter.

## Find a lead

1. In the [dashboard](https://www.coritan.com/dashboard/organizations), open the organization, then **Commerce**, then **Leads**.
2. Search by part of the email.
3. Narrow the list by period (**Last 7 days**, **Last 30 days**, **Last 90 days** or **All time**), by design, by source (where the form is, such as `popup` or `footer`) and by **Marketing consent**.
4. Choose **Live leads** or **Test leads**. The list opens on the store's own mode: test leads while the store is in test mode, live leads once it is live.

The list shows 50 leads a page, with the **Email**, the source under it, the **Design**, **Marketing** (**Agreed** or **Not agreed**) and the date they **Signed up**. Point at **Agreed** to read the words the shopper agreed to. Every filter is kept in the page address, so a reload or a shared link opens the same list.

When the same address signs up again, the lead keeps its first sign-up date and takes the new source, design, consent and details. The storefront gets the same answer for a new address and a known one, so the form never tells a visitor whether an address is already on your list.

## Export leads

1. Filter the list to the leads you want.
2. Select **Export CSV**.

The file holds every lead the filters match, up to 100,000, with the columns `id`, `email`, `source`, `variant`, `consent`, `consent_text`, `livemode`, `created_at`, `updated_at` and `metadata`. A cell that starts with `=`, `+`, `-` or `@` starts with an apostrophe, so a spreadsheet shows it as text instead of running it. Each export is recorded in the organization's audit log.

## Delete a lead

1. Select the lead's actions menu, then **Delete lead…**.
2. Type the lead's email address and select **Delete lead**.

The address is removed from the store for good. The audit log records the lead's number, not its address. If the same address signs up again later, it comes back as a new lead.

## Ask for a Turnstile check on sign-ups

To keep scripts from filling your list, turn on **Turnstile check on sign-ups** under **Storefront settings** in [Settings](/docs/organizations/commerce/settings/#storefront-settings). While it is on and Turnstile is set up for your storefront, a sign-up without a valid Turnstile token is refused. The Store API tells your storefront when to show the check.

## Result

- A lead appears in the list as soon as the storefront sends it, and **By design** counts it.
- A new lead is sent as `commerce.lead.created`, with the lead's number, email, source and design, to your [organization webhooks](/docs/organizations/webhooks/) that listen for every event or for that one. A second sign-up with the same address sends nothing.

## Troubleshooting

**Leads** says the lead list is for Tier 1 support and above
: Your role is **Read only**. Ask an owner or admin for a support role.

The actions menu is missing
: Deleting a lead needs Tier 3 support or higher.

A design shows leads but no views
: The storefront sends sign-ups with that design but does not report its views. Ask your developer to call `POST /store/leads/impressions` each time the popup opens.

**Export CSV** says to narrow the export
: More than 100,000 leads match. Choose a shorter period or add a filter.

The list is empty but shoppers signed up
: Check **Live leads** or **Test leads**. A storefront using a test publishable key sends test leads.

## Related

- [Manage your store's customers](/docs/organizations/commerce/customers/)
- [Set up your store](/docs/organizations/commerce/settings/)
- [Build a checkout with the Store API](/docs/organizations/storefront/store-api/)

## With the API

`GET https://api.coritan.com/api/v1/orgs/{org_slug}/commerce/leads` lists leads with the filters `q`, `source`, `variant`, `consent`, `since`, `until` and `livemode`. `GET /commerce/leads/export` answers the same leads as a CSV, `GET /commerce/leads/stats` the figures per design, and `DELETE /commerce/leads/{lead_id}` deletes one.

```bash
curl "https://api.coritan.com/api/v1/orgs/acme/commerce/leads/stats?since=2026-09-01&livemode=true" \
  -H "Authorization: Bearer $CORITAN_TOKEN"
```

## API

- `GET /api/v1/orgs/{org_slug}/commerce/leads`: Newest first; total is every lead the filters match (https://www.coritan.com/docs/api/reference/organizations/commerce/commerce/#op-get-api-v1-orgs-org-slug-commerce-leads)
- `GET /api/v1/orgs/{org_slug}/commerce/leads/export`: The leads the filters match, as a CSV; 422 when there are more than 100,000 (https://www.coritan.com/docs/api/reference/organizations/commerce/commerce/#op-get-api-v1-orgs-org-slug-commerce-leads-export)
- `GET /api/v1/orgs/{org_slug}/commerce/leads/stats`: Per popup design: views, sign-ups and sign-ups per view (https://www.coritan.com/docs/api/reference/organizations/commerce/commerce/#op-get-api-v1-orgs-org-slug-commerce-leads-stats)
- `DELETE /api/v1/orgs/{org_slug}/commerce/leads/{lead_id}`: Delete lead (https://www.coritan.com/docs/api/reference/organizations/commerce/commerce/#op-delete-api-v1-orgs-org-slug-commerce-leads-lead-id)
