Guided automations and member details checks
12 September 2026Cover coach setup correction
- Fixed cover coach invitations and role changes being blocked after installing
the private automation scan table. The readiness check now recognises that specific table only while its ownership, RLS, lack of client access and lack of inheritance remain intact. Other cover coach restrictions are unchanged.
- SQL-only correction: run the
cover-coach-private-scan-readinesspreflight,
apply cover-coach-private-scan-readiness-04.sql, then run its postflight. No application deployment, environment change or feature flag is required.
CI database startup
- Reserve the disposable database ports before CI dependency and image downloads
can allocate them to temporary client connections. Existing runner port reservations are preserved, and database failures now record socket ownership and the allocation settings. This addresses the port-binding failure in PR #98; it requires no application settings or SQL changes.
Seven more automation starts
- Invoice overdue, attendance check-in, incomplete registers, course completion,
course inactivity, published grading results and effective household plan changes now publish and run. The audience preview uses their same source rules.
- Repeated scans and republishing do not resend the same occurrence. Current
eligibility is checked again after waits and immediately before delivery; transiently failed waits retain their original resume point when retried.
- Register reminders email the assigned coach and can notify configured club
administrators. Both builders show the destination clearly and filter actions that cannot safely use that source. Keep follow-ups inside these automations; child-flow enrolment is unavailable for these seven starts.
- A private, durable scan cursor makes progress across large audiences and
non-matching members. The new scheduled job appears in Admin Health.
- SQL before deployment: run
automation-recipe-scan-state-00-preflight.sql,
automation-recipe-scan-state-01.sql, then automation-recipe-scan-state-02-postflight.sql. Existing settings still control delivery; no new flags are introduced. See docs/ops/automation-seven-triggers-2026-09-12.md for timing and rollout details.
Member emergency and medical details
- A member request to check details now includes each household member's
emergency contact and medical information, with a separate confirmation for each section. Members can enter corrections directly in the request.
- Corrections follow the request's existing approval setting. Unchanged details
complete immediately; review-mode corrections remain pending until an authorised reviewer approves them. Staff can compare current and requested values. Review requires request-review, profile-edit and medical-view access.
- Private staff medical notes remain separate. Stale replies cannot overwrite
newer details, and sensitive proposed values are removed after a decision.
- SQL before deployment: apply
member-request-safety-details-01.sqlafter
its read-only preflight, then run its read-only postflight. Existing historical member-request v3 SQL is required. No new environment variables or flags.
Annual renewal reminders
- Member Status is now a selection in both automation builders. Is any of
supports Active or Paused in one condition. Existing stored values remain visible for review; legacy lists continue to require every condition.
- Annual requirement reminders offer Online renewal paid · Yes/No, scoped
to the specific member, requirement and renewal cycle. This uses portal-card renewal records; it does not claim to resolve invoice payment status.
- An unpaid reminder rechecks current status, requirement eligibility, cycle
and payment before subsequent steps and retries. Paid-pending-processing and completed renewals stop unpaid reminders. Failed reads cannot count as unpaid.
- Expires in exactly (days) supports precise 30-day and 15-day email wording.
Set the requirement renewal window to at least the first reminder offset. Exact-day sends skip missed days; within-window reminders remain available.
- Paused members receive annual reminders only when explicitly selected in an
entry Status condition. Existing unfiltered automations keep their audience.
- Paused members can start or continue online requirement renewals without
restarting membership billing. Leavers remain unable to start renewals.
- Fixed email-step condition dropdowns reverting to Status when choosing a
specific annual requirement, due date or renewal-paid condition. Changing from multiple statuses to a single status now clears the old combined value.
A clearer automation builder
- Creating a trigger, flow or recipe opens its builder and shows clear creating
and opening feedback. Creation stays locked while the editor loads, with a direct Open builder link to the saved draft and no duplicate creation.
- Choose trigger starts with category cards and counts. Browse one category
at a time, search across every category, or choose View all triggers.
- Simple setup now follows one sequence: when it starts, conditions and actions.
The trigger catalogue opens only when choosing or changing a trigger.
- Uses the app’s standard cards, buttons and header, with clearer text and a
single action list. Templates, message previews, tests and version history remain available without filling the screen.
- Incomplete checks stay visible; successful checks and the summary can be
expanded. Draft, preview and publish controls keep their existing safeguards.
- Adding an action places it before a final Stop so it can run, and opens the
new action for setup. Existing action order and saved definitions are unchanged.
AND / OR condition groups
- Fixed Current member status = Paused in plain AND annual-reminder rules.
Explicit paused selections now work consistently with grouped rules, including after waits and on retries. Current status, cycle and payment are rechecked before provider delivery; paid renewals and failed reads still block sending.
- A conditional Stop now ends the sequence only when its conditions match.
When they do not match, execution skips Stop and considers the next action, matching the audience preview. A Stop with no conditions still always stops.
- Choose Match all (AND) or Match any (OR) for entry conditions and each
action's conditions in Simple setup and the Advanced builder. Add bordered groups for mixed rules, such as (Active OR Paused) AND renewal unpaid.
- Each group has its own AND/OR choice. One group level keeps the rules readable;
empty groups can be saved as drafts but must be completed or removed to publish.
- Saved definitions, mode switches, summaries, search, simulation and audience
checks preserve the same grouping. Existing flat condition lists retain AND.
- Execution checks entry and action rules separately, including waits, retries
and final checks before sending. Historical event facts retain their original values, while current status/payment checks refresh. A failed current read blocks sending even when another OR branch would match.
- Paused annual-reminder recipients must be explicitly included by a successful
branch. Original-cycle eligibility, tenant checks, consent and duplicate-send protection continue to apply independently of the selected rules.
- Grouped runs save bounded condition facts in the existing run payload. A resumed
or retried grouped run missing its trusted version-matched snapshot fails closed. No SQL migration or new environment setting is needed. Deploy compatible code to all execution workers before publishing grouped definitions; older workers cannot execute the new definition shape.
Club recipes and current conditions
- New Trigger → Use a recipe provides fifteen editable starting points for
renewals, member requests, trials, new members, events, shop collection, attendance, invoices, registers, courses, grading and membership changes.
- Select programmes, classes, venues, plans, events, products, courses and
campaigns by name. New conditions cover current status, age, recorded attendance, trial enrolment/future bookings, event booking/payment and whether a shop order still awaits collection.
- Current-record conditions are checked before actions, after waits and again
before provider dispatch. A failed read remains retryable; a proven resolved condition suppresses the action. Older event-status conditions keep their original meaning.
- Event reminders retain the exact booking identity, including timed reminders.
Queued older reminders may resolve only an unambiguous same-club booking for the original event and member.
- Seven additional starts are local audience trials only: overdue invoice,
attendance check-in, unfinished register, published grading result, course completion/inactivity and effective household plan change. Their readers and conditions are implemented; production scheduling and publishing remain off.
Guided setup and audience review
- Four compartments guide setup: **When it starts → Conditions → Actions →
Review audience**. Return to any section without losing edits. Both builder modes retain unfinished reminder timing and visibly flag unsupported fields.
- Stronger section borders, tinted headers and coloured action icons make the
sequence easier to scan. Text-labelled Edit, Done and Continue controls replace disclosure arrows in Simple setup.
- Check audience reads current club records without sending, queuing,
publishing or saving. Campaign preparation retains the public-demo fence. Its scrollable modal lists matching members/records, intended recipients, email/SMS/Telegram channels, household/personal/staff destinations and condition results. Supporting explanation is collapsible.
- Counts describe a bounded sample of existing records, not a guaranteed send
queue. Delayed actions are checked against today's data and rechecked later. Changing the setup invalidates the old preview. No email addresses, phone numbers, credentials or action links are returned to the browser.
- Member-request push remains one initial alert per request. Email follow-up is
optional and independently checks whether the request remains unresolved.
Deployment and setup
This batch requires the member-details and recipe scan SQL listed above before deployment. No new environment keys or feature flags are introduced. The audience readers require the existing canonical schema; missing prerequisites fail as unavailable. Local Docker schema repairs and trial limits are recorded in docs/automation/16-club-recipe-local-trials.md and the QA evidence document. Existing execution/delivery gates still apply. No live automation is created or enabled. Configure Annual requirement due with a specific requirement, Active or Paused, Online renewal paid = No and an exact 30-day entry date. Add a 15-day wait and an exact 15-day condition on the second email.