Skip to main content
Education template

Tutor Request Form template

Subject, level, availability — everything a coordinator needs to match a student to a tutor in one submission. Rendered live below with the exact HTML behind it.

Rendered

What your visitor sees

Plain semantic HTML rendered through the same default form theme Core Forms applies on the front-end. Try it — this demo confirms inline and sends nothing.

Level

Availability

Demo only. On your site, the same markup wires into the normal Core Forms action loop — email, Slack, Google Sheets, webhook, whatever you configure.

Source

The HTML behind it

Copy this block, paste into Core Forms → Add New Form → Fields tab, save. Field names map to merge tags automatically in your action templates.

<p>
	<label for="cf-tutor-student">Student name <span aria-hidden="true">*</span></label>
	<input type="text" id="cf-tutor-student" name="STUDENT" autocomplete="name" required aria-required="true" />
</p>
<p>
	<label for="cf-tutor-contact">Parent or contact name</label>
	<input type="text" id="cf-tutor-contact" name="CONTACT" />
</p>
<p>
	<label for="cf-tutor-email">Email address <span aria-hidden="true">*</span></label>
	<input type="email" id="cf-tutor-email" name="EMAIL" autocomplete="email" required aria-required="true" />
</p>
<p>
	<label for="cf-tutor-phone">Phone</label>
	<input type="tel" id="cf-tutor-phone" name="PHONE" autocomplete="tel" />
</p>
<p>
	<label for="cf-tutor-subject">Subject <span aria-hidden="true">*</span></label>
	<select id="cf-tutor-subject" name="SUBJECT" required aria-required="true">
		<option value="">Choose a subject…</option>
		<option>Mathematics</option>
		<option>Physics</option>
		<option>Chemistry</option>
		<option>English</option>
		<option>Computer science</option>
	</select>
</p>
<fieldset>
	<legend>Level <span aria-hidden="true">*</span></legend>
	<p>
		<label><input type="radio" name="LEVEL" value="Primary" required /> Primary</label>
		<label><input type="radio" name="LEVEL" value="Secondary" /> Secondary</label>
		<label><input type="radio" name="LEVEL" value="University" /> University</label>
	</p>
</fieldset>
<fieldset>
	<legend>Availability <span aria-hidden="true">*</span></legend>
	<p>
		<label><input type="checkbox" name="AVAILABILITY" value="Weekday afternoons" /> Weekday afternoons</label>
		<label><input type="checkbox" name="AVAILABILITY" value="Weekday evenings" /> Weekday evenings</label>
		<label><input type="checkbox" name="AVAILABILITY" value="Weekends" /> Weekends</label>
	</p>
</fieldset>
<p>
	<label for="cf-tutor-goals">Goals or problem areas</label>
	<textarea id="cf-tutor-goals" name="GOALS" rows="4"></textarea>
</p>
<p>
	<button type="submit">Request a tutor</button>
</p>

When to use it

What this tutor request form template is for

A tutor request form has one job: capture enough to make the match in one pass. Subject, level, and availability are the three facts a coordinator actually schedules against — collect them up front and the five-email back-and-forth ("which subject?", "what year?", "when are you free?") disappears. I've built this form for tutoring agencies, university learning centers, and independent tutors, and the matching fields never change.

The template collects who the student is, how to reach the family, what subject and level they need, and when sessions can happen. Every submission lands in your submissions inbox and can fire an email to the coordinator or a Slack ping to the tutor channel the moment it arrives.

Keep it under a minute to complete. Parents fill these out on phones, often mid-search across three tutoring sites — every extra required field costs you requests. Eight fields, three of them optional, is the ceiling; the goals textarea catches everything else worth knowing.

Every field, and why it's there

FieldTypeRequiredWhy it's there
Student name text Yes The person being tutored — maps to [STUDENT] in your action templates.
Parent or contact name text Optional Optional — often the parent submitting for a school-age student.
Email address email Yes Match confirmations and scheduling go here.
Phone tel Optional Optional — some coordinators prefer to close the match by phone.
Subject select Yes Swap the options for the subjects you actually cover. One select, no free text to misspell.
Level radio group Yes Primary, Secondary, or University — decides which tutors are even eligible.
Availability checkbox group Yes Multiple choices allowed; the coordinator matches against tutor calendars.
Goals or problem areas textarea Optional Exam prep, a failing grade, a specific topic — context the first session needs.
Setup

From this HTML to a working form

  1. Paste the markup into the Fields tab

    Core Forms → Add New Form → Fields tab. Paste the HTML above, swap the subject options for what you actually teach, save. The markup IS the form — no field picker.

  2. Wire the coordinator notification

    In the Actions tab, add Send Email. Subject: "Tutor request: [SUBJECT] — [LEVEL]". Add a Slack action next to it so the tutors channel sees new requests without anyone forwarding email.

  3. Embed it on your tutoring page

    Drop the Gutenberg block on your Request a Tutor page, or use the shortcode in a classic editor. Put it above the fold — parents comparing agencies rarely scroll.

Make it yours

Three upgrades worth considering

Route requests to the right tutor channel

A Slack action can post each request straight into the channel for that subject team, with [SUBJECT] and [LEVEL] in the message. The fastest match is the one tutors see first.

Slack integration →

Track requests in a database view

An Airtable action appends every request as a record — filter by subject, group by level, and mark matches as they close. A lightweight matching board without new software.

Airtable integration →

Ask level-specific questions

Add data-show-if attributes so a "University course code" field appears only when University is selected. One attribute per field, no logic builder.

Conditional logic →
FAQ

Tutor Request Form template questions

How do tutors get notified about new requests?

Through actions on the form. Every submission is stored in the submissions inbox, and each configured action fires on top: an email to the coordinator, a Slack or Discord message to the tutor channel, or both. Tutors see the subject and level before anyone forwards anything.

Can students upload past papers or homework?

Yes — add a file field to the markup and Core Forms handles the upload, storage, and attachment. A past paper or a photo of the problem set gives the tutor a head start on the first session, so I usually add it for exam-prep agencies.

How do I stop spam tutor requests?

Honeypot and rate limiting are built in and on by default, which stops the bot traffic a public education form attracts. No CAPTCHA needed for most sites — I only add one when a form is getting targeted, and a parent on a phone will thank you for skipping it.

Can I charge for the first session on this form?

You can — attach the Stripe action and the form charges a fixed amount at submit time, useful for paid trial sessions. Most agencies skip it though: they confirm the match first, quote, then invoice. The request form works either way; the markup does not change.

The template is free. The plumbing is the product.

Core Forms turns this HTML into stored submissions, spam-filtered email, and 30+ integrations. Use CFLAUNCH for 20% off.