Contacts table separate from Suppliers. Multiple contacts can link to one Supplier via Supplier_ID FK.Portal_Email field on Suppliers cannot support multiple staff accounts per business or granular role-based access.Full_Name into separate First_Name and Last_Name fields on the Contacts table.{{Contact.First_Name}} for salutation. Concatenate both fields when a full name is needed. ERD updated to v2 to reflect this change.Referred_By_Supplier on all Events where no external supplier referred the enquiry.[Ref] Outcodes reference table in Airtable. Populate with 2,857 rows from the Gibbs/uk-postcodes GitHub CSV. Fields: Outcode (PK), Latitude, Longitude, Town, Region, Country.Outcode FK to this table. Make extracts the outcode from Postcode_Raw using a formula, then links the record. Haversine distance calculation in the Match Engine uses lat/long from this table.Payment_Schedules as the payment falls due — not as a single total on the Quote.Commission_Paid = FALSE. Settlement Payment_Schedule is created dynamically only after Honesty Loop confirms the event happened.Contact_Stage single-select field to the Contacts table with values: Waitlist / Onboarding / Active / Inactive.Contact_Stage = Waitlist. The "Network Is Now Live" broadcast targets this segment. ERD updated to v3.Introduction_Date and Protection_End_Date to the Referrals table. Protection_End_Date = Introduction_Date + 4 years.Supplier_ID lookup field to Quotes, Payment_Schedules, Reviews, and Activity_Log — not just a linked record field.Supplier_ID text field to filter against. Linked record fields alone are not filterable in Softr.Insurance_Expiry_Date to the Suppliers table. Remove the related email template from the tracker.Referral_Code (Single Line) to Suppliers — unique per supplier, auto-generated by Make at onboarding (e.g. SMITH24), customisable via Softr in Phase X. Add Referral_Code_Used (Single Line) to Events — captures the raw ?ref= URL parameter from the Event Request form. Add How_Did_You_Find_Us (Long Text) to Events — open text, marketing insight only. Make looks up Referral_Code_Used against Suppliers.Referral_Code on Event submission and writes the matched supplier to Referred_By_Supplier. Defaults to PPN House if no valid code found.Referral_Code), Events table (add Referral_Code_Used, How_Did_You_Find_Us, update Referred_By_Supplier description), Make Event submission scenario (new lookup step), Tally Event Request form (hidden ?ref= field). Commission formulas and Referrals table structure unchanged.Coverage_Regions (Multi-Select) to Suppliers with options: North East / North West / Yorkshire and the Humber / East Midlands / West Midlands / East of England / London / South East / South West / Wales / Scotland / Northern Ireland / Ireland. Add Event_Region (Lookup) and Event_County (Lookup) to Events, both pulling from the linked [Ref] Outcodes record. Update Coverage_Type options to: Miles Radius / Named Counties / Named Regions / Counties + Regions / National. Match Engine ORs across county and region checks.Stripe_Connect_ID (Single Line), Bank_Details_Confirmed (Checkbox), Payout_Method (Single Select: Stripe Connect / Stripe Payment Link / Manual), Referral_Credits_Balance (Currency £). Add to Subscriptions: Stripe_Customer_ID (Single Line), Stripe_Subscription_ID (Single Line), Next_Billing_Date (Date). Exact payout mechanism is a Lou decision — schema fields are consistent across all Stripe options.Applied_Commission_Rate (Number, 2 d.p.) to the Quotes table. Make populates this at quote creation by checking Referrals for an active protection period between the same Organiser and Supplier, calculating the current year (1–4), and setting the appropriate rate (10% / 8% / 6% / 4%). All commission formulas on Quotes and Payment_Schedules reference this field instead of the hardcoded 0.10 value.Commission_Due formulas on Quotes and Payment_Schedules must be updated to reference Applied_Commission_Rate instead of 0.10. Make quote creation step gains a pre-write lookup against Referrals. Flag for PPN Make Automations chat.ITQ_Sent_At (DateTime) to the Quotes table. Make writes this timestamp when the ITQ email is dispatched. The Is_Overdue formula uses DATETIME_DIFF(NOW(), ITQ_Sent_At, "hours") > 72.Hours_Since_Invited formula referenced Submitted_At (when the supplier submits their quote), meaning a quote is ~0 hours "overdue" the moment it's submitted — the formula was logically inverted. The overdue clock must start when the ITQ is sent, not when the supplier responds.Hours_Since_Invited and Is_Overdue formula fields must be updated to reference ITQ_Sent_At. Make ITQ dispatch step gains a write-back to this field. Flag for PPN Make Automations chat.Dedup_Reviewed (Checkbox) to the Events table. Lou or Katie tick this after reviewing a flagged duplicate. The Duplicate Flags view filters: Duplicate_Flag = TRUE AND Dedup_Reviewed = FALSE.Dedup_Reviewed = FALSE condition.Winning_Quote (Linked Record → Quotes, single record) to the Events table. Make writes this when a Quote status changes to Accepted. Email A3 (Quotes Not Accepted, sent to losing suppliers) triggers on this field being set.Event.Winning_Quote set. Without this field, Make would need to query all Quotes for an event when any single Quote is accepted — a fragile multi-hop query. A direct field enables clean Airtable-native automation triggers and makes the acceptance state explicit.Subscription_Status options to: Pending / Free Trial / Active / Paused / Cancelled. Pending = default for newly onboarded suppliers not yet invoiced. Add Trial_Months_Granted (Number) and Trial_End_Date (Date) to Suppliers. Make flips status from Free Trial to Active when TODAY() passes Trial_End_Date and triggers the first invoice.Duplicate_Check_Key formula to: IF(Organiser_Company, UPPER(TRIM(Organiser_Company)), UPPER(TRIM(Organiser_Name))) & "-" & Outcode & "-" & TEXT(Event_Date, "YYYY-MM"). Organiser_Company is not made mandatory on the Event Request form.-GL7-2026-06 — colliding with all other blank-company submissions from the same outcode in the same month, generating false duplicate flags.Supplier_Stock table (Layer 2 stub): New table with one record per tent type per supplier. Fields include Tent_Type, Tent_Size_m, Units_Available, Persons_Per_Unit_From, Persons_Per_Unit_To, Beds_Included, Bed_Type, Notes, plus formula fields Capacity_From_This_Type and Capacity_To_This_Type. Rollups Capacity_From and Capacity_To added to Suppliers table.
Events table additions: Glamping_Tent_Preference (Open / Type Specified / Fully Specified), Glamping_Tent_Types_Requested (multi-select), Glamping_Units_Requested (number), Glamping_Spec_Notes (long text), Payment_Arrangement (Organiser Pays Supplier / Guests Book Direct / TBC).
Suppliers table additions: Capacity_From rollup, Capacity_To rollup, Offers_Booking_System checkbox.
Glamping capacity cannot be expressed as a single number. A 5m bell tent may sleep 4 in a family setup or 2 in a couples setup — the same unit, different configurations. "From" and "To" terminology is used deliberately over "Min" and "Max" to reflect ideal occupancy ranges rather than hard limits. A single Max_Sleeping_Capacity field would either overstate or understate actual availability depending on how the supplier configures units for a given booking.
Organiser tent requests exist on a spectrum: some are fully open, some specify a type, some provide an exact procurement spec. The Match Engine needs to know which tier the request falls into in order to filter appropriately. Tier 1 (Open) matches on capacity range only. Tiers 2 and 3 additionally filter on tent type and unit count. Tier 3 specifics pass through to the ITQ as context for the supplier.
The booking system use case (supplier operates direct guest booking rather than organiser-to-supplier contract) is a valid future feature that changes the commission model and ITQ flow. Stubbing Offers_Booking_System and Payment_Arrangement now avoids retrofitting the schema later.
Supplier_Stock table required — Layer 2 stub, no automation at launch. Existing flat glamping fields on Suppliers (Tent_Types, Tent_Sizes) remain as interim matching data at launch and are superseded by stock rollups in Phase X. Match Engine glamping capacity logic deferred to Phase X — Lou reviews glamping matches manually at launch. Payment_Arrangement and Offers_Booking_System are Phase X features only. ERD requires v6 update to show Supplier_Stock and its FK to Suppliers. Decided: 26 March 2026.confirm@prepitched.co.uk. Make monitors this alias, parses the PPN-{Event_ID}-{Supplier_ID} reference code from the subject, and sets the Quote to Submitted.Supplier_Score and Quality_Flag formula fields in the Suppliers table from day one. Do not surface them in any view or portal until a supplier has at least 3 reviews.action_base_url Data Store variable controls where authenticated action links point — Tally now, Softr in Phase X — but onboarding always stays on Tally.action_base_url in a Make Data Store. All 47 email templates reference this variable for their action buttons.Postcode_Raw. A Make scenario then searches the [Ref] Outcodes table and writes the linked record ID back to the Supplier or Event.IF(FIND(" ",Postcode_Raw)>0, TRIM(LEFT(Postcode_Raw,FIND(" ",Postcode_Raw)-1)), LEFT(UPPER(TRIM(Postcode_Raw)),3)).WhatsApp_Number, Comms_Preference, WhatsApp_Opted_In) remain in the schema as stubs.Comms_Preference. SMS fallback via Twilio. Requires explicit GDPR opt-in captured at onboarding — WhatsApp_Opted_In checkbox on the Supplier form.UPPER(TRIM(Organiser_Company)) & "-" & Outcode & "-" & TEXT(Event_Date,"YYYY-MM"). Make checks for a matching key on every new Event and sets Duplicate_Flag = TRUE if one is found.{{Contact.First_Name}}, {{Event.ID}}, {{Quote.Amount}} etc. Lou's existing HubSpot {curly bracket} syntax is converted at template build time, not speculatively.