Skip to main content

Contract status

Canonical interface contract The shared shell entities are called out directly in the MVP spec, the shell notes, and the v2 port map.

Source documents

Shell-owned entities

These entities belong to the shell and should not be duplicated per module:
EntityRole
workspacesUnified tenant record replacing separate agency and business concepts at the schema layer
contactsUniversal person or lead record shared across modules
usersPlatform identities
eventsShared event log and inter-module bus history
module_registryInstalled modules and declared capability contracts
themesWhite-label visual configuration
layout_definitionsScreen and layout metadata
module_installationsWhich workspaces have which modules enabled
billing_accountsBilling ownership and platform tax context
subscriptionsPlan and module subscription state

Module-owned tables

The v2 port map provides concrete examples of module tables:
ModuleExample module-owned tables
Voicevoice_calls, voice_profiles, transcripts
Chatchat_conversations, chat_messages, chat_configs
Knowledgekb_entries, kb_projects
Contact Formscontact_forms, contact_submissions
A module may read shared entities. It must write its private data to its own namespace.

Contacts as the common operating object

contacts is the most important shared entity because multiple modules need to collaborate on the same person:
  • Chat creates or enriches a lead.
  • Contact Forms converts a submission into a lead record.
  • Voice logs call results against the same person.
  • LogicLegal can qualify and enrich legal-intake prospects.
  • Sales-facing features monitor engagement around the same contact lifecycle.

Required contact fields

The repository does not publish one final schema, but a platform-ready contacts entity should support:
  • Stable contact ID
  • Workspace ownership
  • Name and organization
  • Phone and email
  • Channel provenance
  • Qualification status
  • Lead score or warmth
  • Consent or communication preferences
  • Cross-module metadata pointers

Event log expectations

The events table or service must support:
  • Event name
  • Producing module
  • Workspace scope
  • Contact scope when applicable
  • Actor context
  • Payload
  • Timestamp
  • Delivery or processing state
This is the interconnection layer the MVP spec describes for call completion, knowledge updates, lead capture, and future automation.

Data ownership rules

  • Shell entities define the common platform language.
  • Modules own their module tables and migrations.
  • Modules do not reach into one another’s private storage.
  • Shared reads happen through shell entities or declared gateway contracts.
  • Cross-module reactions happen through emitted events.

Implementation checkpoints

Before you build a module, verify:
  1. The module can resolve workspace and contact context.
  2. The module can emit typed events into the shared log.
  3. Another module can consume those events without private-table access.
  4. Theme and layout context can be applied without module-specific hacks.
Last modified on April 18, 2026