# Phase: Experience Forms, Surveys & Appointments (11.6)

| Field | Value |
| --- | --- |
| Identifier | `experience-11.6` |
| Status | Complete |
| Owner | Platform |
| Module(s) | Forms, Form Submissions, Surveys, Survey Responses, Appointment Pages, Booking Refs |
| Service(s) | `experience` (Torbat Pages) |
| Depends On | `experience-11.5` |
| ADR(s) | [ADR-016](architecture/adr/ADR-016.md) |
| Manifest | [phase-manifest.yaml](ai-framework/phase-manifest.yaml) |

## Enterprise Phase Discovery Record

| Input | Finding |
| --- | --- |
| Roadmap / manifest | Next unfinished Experience phase = `experience-11.6` Forms, Surveys & Appointments |
| Prior handover | [phase-11-5.md](phase-handover/phase-11-5.md) — locales/media complete; no form/survey/appointment engines |
| Boundaries | Experience owns page shells + submission/booking **refs**; CRM/Communication/scheduling engines remain external (API/Events only) |
| Existing codebase | Page types include `form` / `appointment`; component kind `form_shell`; permissions had placeholder `experience.forms.*` |
| Missing vs DoD | No form/survey/appointment aggregates, APIs, policies, or submission/booking-ref shells |

Derived capabilities: define forms/surveys as page shells; receive submissions/responses with CRM/Communication refs; define appointment pages with provider/service refs; store external booking refs. **Not** SEO/PWA, deep CRM, or native scheduling ownership.

## Objective

Deliver Forms, Surveys, and Appointment page shells on `experience_db` with submission/booking references only — no ownership of CRM contacts or vertical booking engines.

## Scope

### In Scope

- `ExperienceForm` + `FormSubmission` (payload + crm/communication/external refs)
- `ExperienceSurvey` + `SurveyResponse`
- `ExperienceAppointmentPage` + `AppointmentBookingRef` (`external_booking_ref` required)
- Policies rejecting inactive definitions for intake; validators rejecting ownership keys (`crm_contact_id`, `booking_engine`, …)
- Permissions `experience.forms.*` / `experience.surveys.*` / `experience.appointments.*`
- Events for create/update/archive + submission/response/booking-ref lifecycle
- Alembic `0007_phase_116_forms_surveys_appointments`; version `0.11.6.0`

### Out of Scope

- SEO / sitemap / PWA — Phase 11.7
- Owning CRM contacts, Communication providers, or scheduling calendars
- Deep form-builder UI / CMS field graphs

### APIs

| Path | Permission |
| --- | --- |
| `/api/v1/forms` · `/api/v1/form-submissions` | `experience.forms.*` |
| `/api/v1/surveys` · `/api/v1/survey-responses` | `experience.surveys.*` |
| `/api/v1/appointment-pages` · `/api/v1/appointment-booking-refs` | `experience.appointments.*` |

## Completion Criteria

- [x] Forms/surveys/appointment APIs + tests green
- [x] No deep CRM/scheduling ownership; refs only
- [x] Docs + handover + manifests at `0.11.6.0`
