splitforms.com

Maintenance request form

Maintenance request form template that sorts urgent work first.

Ready-made HTML that asks for property, request type, and urgency up front — so emergencies get flagged before anyone reads the full description.

  • 500 free / mo
  • Urgency triage
  • Photo uploads
A maintenance request form submitting property, request type, and urgency to the splitforms dashboard

Auto-triage

Request type and urgency pre-sort every ticket into the right queue on submission.

Spam filtered

The botcheck honeypot and form_loaded_at time-trap reject bot submissions before you see them.

Email + dashboard

Every request lands in your inbox and the splitforms dashboard — no server code.

Copy-paste HTML

Free maintenance request form HTML template.

Maintenance teams need triage before prose — request type and urgency route the ticket the moment it arrives, and a photo fieldset means fewer follow-up calls. Replace YOUR_ACCESS_KEY with the key from your dashboard. Building the intake into a property-management app instead of a static page? The same endpoint accepts a fetch() POST — see the API reference, or route every submission with a signed webhook.

Get free access key
maintenance.html
<form action="https://splitforms.com/api/submit"
      method="POST"
      enctype="multipart/form-data">
  <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY" />
  <input type="hidden" name="subject" value="New maintenance request" />
  <input type="hidden" name="form_loaded_at" id="form_loaded_at" />

  <fieldset>
    <legend>Contact and property</legend>
    <label>Name <input name="name" autocomplete="name" required /></label>
    <label>Email <input name="email" type="email" autocomplete="email" required /></label>
    <label>Property or unit
      <input name="property" placeholder="Building, unit, or service address" required />
    </label>
  </fieldset>

  <fieldset>
    <legend>The request</legend>
    <label>Request type
      <select name="request_type" required>
        <option value="">Choose one</option>
        <option>Plumbing</option>
        <option>Electrical</option>
        <option>HVAC / heating / cooling</option>
        <option>Appliance</option>
        <option>General repair</option>
        <option>Other</option>
      </select>
    </label>
    <label>Urgency
      <select name="urgency" required>
        <option>Emergency - immediate attention</option>
        <option>Today if possible</option>
        <option>This week</option>
        <option>Routine maintenance</option>
      </select>
    </label>
    <label>Describe the issue
      <textarea name="details" rows="5" required></textarea>
    </label>
  </fieldset>

  <fieldset>
    <legend>Photos (optional)</legend>
    <label>Leak, damage, or appliance label photo
      <input name="photo" type="file" accept="image/*" multiple />
    </label>
  </fieldset>

  <input type="checkbox" name="botcheck" style="display:none" tabindex="-1" />
  <button type="submit">Submit maintenance request</button>
</form>
<script>
  document.getElementById('form_loaded_at').value = Date.now();
</script>

Step by step

How to create a maintenance request form tenants will use.

Five steps from a blank page to requests landing in your dashboard and inbox, sorted by urgency.

Capture property and contact details first

Ask for name, email, and property, unit, or service address before anything else — a maintenance ticket without a unit number can't be dispatched.

Add request type and urgency dropdowns

Use select fields for request type (plumbing, electrical, HVAC, appliance, general repair) and urgency (emergency, today, this week, routine) so every request pre-sorts into the right queue on submission.

Let tenants attach photos

Set enctype="multipart/form-data" on the form and add an input type="file" field so tenants can attach a leak photo, damage picture, or appliance label — it helps the right trade get dispatched on the first visit.

Add your access_key and spam protection

Paste your access_key into the hidden field, leave the botcheck honeypot empty, and add the hidden form_loaded_at field (set by the one-line script below) so splitforms can reject submissions that arrive too fast to be human.

Test it, then route by urgency

Submit a test request and confirm it lands in your dashboard and inbox. Connect Slack, email, or a webhook so emergency requests page the on-call tech, and send routine work to a queue in Sheets, Notion, or Airtable.

Routing logic

How do you route a maintenance request form by urgency?

A maintenance request form template is ready-made HTML that tenants, guests, or internal staff use to report a repair — so the issue reaches you instead of getting lost in a text message. Point it at POST https://splitforms.com/api/submit with your access_key and every request lands in your dashboard and inbox. The urgency field feeds three queues without anyone re-typing, and you can route each one with a signed webhook.

  • Emergency — leaks, no heat, no power, lockouts, and anything needing immediate dispatch
  • Trade queue — plumbing, electrical, HVAC, appliance, and general repair categories
  • Operations — route routine work to a weekly queue, spreadsheet, Notion, or field-service system
A maintenance request routed by urgency to on-call dispatch, a trade queue, and operations

Where requests go

Where do maintenance request form submissions go?

