# Phase: Marketing & Loyalty

| Field | Value |
| --- | --- |
| Identifier | `beauty-business-14-7` |
| Status | Planned |
| Owner | Platform |
| Module(s) | `beauty_business.marketing`, `beauty_business.loyalty_integration`, `beauty_business.communication_integration` |
| Service(s) | `beauty_business` |
| Depends On | `beauty-business-14-0` through `beauty-business-14-6`; Loyalty, Communication, Experience platforms |
| ADR(s) | TBD |
| Manifest | [phase-manifest.yaml](../../ai-framework/phase-manifest.yaml) |
| Framework | [ADR-013](../../architecture/adr/ADR-013.md) · [ADR-018](../../architecture/adr/ADR-018.md) · [ADR-019](../../architecture/adr/ADR-019.md) |

## Objective

Close the **growth loop** for beauty businesses: marketing campaign refs, birthday/ win-back triggers, Loyalty earn-on-visit and referral hooks, Communication templates for reminders and promotions, Experience widget refs for public booking — all as **client integrations** without owning Loyalty ledger, Communication providers, or CRM campaigns.

## Enterprise Phase Discovery

> **Required before Implementation.**

### Target Responsibility (this phase when Complete)

- MarketingCampaignRef (local metadata + external campaign id ref)
- LoyaltyIntegrationConfig (program ref, earn rules mapping on appointment.completed)
- CommunicationIntegrationConfig (template keys for confirm/remind/promo)
- ReferralAttributionRef (Loyalty referral ref)
- Connector dispatch pattern (mock-first) for Loyalty + Communication APIs
- Events: `beauty_business.marketing.*`, `beauty_business.integration.*`
- Permissions: `beauty_business.marketing.*`, `beauty_business.integrations.*`

### Explicitly Excluded

- Loyalty PointEngine / CampaignEngine implementation
- Communication SMS/email provider adapters
- CRM marketing automation
- Healthcare patient outreach / clinical notifications

## Business Analysis

| Item | Detail |
| --- | --- |
| Actors | Salon owner, marketing staff |
| Business capabilities | Reminders, promotions, points on visit, referral tracking |
| Success metrics | Integration calls idempotent; no provider ownership |
| Non-goals | Standalone marketing automation platform |

## Scope

### In Scope

- MarketingCampaignRef, PromotionRuleRef (local shells)
- LoyaltyIntegrationConfig + earn/redeem dispatch on domain events
- CommunicationIntegrationConfig + reminder dispatch schedules (job shells)
- ExperienceBookingWidgetRef (public embed config)
- Optional DeliveryIntegrationRef for retail product shipments

### High-Level Entities

| Entity | Purpose |
| --- | --- |
| MarketingCampaignRef | Local campaign metadata |
| LoyaltyIntegrationConfig | Map visits → points |
| CommunicationIntegrationConfig | Template mapping |
| IntegrationDispatch | Outbound call audit log |

## Out of Scope

- New Communication channels
- Loyalty wallet / gift cards
- Full analytics dashboard (future roadmap)
- Frontend marketing UI (separate track)
- Healthcare pharmacy / prescription notifications

## Completion Criteria

- [ ] Provider contracts + mock dispatch for Loyalty and Communication
- [ ] Appointment lifecycle triggers integration hooks
- [ ] No duplication of Loyalty or Communication domain models
- [ ] Healthcare module untouched

## Related Documents

- [Phase 14.1](phase-14-1-booking-engine.md)
- [Phase 14.4](phase-14-4-customer-management.md)
- [Phase 14.5](phase-14-5-package-membership.md)
- [Beauty Business Roadmap](../../beauty-business-roadmap.md)
- [Loyalty](../../module-registry.md#loyalty) · [Communication](../../module-registry.md#communication) · [Experience](../../module-registry.md#experience)
