A whitelist form your community doesn't suspect is a Google Form.
Your application is a Google Form that dumps into a spreadsheet that someone checks manually, approves via DM, logs in a separate channel. There is no system, just vibes. Build it in our dashboard. Share the URL. Discord pings when a submission lands. Manage and respond from one place.
BUILD · PREVIEW · DISCORD PING · LIVE LOOPLIVE DEMO
01 · BUILD
Whitelist Application
apply.moonrp.com/apply
Discord handle
text · required
Age
number · min 16 · required
RP experience
paragraph · 2000 ch.
Why join us?
paragraph · required
+ Evidence
file · 100 MB · img/video
02 · LIVE PREVIEW
Whitelist · moonrp
RP EXPERIENCE
5+ years across heaven RP...
1840 / 2000
03 · DISCORD WEBHOOK · 642ms
SOserverops.ggjust now
New submission · Whitelist Application
@bigcheater99 · age 23 · 1840 ch. experience
VIEW SUBMISSION
SECTION 02 · WHY THIS EXISTS
Your intake pipeline is three apps duct-taped to a spreadsheet.
Three current approaches. None of them connect to the rest of your moderation tooling.
OPTION A
Google Forms
✕No webhook. No real-time notification. No Discord integration.
✕Results dump into a spreadsheet with no workflow attached.
✕No custom domain. Branded with Google, not your community.
✕Cannot link a submission to anything else you do.
OPTION B
Typeform
✕Webhook exists. It costs extra.
✕No Discord-native integration without a third-party Zapier step.
✕Per-submission pricing at scale.
✕Submission dashboard is disconnected from your other server tooling.
OPTION C
Discord bot modals
✕Limited to five fields per modal.
✕No file attachments.
✕Responses lost in a bot channel that fills up daily.
✕No archive. No search. No export.
SECTION 03 · HOW IT WORKS
Three steps. Form live in five minutes.
01
Build it in the dashboard.
Drag fields onto the canvas: short text, paragraph, multiple choice, file upload, checkbox, date. Mark required fields. Title and confirm message.
fields · 7 types · per-field validation · live preview
02
Share the URL.
Every form gets a subdomain: yourorg.serverops.gg/apply. Pro adds your own domain: apply.yourrp.com. Publicly accessible, no login required for applicants.
subdomain · auto · custom domain · CNAME · Pro+
03
Manage what arrives.
Submission lands, webhook fires to Discord. In the dashboard: view, filter, search, leave internal notes, change status, escalate to a Case.
webhook < 800ms p99 · embed-formatted · retry on 5xx
SECTION 04 · WHAT YOU GET
Six pieces that replace "check the spreadsheet".
Each does one job. All available from Hobby. Higher plans raise the limits, not the feature set.
AFEATURE · A
Form builder, drag and drop.
Drag-and-drop field ordering. Seven types: short text, paragraph, number, multiple choice, checkbox, file upload, date, section divider. Per-field options: required toggle, help text, placeholder, character limit, accepted file types, size cap.
▸7 field types, drag-to-reorder
▸Per-field validation rules
▸Section dividers for long forms
▸Live preview panel updates as you build
FIELD PICKER · OPEN
+ ADD FIELD
short text
text
paragraph
long
number
0-inf
multi-choice
radio
checkbox
bool
file upload
500 MB
date
iso
CANVAS
≡ Discord handle
≡ Age
≡ RP experience
+ paragraph · dragging here
BFEATURE · B
Custom subdomain & custom domain.
Every org gets a subdomain on serverops.gg automatically. On Pro, bring one custom domain. On Scale, up to 10 domains. The form at apply.moonrp.com looks like it belongs to the community, not a third-party form tool.
▸moonrp.serverops.gg, automatic
▸apply.moonrp.com on Pro, CNAME setup
▸HTTPS secured automatically
▸10 domains on Scale
SETTINGS · CUSTOM DOMAIN
YOUR DOMAIN
apply.moonrp.comACTIVE
DNS · CNAME
TYPEHOSTVALUE
CNAMEapplyforms.serverops.gg
TLS provisioned · 4m ago
CFEATURE · C
Discord & webhook notifications.
Set a webhook URL per form. POST fires immediately when a submission arrives. Discord embed format is preconfigured: form name, submission timestamp, first three field values, and a button linking to the dashboard.
▸Discord embed, preconfigured
▸Any HTTPS endpoint supported
▸Retry on 5xx, 5 attempts, backoff
▸Send test button before going live
WEBHOOK · TEST PING
DESTINATION
https://discord.com/api/webhooks/9k4...
SEND TESTSAVE
200 OK · 642ms
DISCORD · PREVIEW
New submission
@bigcheater99 age · 23 exp · 1840 ch.
VIEW SUBMISSION
DFEATURE · D
Submission management.
All submissions for a form in one paginated list. Filter by status (New, In Review, Approved, Rejected, custom). Search by any text field value. Sort by date. Open a submission to see the full response with file attachments inline. Internal notes. Status change.
▸Filter by status, date, field value
▸Search across all text fields
▸Internal notes, staff only
▸Bulk export: CSV / JSON
WHITELIST · 142 SUBMISSIONSFILTER · NEW · 28
NEW · 28REVIEW · 14APPROVED · 88REJECTED · 12
SUB-1428@spaceaceage 274m ago
SUB-1427@dawnpatrolage 2118m ago
SUB-1426@thirdrailage 321h ago
SUB-1425@bigcheater99age 232h ago
EFEATURE · E
Status notifications back to the applicant.
When you change a submission to Approved or Rejected, the applicant receives an email with a per-status message you set once. The email comes from your domain or from a ServerOps.gg address by default.
▸Per-status email templates
▸Variables: name, form, decision
▸Send from your own address, signed for deliverability
Hi {{name}}, Thanks for applying to {{form}}. Unfortunately we can't move forward at this time.
moonrp staff
SEND NOTIFICATIONSKIP
FFEATURE · F
Escalate to a Case, one click.
Any submission can become a Case. The case is pre-populated with the submission data and any attachments. This is the bridge between an inbound form (public-facing, Apps) and an internal investigation workflow (private, Cases). Starts as a form, becomes a case if needed.
▸Open as Case, single click
▸Fields map to case fields
▸Attachments inherit legal hold
▸Link preserved both directions
SUB-1425 → CAS-0482 · OPENING AS CASE
SUB-1425
Ban appeal · @bigcheater99
3 fields · 2 attachments
→
CAS-0482 · DRAFT
Ban appeal · @bigcheater99
fields mapped · 2 attachments · HOLD
Link preserved · both records reference each other forever.
SECTION 05 · PRICING
Plans that scale with how much your community actually applies.
At the submission cap, the form shows a friendly closed page to new applicants. Existing submissions are never deleted: you upgrade, close out, or wait for the next billing period.
APPS · TIERS
Pick the smallest tier you can. Upgrade in one click. No migration, no downtime.
† All public forms get Cloudflare Turnstile (CAPTCHA) automatically. No setup, no key, no developer involvement.
SECTION 06 · CODE
Two integrations. The rest happens in the dashboard.
The webhook payload is what your bot or endpoint will parse. The submissions API is for orgs that submit programmatically, for example an in-game /apply command that fires on the player's behalf.
3 SAMPLES · APPS API
// POSTed to your endpoint when a submission arrives
{
"form_id": "frm_01J2K7M9R5XQ",
"form_name": "Whitelist Application",
"submission_id": "sub_01J2K7N0PQ4R5",
"submitted_at": "2026-05-12T14:08:21Z",
"responses": {
"discord_handle": "@bigcheater99",
"player_age": 23,
"rp_experience": "5+ years across Roleplay Heaven...",
"why_join": "Looking for a serious server with...",
"evidence": [
{
"filename": "previous-server-screen.png",
"url": "https://cdn.serverops.gg/...",
"size_b": 1418240
}
]
},
"dashboard_url": "https://app.serverops.gg/forms/frm_.../sub_..."
}
Need the full submission schema, webhook retry policy, or domain setup guide?APPS API REFERENCE→
SECTION 07 · COMPARED
How Apps stacks up against the form tools you're using today.
SERVEROPS APPS
GOOGLE FORMS
TYPEFORM
DISCORD MODALS
Custom domain
✓
✕
✕
✕
Real-time webhook
✓ · < 800ms p99
✕
~ · paid add-on
~ · bot-side
Discord-native format
✓ · preconfigured
✕
✕ · needs Zapier
✓
File upload fields
✓ · 500 MB
~ · 10 MB
~ · 200 MB
✕
Submission dashboard
✓
~ · sheet
✓
✕
Status workflow
✓ · custom
✕
~ · paid plan
✕
Applicant email notify
✓ · per-status
✕
~ · paid
✕
Cases integration
✓ · one click
✕
✕
✕
No per-submission fee
✓
✓
✕
✓
Search submissions
✓ · across all fields
~ · spreadsheet filter
~ · per workspace
✕
SECTION 08 · USE CASES
Four patterns that show why a community deserves a real form.
WHITELIST APPLICATION
apply.moonrp.com, staff get a ping, approve in one place.
Applicants fill in the form on your domain. Staff get a Discord notification immediately. They review the response, approve or reject in the dashboard, the applicant gets an email. No spreadsheet. No DM.
apply.moonrp.com
✓applicant fills form
✓discord ping to staff
✓staff reviews in dash
✓approved: email sent
·whitelist role granted
STAFF HIRING
Moderator, admin, dev applications. Approved, auto-Case.
Multi-section form with a paragraph essay, a why-do-you-want-to-join field, a Discord handle. Approved applications automatically open a Case for the final interview stage.
SUB-0881 · APPROVED
moderator application
auto-case opened CAS-0119 · draft
BAN APPEAL INTAKE
Public appeal form, draft Case auto-created on submission.
Public ban appeal form. Submitter attaches their evidence directly in the form. A draft case is created automatically. Staff review in Cases, not in a Discord thread.
AUTO-CASE · DRAFT
ban appeal submitted
evidence attached
POST /v1/cases
CAS-0482 created
EVENT SIGNUP
Cap at 32 players. Auto-close at limit. Confirmation email out.
Event signup with a hard cap. Form auto-closes when submissions hit 32. Attendees get a confirmation email with the event details and a calendar attachment.
EVENT SIGNUP
28/32 spots taken
auto-closes at 32
SECTION 09 · FAQ
Things people ask before they replace their Google Form.
01
Can I embed the form on my own website?
Yes. Every form has an iframe embed snippet. Drop it into your existing site, the form takes the host page's width.
02
Is there a CAPTCHA to prevent spam submissions?
Yes. Cloudflare Turnstile is applied automatically on all public forms. No setup, no key, no developer involvement.
03
Can I add conditional logic, show field B only if field A is answered a certain way?
Not in v1. Conditional logic is on the roadmap. Today: use sections with clear headers and let applicants skip what doesn't apply.
04
What file types can applicants upload?
Configurable per field. Images, PDFs, video, or any type up to the per-file size cap. Cap is 10 MB on Hobby, 100 MB on Pro, 500 MB on Scale.
05
What happens to my forms and submissions if I cancel?
Submissions follow the standard subscription lifecycle: 21-day read-only, then archive, then deletion. Export before you cancel if you need long-term records.
06
Can two staff review submissions simultaneously?
Yes. No lock on a submission. Last write wins on status changes. The activity log records who changed what and when.
07
Is there a submission limit before the form auto-closes?
Yes. Set a max submission count per form. Once reached, the form shows a closed page to new visitors. Existing submissions are preserved.
08
Can I re-open a closed form?
Yes. Toggle the form status back to Active in settings. The submission counter does not reset: you can adjust the max separately.
SECTION 10 · START
Your community deserves better than a Google Form.
Fourteen days of Pro. No card. Custom domain works in the trial. Stay if it works. Walk if it doesn't.