Eloquent

Documentation

Organization, Multi-Tenancy & Products

Organizations are the fundamental unit of tenancy in Eloquent. Each organization gets fully isolated resources, its own users, and its own installed products.

Multi-Tenancy Model

When an organization is created, the platform automatically provisions isolated resources across all data stores:

Data StoreIsolation Pattern
PostgreSQLDedicated schema per organization
ClickHouseDedicated database per organization
Message QueueDedicated storage per organization
RedisIsolated key space per organization

No cross-organization data access is possible. The API Gateway enforces organization context on every request through JWT claims.

Holding Company Model

Eloquent supports a holding company model where a single platform deployment serves multiple independent companies. Each company is a separate organization with:

  • Its own users and roles
  • Its own installed products
  • Its own data in isolated schemas and databases
  • Its own subscription and billing

This is ideal for conglomerates, government entities managing multiple departments, or managed service providers hosting multiple clients.

Managing Organizations

Organizations Page

The Admin App organizations page shows:

  • Summary cards — total orgs, active subscriptions, trialing, past due, cancelled, no subscription
  • Product filter — filter by product type (Eloquent, Aafya, Shop Assist, Consumer, Custom)
  • Sortable table — ID, title, product, status, subscription, template, installed products, user count, created date

Creating an Organization

Click "New Organization" and fill in:

FieldDescriptionRequired
NameOrganization display nameYes
DomainPrimary domain (e.g., example.com)Yes
ProductInitial product typeYes
StatusOrganization statusYes

On creation, the platform provisions all isolated schemas, databases, and storage for the new organization.

Editing an Organization

The edit dialog has four tabs:

Basic Info

  • Title, domain, status

Address

  • Address lines, city, state, country, ZIP code

Subscription

  • Plan name (e.g., pro_monthly, enterprise)
  • Seat count
  • Platform: Stripe or Custom billing
  • Status: Active, Trialing, Past Due, Cancelled
  • Read-only fields: Stripe Customer ID, Stripe Subscription ID, trial end date, current period end
  • If cancelled: shows cancel date and reason
  • If past due: shows grace period end date with warning

Roles

  • Custom role names (up to 20)
  • Default roles: user and admin (always present)

Enabling and Disabling Organizations

Organizations can be toggled between enabled and disabled states from the Users page. A disabled organization prevents all user access while preserving all data.

Product Management

Available Products

ProductDescription
EloquentFull AI platform
AafyaHealthcare AI assistant
DoneTask and project management
FahimSpecialized AI assistant
Shop AssistE-commerce chat
CRMCustomer relationship management

Installing Products

From the Organizations table, click the package icon on any organization row to open the product management dialog.

Each product shows its current status:

  • Installed (green badge with checkmark)
  • Not Installed (gray badge)

Click "Install" to begin installation. The dialog shows real-time progress:

  1. Progress bar — completed vs. total artifacts
  2. Current step — which artifact is being provisioned
  3. Artifact log — scrollable list showing each artifact's status:
    • Checkmark = completed
    • Spinner = in progress
    • X = failed (with error message)
    • Dash = skipped
    • Duration in milliseconds

Installation provisions all required artifacts for the product within that organization: entity definitions, skills, agents, and related configuration.

Uninstalling Products

Click "Uninstall" on an installed product. A confirmation dialog appears. Uninstalling removes all product-specific artifacts from the organization.