Ten roles. 29 tabs. One contact record.
One contact record shared across eight products, with 29 profile tabs, 10 assignable roles, and GDPR consent as the single source of truth. KYC queue, AML screening, duplicate merge, and import from 10 CRM platforms.
,0,
profile tabs per contact record
,0,
assignable contact roles
,0,
REST API endpoints
,0,
cross-product consumers
29 tabs per record. One profile UI.
Each contact opens to a tabbed detail view. Core fields, activity feed, financial ledger, compliance documents, family tree, and AI summary. Tabs grouped by function, adapted to the contact's role.
Guest. Tenant. Owner. Client. Patient. Every role in one database.
Role determines product context. Filter by query param, enforce GDPR consent on every record.
Guest. Tenant. Owner. Investor. Client. Patient. Vendor. Employee. Contractor. Prospect.
Each contact carries a role that determines which product context they appear in. Filter the contact list by role via query param (/contacts?role=client). Ops surfaces 7 roles. Deals surfaces 4.
consentMarketingbooleanOpted in to marketing communications. Respected across Mail, Campaigns, and Ads.
consentTimestampdatetimeWhen consent was last granted or withdrawn. Immutable once set.
Find duplicates. Compare fields. Merge into one record.
The duplicates scanner matches on name, email, and phone. Side-by-side comparison lets you pick the most complete fields. The merge operation reassigns every linked record to the surviving contact.
Scans on name, email, and phone. Results grouped by match cluster.
Side-by-side field comparison. Activity, deal count, and financials per record.
Select primary record, pick fields from secondary. All linked records reassigned.
Post-merge audit confirms reassigned relationships. Secondary soft-deleted.
+1 415 555 0142
Role: Client
Deals: 3 active
Last activity: 2 days ago
(no phone)
Role: Prospect
Deals: 0
Last activity: 45 days ago
KYC queue. AML screening. Identity verification. Right to rent.
Five compliance surfaces with bulk approve/reject, risk scoring, and full audit trail.
Review queue. AML screening. Identity verification. Right to rent.
Five compliance surfaces: centralized KYC review queue, per-contact KYC documents, anti-money-laundering checks with risk scoring, identity verification with expiry tracking, and UK right-to-rent validation.
Companies. Accounts. One org record linked to contacts.
Organization records group contacts by company or account. List view with search, detail view with linked contacts, and REST API for programmatic access. A contact can belong to multiple organizations.
Browse and search all organizations. Name, contact count, primary contact, and creation date per row.
Linked contacts with roles. Organization-level notes, tags, and custom fields.
One contact can belong to multiple organizations. Organization appears on overview tab and in search.
CRUD endpoints with pagination. GET list, POST create, GET/PUT detail by ID.
Deals. Ops. Inbox. Mail. Assure. Calendar. Box. Ads.
Eight products read from and write to the same record. One contact, zero re-entry.
CSV with column mapping. 10 CRM sources with OAuth.
Two import paths: a four-step CSV/Excel wizard with auto-column-mapping, or direct CRM import from 10 platforms with OAuth authentication and field mapping.
Three-step CRM import: authenticate via OAuth, preview contact counts, then import with field mapping.
Upload, map columns, preview, import. Download template from /api/contacts/import/template. Auto-mapping matches headers to contact fields.
| CSV Column | Maps To |
|---|---|
| Full Name | name |
| Email Address | |
| Phone | phone |
| Company | organization |
| Type | role |
Deals. Ops. Inbox. Mail. Assure. Calendar. Box. Ads.
Contacts is the shared record that eight Calisto products read from and write to. One contact, zero re-entry across the platform.
Every deal links to a contact. Pipeline reads role, organization, and financial history.
Contact → regardingcontact UUID → PipelineGuest, tenant, owner, and vendor profiles are contact records with role-specific views.
Contact → Role Filter → Guest/Tenant/OwnerThreads matched by email and phone. Unknown senders auto-create contact records.
Email/Phone → Contact Match → ThreadGDPR consent check before campaign send. Merge fields from contact record.
consentMarketing → Campaign List → SendInspection records link to contacts for tenant and owner notification routing.
Inspection → Contact Link → NotificationMeetings and bookings resolved by attendee email. Calendar tab aggregates events.
Attendee Email → Contact Resolve → EventFiles scoped to contact with CDN delivery. Documents tab on the profile.
Document → Contact Scope → CDNContact segments by role, tag, and location export to ad audiences.
Segment Filter → Audience Export → Campaign,0,
client components (13,676 lines of UI)
,0,
CRM import sources with OAuth
,0,
merge workflow steps
,0,
sidebar navigation sections
51 endpoints. 46 components. Self-hosted infrastructure.
51 REST API endpoints covering contact CRUD, tab data, import, organizations, tags, and compliance. 46 client components with cross-app data fetching and interaction tracking.
Data Model
- 29 profile tabs per contact record
- 10 contact roles with product-context subsets (OPS_ROLES, DEALS_ROLES)
- GDPR: consentMarketing (boolean) + consentTimestamp (datetime)
- Role filtering via query param (?role=client), not separate routes
- Organization linking (many-to-many)
- Family/relationship graph (parent, spouse, sibling, employer, referrer)
- Lifetime value calculated from financial tab data
API Surface
- 51 REST endpoints under /api/contacts
- Core CRUD: GET, POST, PUT, DELETE on /api/contacts/[id]
- Bulk operations: /api/contacts/bulk
- 30+ tab-specific sub-endpoints
- Import: CSV + 10 CRM sources via /api/contacts/import/crm/*
- Organizations: /api/contacts/organizations with nested [id]
- Tags: /api/contacts/tags with nested [id]
Infrastructure
- Self-hosted database infrastructure
- Circuit breaker + caching + rate limiting at adapter layer
- Cross-app data: client + server fetch with adapter pattern
- Interaction tracking (2,817-line tracker)
- Auth: session-based, multi-tenant
- File storage: cloud storage + CDN delivery
- 46 client components totaling 13,676 lines
High-Performance Ops. Zero Monthly Overhead.
Get all 15 Core modules at no monthly cost. You only pay 2% of processed revenue.
Contacts
Universal contact database with 29 profile tabs.
Included in Work Free
Wallet-debit
Add to Pro Shop