You add a form to your website. A user fills it out and clicks “Submit.”
What happens next?
For most developers, this is where things get messy. You need to capture the data, validate it, check for spam, handle errors, send notifications, and somehow make sense of who submitted what and when.
With FormsReady, every submission is automatically enriched with metadata and security checks.
What is a Form Submission?
A form submission is created every time someone submits your form—whether it’s a traditional HTML <form> or a custom fetch request. Each submission is a complete snapshot of:
- The data submitted (all form fields)
- Who submitted it (IP address, user agent)
- When it was submitted (timestamp)
- Security status (bot detection, spam verification)
- Processing status (pending, completed, failed)
Think of it as a receipt for every interaction with your form.
Anatomy of a Submission
When FormsReady receives a form submission, we capture the following information:
User Data
The actual form fields submitted by the user—whether it’s an email, message, phone number, or any custom fields you’ve added.
Metadata
Every submission includes:
- IP Address: Where the request came from
- User Agent: Browser and device information
- Timestamp: Exact date and time of submission
This helps you understand your users and track patterns.
Spam & Bot Protection
FormsReady automatically analyzes every submission:
- Bot Detection: Is this a real human or an automated script?
- Spam Status: Does this submission look like spam?
- Verification Status: Has the submission passed all security checks?
If spam protection is enabled, submissions go through verification before being marked as legitimate.
Processing Status
Every submission has a status:
- Created: Just received, waiting to be processed
- Pending: In the queue
- In Progress: Currently being processed
- Completed: Successfully processed and delivered
- Failed: Something went wrong (with detailed error messages)
Rate Limiting
To prevent abuse, FormsReady tracks if a submission was rate-limited. If too many submissions come from the same IP in a short period, we’ll flag it to protect your endpoint.
Viewing Your Submissions
In the FormsReady dashboard, you can view detailed information about each submission:
Submission #12345
📅 Submitted: Jan 22, 2025 at 3:45 PM
🌍 IP Address: 192.168.1.1
👤 User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X...)
🛡️ Spam Protection
✅ Verified
✅ Human Verified
❌ Not Spam
📧 Autoresponder Email
✅ Email Sent
To: user@example.com
Subject: Thanks for contacting us!
Sent: Jan 22, 2025 at 3:45 PM
📝 Form Data
Email: user@example.com
Message: I'd love to learn more about your service!
When Things Go Wrong
Sometimes submissions fail. Maybe the webhook endpoint is down, or there’s an issue with your autoresponder template.
FormsReady tracks errors for you:
- Error Messages: Detailed logs of what went wrong
- Retries: We automatically retry failed submissions
- Retries Left: Track how many retry attempts remain
This means you’ll never lose a submission—even if something breaks temporarily.
HTTP vs HTML Forms
FormsReady accepts submissions from two sources:
Traditional HTML Forms
<form action="https://api.formsready.io/workflows/$id$" method="POST">
<input type="email" name="email" required>
<textarea name="message"></textarea>
<button type="submit">Send</button>
</form>
Custom Fetch Requests
await fetch('https://api.formsready.io/workflows/$id$', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ email: 'user@example.com', message: 'Hello!' })
});
Both create the same type of submission with the same metadata and security checks.
The Bottom Line
Every submission in FormsReady is more than just form data. It’s a complete record of who submitted, when, from where, and whether it passed security checks.
You get full visibility into every interaction with your forms—without writing a single line of backend code.
Ready to see it in action? Create your first form and watch the submissions roll in.
— The FormsReady Team