> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hiveku.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Manage Form Submissions

> See every lead your site's forms capture, control who gets notified, and stop spam and duplicates

Every form on a deployed Hiveku site is captured automatically — contact forms, quote requests, newsletter footers, popups. There is nothing to wire up: the first time a form receives a submission, it appears in your project under **Analytics → Forms**, and each new lead can notify your team by email or Slack, create a CRM contact, and trigger workflows.

## Where submissions live

Open your project, click **Analytics** in the sidebar, then the **Forms** sub-tab. You'll see:

* **Each form on your site** as its own record, with a running submission count. Forms register themselves automatically the first time they receive a submission.
* **The Submissions panel** — every captured lead, newest first, with the fields the visitor filled in.

## Work the inbox

The Submissions panel is built to be triaged like an email inbox:

* **Search** across everything a visitor typed, plus form names.
* **Filter** by status (**New**, **Read**, **Responded**, **Spam**, **Archived**), by form, by **Has email**, or by **In CRM**.
* **Bulk actions** — select submissions and choose **Mark as spam**, **Not spam**, **Archive**, or **Delete**.

<Note>
  **Delete** removes a submission from your list but keeps the underlying analytics event, so your form conversion numbers stay accurate. It does not delete a CRM contact the submission may have already created. An **Undo** link appears for 10 seconds after deleting.
</Note>

## Choose who gets notified

Click **Notifications** in the Forms tab.

<Steps>
  <Step title="Set project-wide recipients">
    Under **Send every submission to**, enter up to 10 comma-separated email addresses. These apply to every form on the project unless a form overrides them.
  </Step>

  <Step title="Add a Slack webhook (optional)">
    Paste a `hooks.slack.com` webhook URL. Submissions post to Slack alongside the email — it does not replace it.
  </Step>

  <Step title="Override per form">
    Each form in the **Per form** list can have its own recipients, and its own **Notifying / Muted** toggle. Muting a form stops the email only — the submission is still captured and still appears in the tab.
  </Step>
</Steps>

## Spam protection

Form spam protection has two layers: built-in scoring that is always on, and optional Google reCAPTCHA you can switch on per site.

### Built-in scoring (always on)

Every captured submission is checked for bot fingerprints at the moment it arrives — things like a filled honeypot field, a form submitted faster than a human can type, bursts of submissions from one source, link-only message bodies, and disposable email domains. Analytics and ad-pixel beacons that disguise themselves as form submissions are caught too.

Submissions that score as spam are filed under the **Spam** filter in the Submissions panel. A spam-filed submission is never emailed to you, never added to your CRM, and never triggers a workflow — but it is also never deleted. If a genuine lead lands there, select it and click **Not spam**: it returns to your inbox and the notification email is delivered within a few minutes.

### Google reCAPTCHA (optional)

For sites getting hit harder, add invisible reCAPTCHA scoring on top:

<Steps>
  <Step title="Turn it on">
    Go to **Hosting → Integrations** in your project and toggle **Form spam protection** on. The setting is per environment, so enable it for the environment you care about — usually production.
  </Step>

  <Step title="Pick a sensitivity">
    * **Lenient** — only certain spam is filed. Right for a high-value, low-volume form where a missed lead is expensive.
    * **Balanced** — recommended for most forms. The default.
    * **Strict** — files borderline submissions too. For a form that is actively being hammered.
  </Step>

  <Step title="Deploy">
    The protection attaches at build time, so click **Deploy** after enabling it.
  </Step>
</Steps>

There are no keys to create and no Google account needed — it runs on Hiveku's platform configuration. It is invisible to visitors: no checkbox, no puzzle, and Google is not contacted at all until a visitor focuses a form field.

<Note>
  Nothing is ever deleted by spam protection at any sensitivity. Filed submissions stay under the **Spam** filter and are one click from restored.
</Note>

### Escalate a single hammered form

If one specific form keeps attracting bots, you can require a visible "I am not a robot" checkbox on just that form: open **Forms → Notifications**, find the form in the **Per form** list, and tick **Require a visible "I am not a robot" checkbox on this form**.

<Warning>
  The visible checkbox adds friction for real visitors and blocks submission until it is ticked. Use it only on a form that keeps getting hit, and leave the rest of your forms on invisible scoring. It requires **Form spam protection** to be switched on under Hosting.
</Warning>

## Duplicate prevention

One physical submission produces exactly one lead. A single form submit can be observed more than once — by the page script and by your site's backend, for example — and repeat submits of identical content within a few minutes are common. Hiveku links these captures together automatically, so you see one row in the Submissions panel, receive one notification email, and get one CRM contact. URL variations of the same page (like a trailing slash) count as the same form, not two separate records.

## Troubleshooting

<AccordionGroup>
  <Accordion title="A real lead was filed as spam">
    Open the Submissions panel, set the status filter to **Spam**, select the submission, and click **Not spam**. It moves back to your inbox and the notification email is delivered within about 5 minutes. If it happens repeatedly on the same form, switch the sensitivity to **Lenient** under **Hosting → Integrations**.
  </Accordion>

  <Accordion title="The Form spam protection toggle says Unavailable">
    reCAPTCHA is not configured on your deployment. Built-in scoring still runs regardless. Contact support if you expected the toggle to be available.
  </Accordion>

  <Accordion title="Spam is still getting through">
    Switch the sensitivity to **Strict** under **Hosting → Integrations**, and add the visible checkbox to the specific form being targeted (see above). Remember to **Deploy** after changing the Hosting toggle — the protection attaches at build time.
  </Accordion>

  <Accordion title="I'm not receiving notification emails">
    Check three things in **Forms → Notifications**: that recipients are set (if none are, submissions fall back to the address shown in the hint), that the form isn't **Muted** in the Per form list, and that the submission didn't land under the **Spam** filter.
  </Accordion>
</AccordionGroup>

## What's Next?

<CardGroup cols={2}>
  <Card title="Leads to CRM" icon="user-plus" href="/how-tos/workflow-leads-to-crm">
    Auto-create tagged CRM contacts from form submissions
  </Card>

  <Card title="AI Form Response" icon="robot" href="/how-tos/workflow-ai-form-response">
    Send an instant AI-drafted reply to every new lead
  </Card>

  <Card title="Track Analytics" icon="chart-line" href="/how-tos/track-analytics">
    See the traffic behind your form conversions
  </Card>

  <Card title="CRM Contacts" icon="address-book" href="/how-tos/crm-contacts">
    Manage the pipeline your leads flow into
  </Card>
</CardGroup>
