Skip to content

CRM Engine

Status: Draft for review

Purpose

Own customer/prospect identity within tenant context, leads, enquiry/contact history, wishlists, reviews, conversations, customer preferences and notification intent.

Owns

  • Tenant-scoped customer profiles and guest linkage
  • Leads and lead source/attribution references
  • Enquiry/contact records
  • Conversations/messages
  • Wishlists/favorites
  • Reviews/ratings and moderation state
  • Customer communication preferences/consents
  • Notification inbox/read state (delivery delegated to Integration/Operations)

Non-goals

It does not own authentication credentials, bookings/orders, payment transactions, campaign definitions or email/SMS provider implementation.

API contract — functional surface

These are contract-level resources and operations, not final controller/file names.

Method Route Primary actor Contract intent
POST /api/public/v1/leads Visitor Create generic lead/contact request.
GET /api/tenant/v1/customers Authorized Tenant Staff Search tenant customer records.
GET /api/tenant/v1/customers/{id} Authorized Tenant Staff Read customer timeline/profile.
POST /api/public/v1/wishlists/items Customer Add public offering to wishlist.
DELETE /api/public/v1/wishlists/items/{offeringId} Customer Remove wishlist item.
POST /api/public/v1/reviews Eligible Customer Submit review subject to tenant rules.
PATCH /api/tenant/v1/reviews/{id}/moderation Tenant Admin/Manager Moderate review.
GET /api/tenant/v1/conversations Tenant Staff List customer conversations.
POST /api/public/v1/conversations/{id}/messages Customer Post customer message.
POST /api/tenant/v1/conversations/{id}/messages Tenant Staff Reply to customer.

All mutating operations apply the global tenant, authorization, audit and idempotency rules where relevant.

Events

  • lead.created
  • customer.created
  • customer.merged
  • review.submitted
  • review.published
  • conversation.message_created
  • communication_preference.changed

Roles & responsibility matrix

Legend: A accountable, R responsible, C consulted, I informed, none.

Capability Platform Admin Tenant Owner Tenant Admin Specialist/Manager Customer/Visitor
CRM platform policy C A R R I
Customer/lead management A R R C
Reviews moderation A R R C
Conversations I C R R
Wishlist/preferences I I C R

Dependencies

  • Platform Engine for tenant/member authorization
  • Commerce Engine for booking/review eligibility and lead transaction references
  • Marketing Engine for attribution/campaign linkage
  • Integration Engine for outbound message delivery

Internationalization Contract

  • Customer/user profiles may store a preferred locale independently from nationality, market or currency.
  • Customer-facing conversations/templates resolve locale through the Internationalization Engine.
  • Reviews/user-generated content retain the language written by the customer; automatic translation, if introduced, is a derived representation and must not overwrite source content.

Security / isolation requirements

  • Customer data is tenant scoped except explicitly shared user-account identity.
  • Consent/preferences are auditable.
  • Support searches cannot leak customer records across tenants.

Acceptance criteria

  • Legacy enquiry, wishlist, review, chat and notification-user experiences are mapped.
  • Customer timeline can reference bookings/payments/campaign sources without owning those records.
  • Anonymous leads can later be associated with authenticated customers safely.