# AI made your contact form. Why does it not send?

> Diagnose an AI-generated contact form that looks finished but sends no email. Check the endpoint, validation, success state, and delivery destination.

- Canonical: https://pageree.com/guides/ai-contact-form-not-working/
- Published: 2026-09-15. Updated: 2026-09-15.
- Collection: Guides (https://pageree.com/guides.md)
- Site index for agents: https://pageree.com/llms.txt

**The short answer.** A form's appearance does not prove it can deliver a message. The browser needs a real submission endpoint, the server must accept the fields, and a delivery service must reach the destination. Test those three steps separately.

## Separate the form from its delivery service

An AI-generated page can contain attractive fields and a convincing success message without sending anything. The browser displays HTML; it does not automatically provide an email service. A form needs somewhere to submit, rules for accepting the data, and a destination for the accepted enquiry.

There are three useful checks: did the browser make a request, did the server accept it, and did the delivery destination receive it? Keeping those separate prevents hours spent changing button styles when the missing piece is a backend.

If you have not configured delivery yet, start with the [form-to-email guide](https://pageree.com/guides/landing-page-form-to-email/). If the form used to work, preserve the current page and record when the failure began before changing it.

## Identify the symptom

| What you observe | What to inspect next |
|---|---|
| Clicking does nothing | Button type, browser validation, JavaScript errors, and whether a submit handler prevents the request. |
| A success message appears immediately | Whether the message depends on a real server response or is only a mock interaction. |
| A request returns an error | The action URL, request method, field names, validation rules, and response. |
| The page accepts the form but no email arrives | Destination settings, spam folders, delivery errors, and any fallback or recovery record. |
| A webhook succeeds but the CRM is empty | The downstream automation action, field mapping, permissions, and duplicate handling. |

Use made-up details and an inbox you control while diagnosing. Do not paste a customer's message, API key, or full request headers into a public debugging tool.

## Check the HTML contract

Common prototype mistakes include a button with no submit behavior, a `mailto:` link where a server-backed form was expected, missing `name` attributes, and JavaScript that always displays “sent.” A field's visible label is not necessarily the field name the server receives.

Pageree has its own form contract. The assistant should load its form-management skill and construct matching `data-form`, `action`, field names, validation, honeypot and privacy controls. Do not transplant one attribute into an arbitrary form and assume the rest is complete.

For example, a form named `quote` must use the corresponding submission route. If you rename it in one place and not another, the request can no longer match the published schema. Changes to fields need to be published before the live page uses them.

## Give your assistant a diagnostic request

```text
Diagnose the contact form on my existing landing page. Do not redesign the page yet.

Check the form action, method, names, required fields, submit behavior, and success/error handling. For a Pageree page, read the current form-management skill and compare the markup against it.

Separate what you can observe from what I need to check in my browser or inbox. Identify whether the problem is browser submission, server acceptance, or delivery. Keep credentials and customer information out of the report. Propose the smallest fix and show a preview before publishing.
```

Ask for the evidence behind the diagnosis. “Probably a CORS issue” is not useful unless the request actually fails across origins. Likewise, a delivery delay is not proof that the form's markup is broken.

## Test the final destination

After an approved fix is published, send a unique test value such as a timestamped test subject. Check the page result, the accepted lead if available, and the final email or CRM record. These are different observations.

Pageree stores accepted submissions for a 30-day recovery window. Failed HTTP delivery can fall back to owner email. That helps recovery, but it does not mean a downstream automation has completed. If a webhook returns success and later fails inside an automation service, inspect that service's execution history.

The [Google Sheets recipe](https://pageree.com/integrations/google-sheets/) and [HubSpot guide](https://pageree.com/integrations/hubspot/) explain destination-specific checks. Once delivery works, an [AI page audit](https://pageree.com/guides/ai-landing-page-audit/) can help with field clarity and mobile usability. Fix reliable delivery before trying to optimize conversion.

## Related
- [Reduce spam in your landing-page contact form](https://pageree.com/guides/landing-page-form-spam.md): Inspect honeypots, field validation, rate limits, and delivery behavior in a Pageree form. Reduce unwanted submissions without promising zero spam.
- [Send landing-page enquiries to your inbox](https://pageree.com/guides/landing-page-form-to-email.md): Set up an enquiry form with email delivery, check a real submission, and understand the difference between owner notifications and visitor emails.
- [Which fields belong in your landing-page form?](https://pageree.com/guides/landing-page-form-fields.md): Choose form fields by the next business action. Compare signup, consultation, and quote requests, review a worked example, and verify field delivery.

## Build it with your agent

Pageree is an MCP server. Add https://mcp.pageree.com/ to an MCP client that supports Streamable HTTP and OAuth, sign in, and the agent can build, publish and measure the page. Setup for every supported client: https://pageree.com/docs.md. Sign up: https://console.pageree.com/signup.
