Add the experience service with sites through analytics/AI hooks, migrations through 0011, and phase docs/manifests marking the track complete. Co-authored-by: Cursor <cursoragent@cursor.com>
60 lines
2.2 KiB
Markdown
60 lines
2.2 KiB
Markdown
# Phase Handover — Experience 11.6 Forms, Surveys & Appointments
|
|
|
|
## Metadata
|
|
|
|
| Field | Value |
|
|
| --- | --- |
|
|
| Phase ID | `experience-11.6` |
|
|
| Title | Forms, Surveys & Appointments |
|
|
| Status | Complete |
|
|
| Service(s) | `experience` (`experience_db`) |
|
|
| Version | `0.11.6.0` |
|
|
| Date | 2026-07-26 |
|
|
| ADR(s) | [ADR-016](../architecture/adr/ADR-016.md) |
|
|
|
|
## Discovery Summary
|
|
|
|
Phase 11.5 delivered locale bindings and Storage-only media refs. Tenants still lacked form/survey definition shells and appointment page booking-ref surfaces. This phase adds those shells while keeping CRM contact and vertical scheduling ownership outside Experience.
|
|
|
|
## Reusable Components
|
|
|
|
| Component | Location | Reuse notes |
|
|
| --- | --- | --- |
|
|
| Forms + submissions | `app/models/forms.py`, `app/services/forms.py` | Active-only intake; payload refs not CRM IDs |
|
|
| Surveys + responses | same | Mirrors form intake pattern |
|
|
| Appointment pages + booking refs | same | `external_booking_ref` unique per page; no calendar engine |
|
|
| Policies / validators | `app/policies/forms.py`, `app/validators/forms.py` | Status transitions; forbid ownership keys in JSON shells |
|
|
|
|
## Public 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.*` |
|
|
|
|
## Events
|
|
|
|
`experience.form.*` · `experience.form_submission.*` · `experience.survey.*` · `experience.survey_response.*` · `experience.appointment_page.*` · `experience.appointment_booking_ref.*`
|
|
|
|
## Known Limitations
|
|
|
|
- No SEO/PWA publishing (11.7)
|
|
- No native scheduler / CRM write-back
|
|
- Submission processing is status-shell only (no background workers in this phase)
|
|
|
|
## Migration Notes
|
|
|
|
| Item | Detail |
|
|
| --- | --- |
|
|
| Alembic | `0007_phase_116_forms_surveys_appointments` (head) |
|
|
| Upgrade | `alembic upgrade head` |
|
|
| Breaking | None (additive) |
|
|
|
|
## Next Phase Entry
|
|
|
|
| Field | Value |
|
|
| --- | --- |
|
|
| Next phase | `experience-11.7` — Publishing, Domains, SEO & PWA |
|
|
| Entry docs | This handover + [experience-phase-11-6.md](../experience-phase-11-6.md) |
|