AI Form Integration
Generate ordinary HTML or AJAX forms that submit to Halldon Forms. The server loads form configuration by slug, validates the request, stores the submission, and sends configured notifications. Examples use a fictitious client slug.
Base URL
https://forms.halldon.com
Standard HTML Form
<form method="POST" action="https://forms.halldon.com/api/forms/example-client-contact/submit">
<label>
Name
<input type="text" name="name" required />
</label>
<label>
Email
<input type="email" name="email" required />
</label>
<label>
Message
<textarea name="message" required></textarea>
</label>
<input type="text" name="_gotcha" style="display:none" tabindex="-1" autocomplete="off" />
<button type="submit">Send</button>
</form>AJAX Form
async function submitHalldonForm(event) {
event.preventDefault();
const form = event.currentTarget;
const data = Object.fromEntries(new FormData(form).entries());
const response = await fetch("https://forms.halldon.com/api/forms/example-client-contact/submit", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Accept": "application/json"
},
body: JSON.stringify(data)
});
const result = await response.json();
if (!result.ok) throw new Error(result.message || "Form submission failed");
form.reset();
}AJAX submissions are CORS-enabled. Use the browser default CORS request mode and do not set mode: "no-cors", because that prevents JavaScript from reading success or failure responses.
Required Honeypot
Include an empty _gotcha text field unless the form config uses a different honeypot name.
Recommended Field Names
name email phone company subject message service preferred_contact_method
Rules
Do not include secrets, Firebase credentials, Resend keys, client IDs, notification emails, allowed origins, or settings in public forms.
Unsupported MVP Features
File uploads Payments Conditional logic builder Drag-and-drop form editor Client-side API keys