Form guides

Everything you need to know about building forms with RizzForms — from basic HTML structure to spam prevention and delivery options.

Form structure

Use semantic HTML: <label> elements, accessible copy, and a submit button. RizzForms stores every field you send as JSON, so include any inputs you need — contact info, hidden metadata, file references, whatever your use case demands.

<form action="https://forms.rizzness.com/f/your-token" method="POST">
  <label for="email">Email</label>
  <input type="email" id="email" name="email" required>

  <label for="message">Message</label>
  <textarea id="message" name="message"></textarea>

  <input type="hidden" name="source" value="homepage">

  <button type="submit">Send</button>
</form>

Every field in the form — visible or hidden — is captured in payload_json. There is no schema to configure up front.

Submission methods

HTML form POST

Set your form's action to your endpoint URL. The browser sends a standard application/x-www-form-urlencoded or multipart/form-data POST request.

<form action="https://forms.rizzness.com/f/your-token" method="POST">
  <!-- your fields -->
</form>

JSON API

For JavaScript-driven forms or server-to-server integrations, POST JSON to the /json/ endpoint:

POST https://forms.rizzness.com/json/your-token
Content-Type: application/json

{
  "email": "[email protected]",
  "message": "Hello from a fetch() call"
}

Both methods store the same data. Choose whichever fits your frontend stack.

Spam prevention

RizzForms provides three layers of spam protection:

  • Honeypot fields. Add a hidden _hp or _gotcha field. If a bot fills it in, the submission is flagged as spam.
  • Turnstile CAPTCHA. Enable Cloudflare Turnstile in your dashboard for an invisible, privacy-friendly challenge.
  • Rate limiting. Each form endpoint allows 60 submissions per minute per IP. Exceeding the limit returns a 429 Too Many Requests response.

For full details, see the Spam Prevention guide.

Special fields

RizzForms stores every field as-is in payload_json. Certain field names — like email, firstName, tags, and priority — also receive extra normalization (trimming, type coercion, validation) and are stored separately in special_normalized.

See Special Fields for the complete reference with before/after examples.

Delivery

Once a submission is captured, RizzForms can deliver it in two ways:

  • Notification emails — automatic email alerts sent to form owners. No plugin required.
  • Plugins — forward submissions to external services like webhooks, Slack, Google Sheets, and 20+ more.

To understand the difference and choose the right approach, read Notifications vs Plugins. For webhook-specific setup, see the Webhooks guide.

Autoresponders

Enable autoresponders to send a confirmation email to the person who submitted the form. Customize the subject line, reply-to address, and Markdown body so submitters know what happens next.

Autoresponders require an email field in the submission. Configure them in the dashboard under your form's settings.