Skip to main content

New Starter Pipeline

The New Starter Pipeline replaces a standalone CRM (such as GoHighLevel) with a fully integrated lead funnel — built into r4ptor at no extra cost.

How it works

  1. A prospective student finds your club (via a Meta ad, a Google search, a link on your website, etc.)
  2. They click through to your public trial booking form at https://yourclub.r4ptor.app/join
  3. They choose a class, pick a trial date, and enter their details — no account, no login
  4. The booking lands in your Trial Starters pipeline dashboard instantly
  5. Automated comms fire in the background (confirmation, 24-hour reminder, nurture emails)
  6. You track the lead through the funnel until they convert to a full member

The /join booking form

The booking form is a public page — no login required, accessible from any device.

What the form collects

FieldRequired
Child's first and last nameYes
Child's date of birthYes
Parent / carer nameYes
Parent / carer phoneYes
Parent / carer emailYes
Class selectionYes
Trial date selectionYes
How did you hear about us?Yes
Medical conditions / allergiesOptional
SMS marketing consentOptional opt-in

Attire acknowledgements

Three configurable checkboxes appear before submission (all required). The default items are:

  • I understand my child should wear comfortable, loose-fitting clothing to their first trial
  • I understand training takes place in bare feet
  • I understand punctuality is important — please arrive 5 minutes before the start time

To customise these for your club, set TRIAL_FORM_ATTIRE_ITEMS in Settings → App Settings as a JSON array of strings.

Rate limiting

The form is rate limited to 5 submissions per IP address per hour to prevent spam.

Disabling the form

To temporarily close online bookings (e.g. over a holiday period), set TRIAL_FORM_ENABLED to false in App Settings. The /join URL will display a "bookings currently closed" message.


Trial Starters pipeline

Access the pipeline from the New Opportunities tile on the home screen.

Lead statuses

Leads move through a defined funnel:

StatusMeaning
NEWLead received — not yet contacted
CONTACTEDYou've reached out but no trial booked yet
TRIAL BOOKEDTrial date confirmed
TRIAL ATTENDEDThey came — decision pending
TRIAL COMPLETEBoth sessions attended — eligible for membership offer
CONVERTEDSigned up as a full member (mandate confirmed by bank)
LOSTNot proceeding (can be re-opened to NEW)

Filtering

Use the filter tabs at the top of the pipeline list to show leads by status, or view all active leads (any non-terminal status) at once.

Lead detail sheet

Tap any lead to open the detail sheet. From here you can:

  • View all contact details
  • Move the lead to the next status
  • Add or edit internal notes
  • View the full comms history for this lead
  • Delete the lead (admin only)

Adding leads manually

Use the + button to add a lead without them going through the public form — useful for walk-ins, phone enquiries, or referrals.


Automated comms

In development

Automated comms (NSP-4) are in active development and will be available before July 2026.

The following comms fire automatically once the cron job is active:

TemplateTriggerChannel
TRIAL_CONFIRMATIONImmediately on form submitSMS
TRIAL_REMINDER_24H24 hours before trial dateSMS

All templates are configurable via Comms → Templates in the admin panel.


Ad campaign attribution (UTM tracking)

r4ptor automatically captures UTM parameters from the /join URL and stores them against each lead. This tells you exactly which ad or campaign generated each trial booking, without any manual tracking.

How it works

When someone clicks your ad and lands on /join?utm_source=meta&utm_medium=paid&utm_campaign=june-adults, r4ptor reads those parameters silently in the background. The lead is created in the pipeline with the source tagged.

In the pipeline you'll see a coloured attribution chip on each tagged lead card:

UTM sourceChip colour
meta / facebook / fbBlue — Meta
googleGreen — Google
instagramPink — Instagram
tiktokDark — TikTok
Any other valueGrey — value capitalised

Opening a lead's detail sheet shows the full attribution: source chip, medium, and campaign name.

Leads added manually or via the public form without UTM parameters fall back to showing the free-text "How did you hear about us?" answer instead.

Naming conventions

UTM parameters follow a widely-used standard (originally from Google Analytics) that all major ad platforms recognise. Stick to these conventions and your data will be consistent across tools.

Rules:

  • Always lowercase
  • No spaces — use hyphens (adults-june, not Adults June)
  • Be consistent — meta everywhere, not meta sometimes and facebook other times
ParameterWhat it tracksStandard values
utm_sourceWhich platformmeta, google, instagram, tiktok, website, email
utm_mediumThe channel typepaid-social (FB/IG ads), cpc (Google paid search), email, organic-social (free posts)
utm_campaignYour campaign nameadults-june, snakes-cranes-summer, brand
utm_source drives the chip colour in r4ptor

