Home / Insights / SaaS architecture

SAAS ARCHITECTURE & DATA ISOLATION

Multi-tenant call center architecture: choosing a data model

A practical comparison of shared tables, separate databases and hybrid tenant architectures for contact center SaaS products.

Architecture guide · For SaaS founders, product teams and contact center engineers

A multi-tenant call center platform lets one application serve several customer companies. Each company needs users, campaigns, contacts, call history and settings. The central design question is how the platform separates those records, routes each request and operates the databases as the customer base grows.

There is no single data model that fits every product. The right choice depends on the existing code, isolation requirements, operational capacity, customer contracts and expected scale.

Shared database and shared tables

All customers use the same tables, and tenant-owned rows carry a tenant identifier. The application must apply that tenant context consistently to every query, background job, report, export and API endpoint.

Separate database per tenant

Each company has its own operational database. A control plane stores the tenant registry and maps a customer’s sign-in identifier to the correct database connection.

Hybrid and tenant database pools

A hybrid model can keep a control database and place tenant databases across several managed database instances. Smaller tenants share a pool; customers with distinct scale, recovery or contractual needs can move to a dedicated instance.

This model adds routing and migration complexity, but allows teams to scale database capacity by pool and isolate the busiest tenants without provisioning a database server for every customer.

Design the control plane and tenant identity

The control plane should resolve the customer account before the application accesses operational records. Bind that tenant identity to the authenticated session and re-check it for every request. Avoid relying only on a user-supplied company ID or a hidden form field.

For a shared domain, an account ID or company code can identify the workspace at login. The server should validate that code, authenticate the user against the selected tenant and keep the tenant binding stable for the session.

Plan database migrations before onboarding customers

As soon as tenants have separate schemas, every schema change becomes an operational rollout. Maintain a versioned migration ledger, checksum applied files, track status per tenant, log failures and provide a way to retry safe migrations. Test migrations against copies of representative tenant data before applying them broadly.

Design each migration to be repeatable where possible. Many MySQL DDL operations implicitly commit, so a multi-statement migration may partially complete when an error occurs. Take verified backups and define a recovery plan before changing production schemas.

Keep the telephony data path in scope

Contact center SaaS has more than web requests. Telephony event writers, call detail records, recordings, IVR files, queue state, reporting jobs and webhooks must all be associated with the correct tenant. A well-isolated web login does not guarantee tenant isolation across asynchronous event paths.

A practical architecture decision checklist

  1. Inventory every tenant-owned table, file, cache key, event and report.
  2. Map authentication and tenant resolution from the shared entry point through every request.
  3. Choose shared tables, separate databases or pools based on code readiness and isolation needs.
  4. Test access control with two tenants that use overlapping usernames and similar records.
  5. Define migration, backup, restore, monitoring and tenant-move procedures.
  6. Review the design against customer contracts and applicable security requirements.
Isolation is a system property. Database layout helps, but access controls also need to cover sessions, background jobs, integrations, exports, cache keys, media files and operational tooling.

TrulyVo uses a separate operational database for each tenant with a platform control plane for tenant management. Review how that model maps to your own application and scale requirements.

See the multi-customer use case →