Special fields

RizzForms stores all form fields exactly as submitted in payload_json. However, certain field names receive extra normalization and are stored separately in special_normalized. This gives you clean, consistent data for the fields that matter most.

Overview

If a field name matches one of the recognized special fields below, RizzForms will normalize its value (trim whitespace, coerce types, validate values) and include it in special_normalized. Fields that are not recognized are still stored — they just live in payload_json only.

Normalized fields

email

Whitespace is trimmed from both ends.

Before: " [email protected] "
After:  "[email protected]"

firstName

Whitespace is trimmed from both ends.

Before: " John "
After:  "John"

lastName

Whitespace is trimmed from both ends.

Before: " Doe "
After:  "Doe"

name

Auto-computed from firstName + lastName when both are present. You do not need to submit a name field — it is generated automatically.

firstName: "John", lastName: "Doe"
name (computed): "John Doe"

tags

A comma-separated string is converted to an array. Each tag is trimmed. If an array is submitted directly, it is kept as-is.

Before: "urgent,feedback"
After:  ["urgent", "feedback"]

Before: "bug , feature request , urgent"
After:  ["bug", "feature request", "urgent"]

priority

Lowercased and validated against: low, medium, high, urgent. Invalid values default to "medium".

Before: "HIGH"
After:  "high"

Before: "critical"
After:  "medium" (invalid value, defaults to medium)

urgent

Coerced to a boolean. Values like "true", "1", "yes" become true; everything else becomes false.

Before: "yes"
After:  true

_optin

Coerced to a boolean. Use this field as a marketing opt-in signal (e.g., "Subscribe to our newsletter" checkbox).

Before: "1"
After:  true

Honeypot fields (anti-spam)

These hidden fields help catch bots. They are not included in special_normalized — instead, they trigger spam detection.

_hp

A hidden honeypot field that must remain empty. If a bot fills it in, the submission is marked as spam. The value is truncated to 50 bytes.

_gotcha

An alias for _hp with identical behavior.

Add a honeypot to your form by hiding it with CSS:

<form action="https://forms.rizzness.com/f/your-token" method="POST">
  <!-- Honeypot field - hidden from real users -->
  <div style="position: absolute; left: -9999px;" aria-hidden="true">
    <input type="text" name="_hp" tabindex="-1" autocomplete="off">
  </div>

  <label for="email">Email</label>
  <input type="email" id="email" name="email" required>

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

Real users never see or fill in the hidden field. Bots that auto-fill every input will trigger the spam flag.

Full example

Here is a complete before/after showing how normalization works:

Raw submission (payload_json)

{
  "email": " [email protected] ",
  "firstName": "John",
  "lastName": "Doe",
  "tags": "urgent,feedback",
  "priority": "HIGH",
  "message": "Hello"
}

Normalized output (special_normalized)

{
  "email": "[email protected]",
  "firstName": "John",
  "lastName": "Doe",
  "name": "John Doe",
  "tags": ["urgent", "feedback"],
  "priority": "high"
}

Notice that message does not appear in special_normalized because it is not a recognized special field. It is still stored in payload_json and included in webhook deliveries, email notifications, and API responses.