The pipeline chip is based on utm_source. Use meta for all Facebook and Instagram ads (even if they run on Instagram — they're managed through Meta Ads Manager). Use instagram only if you're tracking organic Instagram posts separately.

Building your URL

Take your base /join URL and append the parameters with ? then & between each one:

https://yourclub.r4ptor.app/join?utm_source=meta&utm_medium=paid-social&utm_campaign=adults-june

You can also use Google's Campaign URL Builder (free, no account needed) to build URLs without typing manually — search "Google Campaign URL Builder" and paste your /join URL as the website URL.

Ready-to-use examples

Meta (Facebook/Instagram) paid ad:

https://yourclub.r4ptor.app/join?utm_source=meta&utm_medium=paid-social&utm_campaign=adults-june

Google paid search ad:

https://yourclub.r4ptor.app/join?utm_source=google&utm_medium=cpc&utm_campaign=kung-fu-london

Link on your own website:

https://yourclub.r4ptor.app/join?utm_source=website&utm_medium=organic&utm_campaign=homepage-cta

Organic social post (Instagram/Facebook):

https://yourclub.r4ptor.app/join?utm_source=instagram&utm_medium=organic-social&utm_campaign=june-post

Adding the URL in Meta Ads Manager

Meta has a built-in URL parameter builder so you don't have to construct the string manually:

  1. In Meta Ads Manager go to the Ad level (not campaign or ad set)
  2. Under Destination → Website URL, paste your base URL: https://yourclub.r4ptor.app/join
  3. Click Build a URL Parameter (appears below the URL field)
  4. Fill in the fields — Meta will append them automatically
  5. Alternatively, just paste the full UTM-tagged URL directly into the Website URL field

Use the same utm_campaign value for all ads within one campaign. Only change it when you start a genuinely new campaign push — this lets you count total bookings per campaign across all creatives.

What you can and can't track

Traffic sourceUTM chip in r4ptor?Notes
Meta / Facebook paid ad✅ YesYou set the URL in Ads Manager
Instagram paid ad✅ YesSame — managed through Meta Ads Manager
Google paid search✅ YesSet destination URL in Google Ads
Organic Google search❌ NoGoogle doesn't pass UTMs on organic results
Link on your website✅ YesAdd ?utm_source=website to your CTA
Organic social post✅ YesAdd UTMs to the link in your post caption
Word of mouth / walk-in❌ NoUse the manual add + free-text source field

Meta Pixel integration

If you run Meta (Facebook/Instagram) ads, connect your Pixel so that every trial booking fires a CompleteRegistration conversion event. This combines with UTM tracking: Meta can optimise for bookings and r4ptor tells you which leads actually came from Meta.

  1. Go to Settings → App Settings
  2. Add your Pixel ID as META_PIXEL_ID
  3. Save — the Pixel fires automatically on the /join/confirmed page after every successful submission

Switch your campaign objective to Conversions

Once your Pixel is firing, go to Meta Ads Manager and change your campaign objective from Traffic or Reach to Conversions, setting CompleteRegistration as the conversion event.

This makes your ad spend work significantly harder: Meta's algorithm shifts from finding people who click to finding people who are most likely to actually book. You'll typically see fewer clicks but a much higher proportion that convert.

This also unlocks:

  • Lookalike audiences — built from people who completed the booking form
  • Retargeting — people who visited /join but didn't submit
  • Cost-per-result reporting — actual cost per trial booking, not per click

WordPress / website integration

The /join page is a standalone full-page experience. The simplest integration is to link directly from your existing website:

<a href="https://yourclub.r4ptor.app/join">Book Your Free Trial</a>
Iframe embedding

r4ptor sets X-Frame-Options: SAMEORIGIN on all routes, which prevents the page being embedded in a third-party iframe. Use a direct link instead.


AppSettings keys

KeyPurposeDefault
TRIAL_FORM_ENABLEDtrue / false — enables or disables the formtrue
TRIAL_FORM_ATTIRE_ITEMSJSON array of attire checkbox labelsThree default items
META_PIXEL_IDYour Meta Pixel ID for conversion trackingNone
VENUE_ADDRESSAddress shown in confirmation commsNone

Membership conversion

When a lead reaches Trial Complete, the instructor can send the Trial Conversion Offer SMS from the lead detail sheet. This kicks off the Direct Debit mandate flow via GoCardless.

See Membership & Direct Debit for the full flow.