feat(forms): add isolated Form A consultation testing
This commit is contained in:
25 files changed
+1046
-253
No files matched your search
@@ -1,10 +1,10 @@
|
||||
# P9-03 Jotform integration contract
|
||||
|
||||
**Contract ID:** P9-03-JF-2026-10-18 · **Version:** 1.7 · **Decision revision:** 2026-10-28
|
||||
**Contract ID:** P9-03-JF-2026-10-18 · **Version:** 1.8 · **Decision revision:** 2026-10-29
|
||||
|
||||
**Status: Form A owner-approved for existing contexts; two-form consultation direction documented; deployment and new-route activation NOT authorized.**
|
||||
**Status: Form A owner-approved for existing contexts; consultation surfaces implemented for isolated testing only; deployment and production consultation activation NOT authorized.**
|
||||
|
||||
This is the authoritative P9-03 planning contract for the owner decisions supplied on October 18 and revised through October 28. It supersedes conflicting *proposals* in the [October 17 inventory](phase-9-form-entry-point-inventory-2026-10-17.md), without rewriting that historical record. It does not supersede project policy, approve clinical/legal content beyond the Form A configuration scope recorded below, close the Phase 9 register, or authorize production changes. Future changes require an explicit owner decision, a version/change record and evidence links. Version 1.0 records the original planning instruction; version 1.1 adds the owner-supplied complete roster; version 1.2 supersedes the copy-based Form B proposal with three new blank forms; version 1.3 records limited owner-confirmed Form A configuration evidence; version 1.4 reconciles completed direct-Jotform testing and the seven-route isolated iframe adapter; version 1.5 records owner-reported embedded synthetic acceptance for sampled routes; version 1.6 adds the independent production-build gate without deploying it; version 1.7 retires physical Form B and specifies Form A consultation plus Form C referral planning. No future commit SHA is invented.
|
||||
This is the authoritative P9-03 planning contract for the owner decisions supplied on October 18 and revised through October 29. It supersedes conflicting *proposals* in the [October 17 inventory](phase-9-form-entry-point-inventory-2026-10-17.md), without rewriting that historical record. It does not supersede project policy, approve clinical/legal content beyond the Form A configuration scope recorded below, close the Phase 9 register, or authorize production changes. Future changes require an explicit owner decision, a version/change record and evidence links. Version 1.0 records the original planning instruction; version 1.1 adds the owner-supplied complete roster; version 1.2 supersedes the copy-based Form B proposal with three new blank forms; version 1.3 records limited owner-confirmed Form A configuration evidence; version 1.4 reconciles completed direct-Jotform testing and the seven-route isolated iframe adapter; version 1.5 records owner-reported embedded synthetic acceptance for sampled routes; version 1.6 adds the independent production-build gate without deploying it; version 1.7 retires physical Form B and specifies Form A consultation plus Form C referral planning; version 1.8 records the owner-reported consultation configuration and a separate nine-route isolated-test adapter. No future commit SHA is invented.
|
||||
|
||||
Companions: [source-specific implementation plan](phase-9-jotform-implementation-plan-2026-10-18.md), [two-form integration specification](phase-9-two-form-integration-specification-2026-10-28.md), [verification and approval ledger](phase-9-jotform-verification-checklist-2026-10-18.csv).
|
||||
|
||||
@@ -32,7 +32,7 @@ Evidence classes must remain distinct:
|
||||
- AIA uses Jotform Gold with HIPAA enabled and a signed Jotform BAA; 27 of 100 form slots are occupied. Existing clinical/operational workflows must remain intact.
|
||||
- **All public lead submissions go directly to Jotform.** No Contabo submission proxy, PHI-bearing webhook, completed form-data forwarding or clinical-document transfer to Contabo.
|
||||
- Prefer iframe presentation, preserving Astro design and locale behavior; use a hosted form fallback where embedding is unsuitable.
|
||||
- Use two physical forms: **A General Enquiries, landing enquiries and family service consultations**, and **C Professional Referral Initiation**. Form A retains its existing `contact` and `landing` contexts; `consultation` is planned only. `service` may remain a logical visitor-intent classification, not a separate physical form.
|
||||
- Use two physical forms: **A General Enquiries, landing enquiries and family service consultations**, and **C Professional Referral Initiation**. Form A retains its existing `contact` and `landing` contexts; owner-reported Builder configuration now includes `consultation`, which Astro may render only through its separate non-indexing isolated-test gate. `service` may remain a logical visitor-intent classification, not a separate physical form.
|
||||
- **Physical Form B is retired.** Do not create, clone or repurpose a separate service-consultation form. Form C alone remains a future blank-form creation task; the former proposal to use a working copy of **AIA Lead Generator | plain** remains superseded.
|
||||
- The historical source ID `250727122848156` remains reference evidence only. It must not be modified, cloned, disabled, deleted, repurposed or used as an embed destination under this decision. Existing clinical, agreement, billing, event, HR, administrative and CentralReach workflows remain independent.
|
||||
- No appointment booking in initial consultation forms. Staff contact the family to arrange follow-up.
|
||||
@@ -150,8 +150,7 @@ Names below are domain semantics only, **not Jotform question IDs, uniqueName va
|
||||
| A | preferred_contact | Optional; define valid choices and phone/email consistency |
|
||||
| A | message | Omit by default; add only with explicit approval |
|
||||
| A | source_code | Deferred; absent initially |
|
||||
| A / consultation | service_interest | Required controlled choice after Builder/clinical/privacy approval; no ID or option value inferred |
|
||||
| A / consultation | evaluation_explanation | Conditional referral-assistance explanation only; no claim of in-clinic diagnostic availability |
|
||||
| A / consultation | service_interest | Owner-reported configured required controlled choice; Builder properties, translations, conditions and runtime acceptance remain pending; no ID or option value inferred |
|
||||
| B (retired) | adult_name | Historical proposal only; not a physical-form requirement |
|
||||
| B (retired) | adult_email | Historical proposal only |
|
||||
| B (retired) | adult_phone | Historical proposal only |
|
||||
@@ -187,17 +186,17 @@ Cross-checked against F-001–F-009 in the local CSV, current source and eligibl
|
||||
|---|---|---|---|---|
|
||||
| F-001 | `/contact` | EN | `src/components/ContactForm.astro:17`, via `components/pages/ContactPage.astro:19` | A |
|
||||
| F-002 | `/es/contact` | ES | Same, explicit locale | A ES |
|
||||
| F-003 | `/client-consultation` | EN | `src/components/FormShell.astro:12`, `layouts/PageLayout.astro:15,82` | Form A / planned `consultation` |
|
||||
| F-004 | `/es/client-consultation` | ES | Same, explicit locale | Form A / planned `consultation` |
|
||||
| F-005 | `/schedule-consultation` | EN | Same FormShell | Form A / planned `consultation` |
|
||||
| F-003 | `/client-consultation` | EN | `src/components/FormShell.astro:12`, `layouts/PageLayout.astro:15,82` | Form A / `consultation`, isolated-test only |
|
||||
| F-004 | `/es/client-consultation` | ES | Same, explicit locale | Form A / `consultation`, isolated-test only |
|
||||
| F-005 | `/schedule-consultation` | EN | Same FormShell | Form A / `consultation`, isolated-test only |
|
||||
| F-006 | `/referrals` | EN | Same FormShell; CTA `#form-title` | C |
|
||||
| F-007 | `/aba-therapy` | EN | `src/components/ServiceInquiryDrawer.astro:71`, `layouts/PageLayout.astro:81` | Form A / planned `consultation`; drawer redesign pending |
|
||||
| F-008 | `/autism-evaluations` | EN | Same drawer | Form A / planned `consultation` only after referral-assistance/copy approval |
|
||||
| F-009 | `/learner-social-club` | EN | Same drawer | Form A / planned `consultation`; program approval pending |
|
||||
| F-007 | `/aba-therapy` | EN | `src/components/ServiceInquiryDrawer.astro`, `layouts/PageLayout.astro` | Form A / `consultation`, isolated-test-only explicit drawer |
|
||||
| F-008 | `/autism-evaluations` | EN | Same drawer | Form A / `consultation`, isolated-test-only explicit drawer |
|
||||
| F-009 | `/learner-social-club` | EN | Same drawer | Form A / `consultation`, isolated-test-only explicit drawer |
|
||||
|
||||
Three implementations, nine instances: seven EN, two ES, zero AR. Eleven GET search instances are not lead forms and must not be disabled or routed to Jotform. No new Arabic form or translated publication is authorized. Spanish service pages currently use Spanish consultation CTAs, not drawers. Arabic visitors retain established English fallbacks and clear language notices. The two physical forms prefer EN/ES capability, but no Spanish referral page or new route is implied.
|
||||
The October 17 inventory remains three implementations and nine original instances: seven EN, two ES, zero AR. The October 29 isolated-test extension adds three explicitly opened Spanish service drawers, without creating a Spanish referral route or changing Arabic fallbacks. Eleven GET search instances are not lead forms and must not be disabled or routed to Jotform.
|
||||
|
||||
The five imported landing-page journeys—`/lp/aba-therapy`, `/lp/aba-insurance`, `/lp/aba-ahcccs`, `/lp/aba-private-pay` and `/lp/early-intervention`—are owner-approved **Form A** isolated-test placements, each using fixed `formContext=landing&language=en`. This supersedes their earlier Form B mapping. Physical Form B is retired; other service-consultation journeys are future Form A `consultation` targets and are not yet iframe placements. The five panels do not add five native form implementations, and Form A remains unavailable in normal, indexing-enabled and production-shaped artifacts.
|
||||
The five imported landing-page journeys—`/lp/aba-therapy`, `/lp/aba-insurance`, `/lp/aba-ahcccs`, `/lp/aba-private-pay` and `/lp/early-intervention`—are owner-approved **Form A** isolated-test placements, each using fixed `formContext=landing&language=en`. This supersedes their earlier Form B mapping. Physical Form B is retired. The nine documented consultation routes are Form A isolated-test placements only; no production consultation placement is authorized. The five panels do not add five native form implementations, and Form A remains unavailable in normal, indexing-enabled and production-shaped artifacts.
|
||||
|
||||
Tour's actual CTA currently goes to `/client-consultation`, a future Form A `consultation` destination. Its service list has no tour choice, so the Tour disposition remains an intake/operations decision, **not a completed route change**. Fundraising awaits owner confirmation. Historical event requests remain separate; do not reinterpret the historical Eventbrite link as the account's Event Submission Form without evidence. `/client-forms` retains existing clinical, agreement, Sign and CentralReach links. The six repository-linked Jotform destinations are not automatically matched to the four named account assets.
|
||||
|
||||
@@ -229,7 +228,7 @@ Suggested semantic setting: `PUBLIC_AIA_FORMS_MODE`, exact values `off`, `mock`,
|
||||
|---|---|
|
||||
| off | No active lead form/empty POST action, live iframe, Jotform preconnect/helper/network request, or analytics. Render approved localized contact fallback; no native-submit bypass on inactive lead UI |
|
||||
| mock | Synthetic local-only fixture, no external endpoint or real data; safe guarded Playwright use; no Jotform ID required |
|
||||
| isolated-test | Form A only: requires `PUBLIC_AIA_FORMS_MODE=isolated-test`, `PUBLIC_AIA_FORMS_ENVIRONMENT=isolated-test`, `PUBLIC_AIA_FORMS_ISOLATED_TEST_APPROVED=true`, `PUBLIC_AIA_FORMS_LIVE_APPROVED=false`, `PUBLIC_ALLOW_INDEXING=false`, and a fixed seven-route allowlist. It is not a production mode. |
|
||||
| isolated-test | Form A only: requires `PUBLIC_AIA_FORMS_MODE=isolated-test`, `PUBLIC_AIA_FORMS_ENVIRONMENT=isolated-test`, `PUBLIC_AIA_FORMS_ISOLATED_TEST_APPROVED=true`, `PUBLIC_AIA_FORMS_LIVE_APPROVED=false`, and `PUBLIC_ALLOW_INDEXING=false`. The frozen seven-route Form A allowlist is eligible under those gates. The separate nine-route consultation allowlist additionally requires `PUBLIC_AIA_FORMS_CONSULTATION_TEST_APPROVED=true`; it is never production-eligible. |
|
||||
| live | Form A only: `PUBLIC_AIA_FORMS_MODE=live`, `PUBLIC_AIA_FORMS_LIVE_APPROVED=true`, `PUBLIC_AIA_FORMS_ENVIRONMENT=production`, and `PUBLIC_AIA_FORM_A_PRODUCTION_APPROVED=true` are all required. The fixed seven-route allowlist, fixed origin/URLs, locale and context still apply. Missing/invalid values fail closed. `PUBLIC_ALLOW_INDEXING` is independent: it must be `true` for an indexing-enabled release but cannot enable Form A alone. Form C and all other lead surfaces remain off. |
|
||||
|
||||
Off/mock output must not contain **new lead embed IDs/URLs or the historical `250727122848156` reference ID** in HTML, scripts, preload hints or client bundles. Existing clinical/Sign links intentionally remain in the site; they already contain production destinations. Preserving them conflicts with a blanket “no production ID anywhere” assertion, so this contract's new-embed restriction is scoped to the new lead integration. Existing user-initiated clinical navigation is not permission for automatic loading or test submissions. Do not claim the whole site has zero vendor destinations.
|
||||
@@ -259,7 +258,7 @@ Jotform's [HIPAA email guidance](https://www.jotform.com/help/504-how-to-use-not
|
||||
|
||||
## 9. Blank-form creation safety and success measurement
|
||||
|
||||
No form creation or original mutation is authorized now. A future configuration batch may add Form A `consultation` and create one disabled blank Form C only after explicit Jotform mutation authorization naming the scope, account, reviewers, environment and stopping conditions. The new forms must be configured from the approved minimum field contracts, with PHI protection and generic notification defaults reviewed before any synthetic submission. Do not clone, copy, import or repurpose an existing form, and never copy submissions.
|
||||
No form creation or original mutation is authorized now. The owner reports that Form A `consultation` is configured; its Builder and runtime acceptance remains pending. A future configuration batch may create one disabled blank Form C only after explicit Jotform mutation authorization naming the scope, account, reviewers, environment and stopping conditions. The new form must be configured from the approved minimum field contract, with PHI protection and generic notification defaults reviewed before any synthetic submission. Do not clone, copy, import or repurpose an existing form, and never copy submissions.
|
||||
|
||||
The historical [cloning guide](https://www.jotform.com/help/27-how-to-clone-an-existing-form-from-your-account/) remains evidence for why the owner rejected inheritance: copied forms can carry email settings, recipients and workflow/thank-you behavior, with account-specific treatment of integrations and protection requiring verification. It is not an implementation path. The old source ID `250727122848156` remains reference-only and must be rejected by any future configuration validator. Account capacity does not establish creation permission.
|
||||
|
||||
@@ -309,3 +308,13 @@ Version 1.5, 2026-10-28: records the owner's successful embedded synthetic submi
|
||||
Version 1.6, 2026-10-28: adds the locally tested Form A production-build gate. It requires `live`, the existing live approval, `production` environment role and a new independent Form A production approval; it permits an indexing-enabled build but does not derive authorization from indexing. It leaves normal/off/mock/isolated behavior unchanged, maps no Forms B/C or service drawers, and does not deploy or change Jotform.
|
||||
|
||||
Version 1.7, 2026-10-28: records the owner-approved two-physical-form direction. Form B is retired as a physical Jotform form; Form A gains a planned, unconfigured `consultation` context and Form C remains a separate future referral form. The seven current Form A placements and all gates remain unchanged. No Builder, route, iframe, account or deployment change occurred.
|
||||
|
||||
### Version 1.8, 2026-10-29 — consultation isolated-test adapter
|
||||
|
||||
The owner reports that Form A's fixed `formContext=consultation` presentation and its required service-interest dropdown have been configured in Jotform. The repository did not inspect the Builder or submit a form. Exact visibility, requiredness, English/Spanish translations, conditional behavior and submission/confirmation behavior remain owner-acceptance items.
|
||||
|
||||
Astro now exposes that context only through a separate non-indexing isolated-test allowlist. The three standalone placements are `/client-consultation` (EN), `/es/client-consultation` (ES), and `/schedule-consultation` (EN). The six service-drawer placements are `/aba-therapy`, `/autism-evaluations`, `/learner-social-club`, `/es/aba-therapy`, `/es/autism-evaluations`, and `/es/learner-social-club`. The standalone pages use fixed, localized consultation URLs. The drawer pages hold the same fixed URL without an iframe `src` until an explicit visitor action. All nine require `PUBLIC_AIA_FORMS_CONSULTATION_TEST_APPROVED=true` in addition to the existing isolated-test gates. They are excluded from off, mock, normal staging, indexing-enabled and production builds.
|
||||
|
||||
This change leaves the existing seven-route Form A production allowlist unchanged. It does not authorize a production consultation route, activate Form C, add a service-specific preselection, add child/clinical/payment/booking collection, add a Jotform helper, modify Jotform, or add analytics, advertising, Contabo forwarding, tracking or a conversion signal.
|
||||
|
||||
The earlier requirement to show a conditional Autism Diagnostic Evaluation explanation is superseded. No diagnostic-evaluation explanatory note is to be added in Jotform or Astro. An AIA client advocate will discuss available options and coordination with qualified diagnostic providers during the subsequent conversation. This does not imply current in-clinic diagnostic availability, a diagnosis, or a completed diagnostic-provider hire.
|
||||
Reference in new issue
Block a user