Kauri Bay Auckland
CRM replacement project specification
A consolidated specification for a focused in-house CRM replacing the operational parts of HubSpot used by Kauri Bay Weddings and Events.
1. Purpose and outcome
The project will deliver a secure, supportable first-release CRM that preserves operational continuity for Weddings and Events while avoiding a full HubSpot clone.
- Manage contacts, organisations where used, deals, owners, stages, activities, tasks, notes, email history, and associations.
- Preserve the two operational inboxes and Microsoft 365 email paths, subject to integration feasibility.
- Receive website form submissions, including relevant legacy Non-HubSpot form families.
- Reproduce active follow-up behaviours that create tasks, send internal notifications, and move deals between stages.
- Provide central operational reports, exports, backups, migration rehearsal, reconciliation, rollback, UAT, and handover evidence.
2. Verified current-state baseline
| Area | Verified baseline | Replacement implication |
|---|---|---|
| Inboxes | Separate Weddings and Events inboxes. Events also shows Facebook Messenger. | Both operational inboxes are in scope. Messenger is deferred for day one. |
| Pipelines | Events has 9 stages. Weddings has 12 stages. | Model separate pipelines and preserve stage history. |
| Workflows | 8 reported, 7 active or operationally relevant. | Reproduce only verified behaviours, with tests and manual overrides. |
| Forms | 32 forms, including legacy Non-HubSpot captures and Wedding Information Pack with about 3,000 displayed submissions. | Export fields, source URLs, submissions, consent, and routing. |
| Users | 5 active and 2 deactivated. Active users display as Super Admins. | Use narrow role-based access; do not copy all-Super-Admin access. |
| Reporting | 2 dashboards and 19 personal reports, including Weddings and Events operational reports. | Reproduce only central reports confirmed in staff use. |
| Hosting | Apps1 convention uses localhost-bound applications under /srv/apps/<app>. | Confirm deployment, ports, secrets, backup, monitoring, and recovery design. |
3. Approved first-release scope
In scope
- Contacts, deals, pipelines, lifecycle, owners, associations, notes, calls, meetings, tasks, and email activity links.
- Weddings and Events inbox routing and conversation visibility.
- Website intake, deduplication, consent, attribution, routing, and failure handling.
- Active workflow behaviours, saved views, CSV exports, operational reports, roles, audit, backup, monitoring, deployment, and rollback.
- Reusable email templates with create, amend, preview, test, approve, publish, version, audit, disable, and rollback controls.
Deferred or excluded
- Facebook Messenger for day one.
- Full HubSpot marketing automation parity and a general-purpose workflow or sequence builder.
- Landing-page authoring, tickets, commerce, payments, subscriptions, custom objects, and broad marketplace parity.
- Pixel-level marketing analytics and inaccessible or unused report parity.
4. Operational workflows
| Workflow | Trigger | Required behaviour | Current gap |
|---|---|---|---|
| Wedding enquiry date | Outgoing associated email containing “Wedding Enquiry | Kauri Bay Auckland”, excluding Re: and Fwd: | Set Wedding enquiry sent datetime. | Internal property name. |
| Wedding enquiry follow-up | Wedding enquiry sent datetime known | Check exact incoming reply within 3 days; otherwise wait 3 business days and create a Contact-owner task. | Internal property and binding metadata. |
| Events 7-day no response | Events, Quote (Events), create date older than 7 days and no activity or activity older than 7 days | Create high-priority Call task due next business day at 8:00 AM, move to Phone Call (Events), send internal notification to Stuart Gordon. | Internal IDs and template metadata. |
| Weddings initial follow-up | Weddings, Phone Call (Weddings), inactivity over 14 days | Move to Initial Follow up email (Weddings) and send KBB Deal to Stage 2 notification. | Internal IDs and template metadata. |
| Weddings 7-day no response | Weddings, Quote Created (Weddings), create date older than 7 days and no activity or activity older than 7 days | Create high-priority Call task due next business day at 8:00 AM, move to Phone Call (Weddings), send internal notification. | Internal IDs and template metadata. |
| Wedding Pack follow-up | Wedding Information Pack form submission | Wait 3 days, set Wedding Pack Follow Up Date, set Lead Status to Unqualified. | Internal property names. |
| Final Email | Final Follow up email (Weddings), close date under 15 days, last activity over 7 days | Send the approved Final Email template and preserve the stage update. | Live action graph lacks email action. Candidate template found but mapping, recipient, and timing need confirmation. |
| Winter Romance | Winter Romance Landing Page form | Inactive Forms-created workflow; no visible actions. | Retain as inactive unless form evidence proves otherwise. |
Workflow behaviour is a replacement requirement, not an instruction to alter the live HubSpot workflows during discovery.
5. Target CRM capabilities and data model
Core records
- Contacts and organisations where actually used.
- Separate Weddings and Events deals with stage, owner, value, dates, type, venue, guest count, and source fields.
- Activities, tasks, notes, calls, meetings, emails, attachments or protected links, and audit events.
- Forms, submissions, consent, attribution, workflow executions, exceptions, and delivery records.
Relationships
- Contact-to-deal and couple-to-deal associations.
- Primary contact and deal owner resolution.
- Activities associated with contacts and deals.
- Links to quotes, invoices, booking schedules, Xero, Outlook, and WAVE without claiming those systems are replaced.
Required user journeys
- Information-pack lead becomes a contact with consent and source.
- New enquiry is deduplicated, assigned, and linked to a deal.
- Site visit and quote activity are recorded.
- Follow-up tasks and emails are created according to the approved workflow.
- Booking, deposit, final payment, completion, cancellation, and closed-lost outcomes remain reportable.
- Staff can search, filter, export, and see a chronological record timeline.
6. Integrations and source boundaries
| System | Current or proposed authority | First-release boundary |
|---|---|---|
| Microsoft 365 / Graph | Approved for day-one sending | Send through approved mailbox identities; record provider outcomes, sender, recipient, template version, and idempotency key. |
| Google Sheets | Current booking-date source | Target source direction toward Outlook calendar is proposed and requires approval. |
| Xero | Payment status and invoices; legacy revenue authority | Do not treat CRM values as accounting authority. |
| HubSpot | Forward-booking source until cutover | Read-only discovery, frozen export, delta export, and controlled fallback. |
| WAVE | Authoritative waiver evidence and events | CRM stores contact-linked reference or event and protected PDF link, not raw legal evidence. |
| Website | Form and enquiry intake | Validate secrets, rate-limit, deduplicate, capture consent, and route failures to a dead-letter or exception queue. |
7. Email template management
Templates are content and sender configuration. Workflows own timing, recipients, stage changes, tasks, and manual overrides. Each live email action binds to an immutable published template version.
- Draft, review, approve, publish, disable, retire, and rollback lifecycle.
- Allowlisted merge fields with required and optional fallback rules.
- HTML sanitisation, plain-text fallback, preview, internal-only test send, audit, and usage visibility.
- Microsoft Graph sender and recipient validation, bounded retries, exception handling, and idempotency.
Final Email Follow up | Kauri Bay Boomrock, ID 133908258823, subject Final Email Follow Up, from Danica Griggs at events@kauribayboomrock.co.nz. It is published but linked to zero simple workflows, so import it as a draft and confirm mapping before approval.Full detail: template management specification.
8. Migration and reconciliation
- Confirm export authority and method.
- Create an immutable raw archive with timestamp, access control, and checksums.
- Export object counts, properties, options, representative values, activities, attachments, forms, and associations.
- Produce source-to-target mappings, transforms, duplicate policy, validation rules, and exception output.
- Run a disposable dry-run import, reconcile counts and associations, then repeat from a fresh archive to prove idempotency.
- Prepare final delta export, cutover import, backup, rollback dataset, and read-only HubSpot fallback.
| Required evidence | Status |
|---|---|
| Raw HubSpot archive and manifest | Not started |
| Data dictionary | Not started |
| Migration mapping | Not started |
| Import rehearsal and reconciliation report | Not started |
| Rollback dataset and cutover package | Not started |
9. Architecture, security, and operations
- Hosted on Kauri Bay infrastructure using the confirmed Apps1 deployment convention, subject to capacity and port review.
- Authentication, sessions, MFA/password policy, roles, audit history, least privilege, and administrative access must be specified before build.
- Website ingress requires secret validation, rate limits, replay protection, idempotency, and dead-letter handling.
- Backups must be encrypted, monitored, restorable, and tested. Secrets must not be stored in source, templates, or logs.
- Deployment, migration, rollback, retention, incident, and recovery runbooks are required before cutover.
10. Delivery plan and exit gates
| Window | Focus | Exit gate |
|---|---|---|
| Days 1-3 | Inventory, exports, scope, architecture | Signed must-have scope and data dictionary baseline |
| Days 4-7 | Foundation, authentication, model, import and integration skeleton | Test staff can log in and create core records |
| Days 8-12 | Contacts, pipelines, activities, tasks, workflows, forms, reports | Developer journey tests pass |
| Days 13-16 | Rehearsal import, reconciliation, defects, security controls | Import tolerances met and critical defects closed |
| Days 17-19 | UAT, training, runbook, final export | Business approval to cut over |
| Days 20-21 | Production cutover, verification, monitoring, hypercare | Live CRM verified and rollback window closed by approval |
Dates: project start 6 August 2026, planned cutover 31 August 2026, latest acceptable cutover 7 September 2026. Review cadence is 9:00 AM each Wednesday on Teams.
11. Governance and ownership
| Responsibility | Named owner |
|---|---|
| Project approver and product owner | Oliver Ormond |
| Technical owner and migration owner | Stuart Gordon |
| Weddings UAT | Emily Brady |
| Events UAT | Danica Griggs |
| Additional UAT reviewer | Kerry Hand |
Oliver Ormond approves scope, UAT completion, and production cutover. Every requirement requires a source, owner, acceptance test, and evidence.
12. Open decisions and current gaps
- DEC-007: approve the proposed authority map for booking dates, finance, revenue, and WAVE waiver references.
- DEC-008: confirm HubSpot freeze time and fallback period.
- DEC-009: confirm acceptable RPO and RTO.
- DISC-004: finish internal property names, candidate Final Email mapping, recipient rule, and exact timing.
- DISC-005: export form IDs, source URLs, fields, submissions, and legacy form dependencies.
- DISC-006 and DISC-007: obtain export authority and produce raw inventory plus data dictionary.
- SPEC-010: template management is implementation-ready and awaiting approval of roles, sender boundaries, and acceptance-test agreement.