Submissions
Submissions are saved immediately with metadata, then processed asynchronously.
For bulk management of test data and archived submissions, see Admin Bulk Management below.
Submission Flow
Reference IDs
Human-readable IDs for status lookup. Uses safe characters (no confusing 0/O, 1/I/l):submission_prefix. Once set, the prefix becomes immutable to prevent broken references.
Submission Data Model
Soft Deletion
Submissions are soft-deleted to preserve auditability and prevent accidental data loss. Instead of deleting rows, we set:deleted_at— when the record was removeddeleted_by— who removed it
Geolocation Tracking
Every submission captures location data for compliance and fraud detection:IP Anonymization
For privacy compliance, IP addresses are anonymized before storage:Data Sources
| Header | Provider | Data Available |
|---|---|---|
x-vercel-ip-country | Vercel | Country code |
x-vercel-ip-city | Vercel | City name |
cf-ipcountry | Cloudflare | Country code |
cf-connecting-ip | Cloudflare | Client IP |
Outcome Field
Theoutcome field stores applicant-visible results. Unlike status (internal workflow), outcome is what the applicant sees on their status page.
Outcome Details
Theoutcome_details JSONB field stores structured data:
Setting Outcomes
Submission Status
| Status | Meaning | Applicant Sees |
|---|---|---|
submitted | Initial state | ”Received” |
pending | Under review | ”In Review” |
approved | Application approved | Outcome text |
rejected | Application denied | Outcome text |
waitlisted | On waiting list | ”Waitlisted” |
withdrawn | Applicant withdrew | ”Withdrawn” |
incomplete | Missing information | ”Action Required” |
Status Changes
Featured Questions
Forms can mark specific questions as “featured” to display prominently in submission lists:Admin Bulk Management
Admins can manage submissions in bulk via the Submissions page (/submissions). This is useful for cleaning up test data, archiving old submissions, and managing large datasets.
Test Flag
Mark submissions as test data for filtering. Test submissions:- Appear with a “Test” badge in the admin UI
- Can be filtered out of reports and exports
- Can be safely deleted
Archive Flag
Archive submissions to hide them from normal views while preserving data:- Hidden from normal submission lists
- Preserved for audit/compliance
- Can be filtered and viewed by admins
- Can be unarchived at any time
Bulk Delete
Only submissions marked as test or archived can be deleted. This prevents accidental deletion of real data:Admin UI Features
The Submissions page provides:| Feature | Description |
|---|---|
| Form filter | Filter by form (with form status sub-filter) |
| Status filter | Filter by submission status |
| Test/Archive filters | Show test-only, real-only, archived, active |
| Email search | Search by applicant email |
| Bulk select | Checkbox selection for bulk actions |
| Mark as Test | Flag selected submissions as test data |
| Archive/Unarchive | Archive or restore selected submissions |
| Delete | Permanently delete test/archived submissions |