Halldon Forms

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