Every request is emailed to you and saved to a searchable dashboard — spam filtered before it ever reaches you. Search, export to CSV, or forward it to Slack, a webhook, or property-management software.

  • 500 requests per month, free forever
  • Botcheck honeypot + form_loaded_at time-trap on every plan
  • Webhooks to Airtable, Sheets, Notion, AppFolio, Buildium, or a custom endpoint
Maintenance request submissions in the splitforms dashboard

Form fields

What should a maintenance request form include?

The difference between a ticket you can dispatch and one that triggers a follow-up call is a handful of fields. Ask for these up front and every request arrives ready to route.

  • Property or unit, name, and contact details — a ticket without a unit can't be dispatched
  • Request type and urgency dropdowns so every request pre-sorts into the right queue
  • Optional photo uploads for leaks, damage, or an appliance data plate
The fields a production-ready maintenance request form needs

How SplitForms works

From form to workflow in 3 simple steps.

Connect your form, collect every submission, and send data where it needs to go — without building backend infrastructure.

A SplitForms contact form submission launching straight to your inbox

Add your endpoint

Point your form to your unique SplitForms endpoint. That's it.

HTML form pointing at a SplitForms submit endpoint

Receive submissions

We instantly capture and organize every submission in your inbox.

Submissions inbox with searchable leads and status pills

Route anywhere

Send data to email, spreadsheets, CRMs, webhooks, and 7,000+ apps.

Generic integration tiles for email, sheets, chat, CRM, automate, and webhook

No credit card required. Set up in under 60 seconds.

Connect & automate

Connect your favorite tools and automate everything

SplitForms works with the destinations you route to and the platforms you build on — from Slack and Sheets to WordPress, Shopify, and Next.js.

Connect your SplitForms form to Slack, Google Sheets, Mailchimp, Zapier and more

Trusted by indie teams and agencies shipping forms worldwide

PETAL/COKRAFT.DELINEAR-XBUILD.DEVSTUDIO 71MERIDIANFRAME&CO

Testimonials

Loved by developers shipping at every scale.

40 quotes on record — from indie hacks to agency migrations.

Questions

Maintenance request form questions.

View all FAQs
What should a maintenance request form include?

A useful maintenance request form includes name, contact details, property or unit, request type, urgency, issue description, permission-to-enter notes, and optional photo uploads. The urgency and request type fields are the most important for triage.

Can this route requests to property management software?

Yes. splitforms can email the request, store it in the dashboard, and forward it through a webhook to tools such as Airtable, Google Sheets, Notion, Slack, AppFolio, Buildium, Jobber, Housecall Pro, or a custom endpoint.

Can tenants upload photos?

Yes. Add enctype="multipart/form-data" to the form and use an input type="file" field. Photo uploads run on the Storage integration (available on paid plans), which accepts up to 5 files per submission at 5 MB each — enough room for a few angles of a leak or an appliance data plate.

Is this different from a service request form?

A maintenance request form is usually for existing tenants, customers, or internal facilities teams. A service request form is often lead capture for a contractor. The fields overlap, but maintenance forms need property/unit and urgency triage first.

How do I stop spam maintenance requests?

Every submission passes through the botcheck honeypot — a hidden field that must stay empty — and the form_loaded_at time-trap, which rejects entries submitted too fast to be human. Add per-form allowed domains or strict origin mode, and turn on reCAPTCHA v2 with your own site key for extra coverage.

What does a maintenance request form backend cost?

Free covers 500 requests a month with unlimited forms, email notifications, spam filtering, and the dashboard. Pro is $5/month for 5,000 submissions plus CSV/XML/PDF exports, webhooks, integrations, and an auto-responder. Pro is $5/month for 5,000 submissions with CC/BCC and priority support. The $59 3-Year plan covers 15,000/month. Larger portfolios can use Business (unlimited) — email hello@splitforms.com.

Can I notify the on-call tech immediately, or redirect tenants after they submit?

Yes. Add a hidden subject field to control the notification email's subject line, and a hidden redirect field with a URL to send tenants to a thank-you or next-steps page after they submit. Email notifications to your maintenance team are free on every plan, and you can connect Slack, Discord, Telegram, or a webhook so emergency requests reach the right channel right away.

Simple pricing

Start free. Scale when you need more.

Choose a plan that fits your workflow — from a free form endpoint to full automations, exports, and higher submission limits.

Free

$0

Free forever

 
Best for testing

For side projects and indie devs.

  • 500 submissions / mo
  • Unlimited forms
  • Email notifications included
  • Honeypot spam filtering
  • Submissions dashboard
  • MCP setup stays free
  • No credit card required

3-Year

$59/ 36 months
was $99 · save 40% · new-user price

Pay $59. 3 years sorted.

  • 15,000 submissions / mo
  • Unlimited forms
  • Everything in Pro
  • Renews every 3 years
  • Long-term discount
  • Priority support included
  • Vote on the roadmap

No credit card required on Free • Cancel anytime