Skip to main content

App Settings

Go to Admin → Integrations to configure comms credentials, AI, and payment integrations.

Club Settings​

KeyDescription
SMTP_FROM_NAMEYour club or school name — shown in email From headers and resolves {{SMTP_FROM_NAME}} in templates
VENUE_ADDRESSTraining venue address — resolves {{VENUE_ADDRESS}} in comms templates
INSTRUCTOR_PHONEInstructor phone number — resolves {{INSTRUCTOR_PHONE}} in comms templates. Also used to copy outbound SMS to you, independently controlled by Copy me on SMS right below it in the SMS section — the number stays usable in templates even with that switched off
INSTRUCTOR_EMAILInstructor email address — resolves {{INSTRUCTOR_EMAIL}} in comms templates

Trial Booking Settings​

KeyDescription
TRIAL_FORM_ENABLEDtrue / false — set to false to disable the public /join booking form
TRIAL_FORM_ATTIRE_ITEMSJSON array of strings shown as checkboxes on the booking form. Defaults to three standard attire/punctuality items if not set.

Comms Settings​

Configure SMTP (email) and Twilio (SMS) credentials. See Comms Setup for a full walkthrough.

Test Mode — when on, all comms are redirected to your test email/phone (set in Admin → Comms → Variables as TEST_EMAIL and TEST_PHONE). All message subjects and bodies are prefixed with [TEST]. Switch off only when ready to send to real students and parents.

Copy me on SMS — in the SMS section, below INSTRUCTOR_PHONE. On by default once a phone number is set (existing clubs saw no change when this toggle was introduced). Switch it off to keep the number available as the {{INSTRUCTOR_PHONE}} template token without being copied on every outbound SMS.

Masked credentials

Sensitive keys (API tokens, passwords) are masked in the UI after first entry — showing only the first and last 4 characters. To update a masked value, type the new value directly over it. Pasting the masked value back makes no change.

AI Settings​

KeyDescription
AI_PROVIDERanthropic or openai
AI_MODELModel name e.g. claude-sonnet-4-5
AI_API_KEYAPI key — masked after entry

Website Chat Bot Settings​

Set under Settings → Website Chat Bot. Deliberately a separate provider/model/key from AI Settings above — the bot is public-facing and can see much higher traffic than the admin-only AI Insights feature.

KeyDescription
BOT_ENABLEDtrue / false — turns the embedded chat widget on or off
BOT_AI_PROVIDERclaude or none
BOT_AI_MODELModel ID, e.g. claude-haiku-4-5 — Haiku recommended for cost
BOT_AI_API_KEYAPI key for the bot — masked after entry
BOT_KNOWLEDGEFree text the bot draws on alongside your classes and fees
BOT_ALERT_ENABLEDtrue / false — email/SMS alert on every new bot conversation
BOT_DAILY_TOKEN_CAPDaily AI token spend ceiling before the bot fails safe and stops replying

See Website Chat Bot for the full feature walkthrough.

Instructor Alert Settings​

KeyDescription
LEAD_ALERT_ENABLEDtrue / false — email/SMS alert on every new opportunity landing in your funnel, from the /join form or the chat bot. Separate from BOT_ALERT_ENABLED above — a bot conversation starting and a lead actually landing in your funnel are different signals. Doesn't fire for leads added manually.

Loyalty Referrals Settings​

KeyDescription
REFERRAL_PROGRAM_ENABLEDtrue / false (default off) — master switch. While off, nothing related to this feature is generated at all, not just nothing sent

See Loyalty Referrals for the full feature walkthrough, including the {{TRIAL_BONUS}} / {{JOINING_BONUS}} reward-wording variables (set in Admin → Comms → Variables, same place as everything in the table above).

GoCardless Settings​

Configure your GoCardless Direct Debit integration for the membership mandate flow.

KeyDescription
GC_ENABLEDtrue / false — enables the GoCardless mandate flow on the membership form
GC_ENVIRONMENTsandbox (testing) or live (real mandates)
GC_ACCESS_TOKENYour GoCardless API access token — masked after entry
GC_WEBHOOK_SECRETWebhook signing secret from the GoCardless dashboard — used to verify mandates.active events

See Membership & Direct Debit for the full setup walkthrough.

SumUp Order Tracking​

Automatically detects grading-fee payments from SumUp Online Store order emails. Off by default — a separate, more reliable mechanism from any SumUp transaction-description lookup, since an online order always carries the customer's real name/email/phone.

KeyDescription
SUMUP_ORDER_TRACKING_ENABLEDtrue / false — master switch. Nothing below is visible anywhere (Attendance Grid, Revenue, Grading Day) until this is on
GRADING_ORDER_WEBHOOK_SECRETShared secret proving an incoming order genuinely came from your own forwarding rule — masked after entry
GRADING_PRODUCT_NAMEOnly orders whose product line matches this are processed — e.g. Grading matches "Grading Exam" or "September Grading Fee". Anything else sold through your Online Store is left alone, even in the same order

Settings also shows your instance's own forwarding address (grading+<your-instance>@notifications.r4ptor.app) — set a mail filter in your SumUp-connected inbox to forward SumUp's "New order" email there. See Grading Day → Payments for how a payment gets matched once it arrives.

Fees Settings​

Set under Admin → Integrations → Fees.

KeyDescription
MEMBERSHIP_FEE_SNAKES_CRANESMonthly training fee for Snakes & Cranes class (£)
MEMBERSHIP_FEE_JUNIORSMonthly training fee for Juniors class (£)
MEMBERSHIP_FEE_TEENSMonthly training fee for Teens class (£)
ANNUAL_MEMBERSHIP_FEEAnnual renewal fee, resolves {{ANNUAL_MEMBERSHIP_FEE}} in the MEMBERSHIP_RENEWAL_* templates — see Suggested Comms
AFFILIATION_FEE_JUNIOROne-off annual affiliation/insurance fee shown on the membership signup form — see Membership & Direct Debit
UNIFORM_STORE_URLOptional URL to kit store — shown on membership confirmation page
Two different "annual fee" settings

ANNUAL_MEMBERSHIP_FEE and AFFILIATION_FEE_JUNIOR are separate settings for separate moments — one fires in renewal reminder comms, the other shows once at signup. If your club charges the same amount for both, they aren't currently linked — update both if the amount changes.

Airtable Settings​

Used by the Airtable Sync import flow. Credentials are saved automatically when you connect via Admin → Import → Airtable — you don't normally need to set these manually.

KeyDescription
AIRTABLE_PATPersonal access token — masked after entry. Requires data.records:read and schema.bases:read on the base.
AIRTABLE_BASE_IDAirtable Base ID (starts with app)
AIRTABLE_TABLE_IDTable name or Table ID (starts with tbl)

See Airtable Sync for a full setup walkthrough.


Club Type Settings​

Read-only settings that describe how your instance is configured. Set when your instance is deployed — contact [email protected] to change them.

KeyValuesDescription
CLUB_TYPEstandalone / franchise_lead / franchise_memberWhether this school manages its own curriculum, leads a franchise group, or inherits from a franchise group
FRANCHISE_NAMEStringDisplay name of the franchise group (franchise members only)
FRANCHISE_PACKStringThe curriculum pack identifier loaded into this instance
FRANCHISE_VERSIONStringVersion of the curriculum pack currently active

See Club Type & Franchise for full details on what each setting means in practice.