,
,,
Calisto Contacts

Ten roles. 29 tabs. One contact record.

Universal contact database shared across Deals, Ops, Inbox, Mail, Assure, Calendar, Box, and Ads. 29-tab profile UI with financial ledger, compliance documents, family tree, and AI summary. 10 assignable roles filtered by query param. GDPR consent fields as the single source of truth. KYC review queue with AML screening and identity verification. Duplicate detection and merge. Import from CSV or 10 CRM platforms. Organizations, tags, and 51 REST API endpoints.

29 Profile Tabs · 10 Contact Roles · 51 API Endpoints · 46 Client Components · 10 CRM Import Sources · 8 Cross-Product Consumers

,0,

profile tabs per contact record

,0,

contact roles (Guest, Tenant, Owner, Investor, Client, Patient, Vendor, Employee, Contractor, Prospect)

,0,

REST API endpoints

,0,

Calisto products read from and write to Contacts

Contact Profile

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 all in one place. Tabs are grouped by function and adapt to the contact's role.

Overview

Full contact record: name, email, phone, role, stage, GDPR consent status, custom fields. Avatar, organization link, and lifetime value.

Activity

Chronological feed of every interaction across products. Auto-logged from Deals, Ops, Inbox, Mail, and manual entries.

Meetings

Past and scheduled meetings tied to this contact. Video call links, attendees, and notes.

Bookings

Reservation and booking history pulled from Ops. Dates, properties, status, and revenue totals.

Calendar

Upcoming events for this contact across products. Meetings, bookings, task deadlines, contract renewals.

Deals

Active and closed deals where this contact is the primary. Pipeline stage, value, probability, and linked tasks.

Proposals

Proposals sent to this contact. Status (draft, sent, viewed, accepted, declined), total value, and expiry dates.

Documents

Files attached to this contact via Calisto Box. Upload, preview, and organize with folder structure.

Messages

Inbox threads and email history for this contact. Threaded view with read status and reply actions.

Financial

Invoices, payments, balances, and lifetime value. Payment method on file. Transaction history with date filters.

Access

Portal access, login history, and permission settings for this contact. Grant or revoke guest portal entry.

One Record, Ten Roles

Guest. Tenant. Owner. Client. Patient. Every role in one database.

Each contact carries a role that determines where they appear. Ops sees Guest, Tenant, Owner, Vendor, Employee, Contractor, Patient. Deals sees Client, Prospect, Investor, Owner. Filter the list by role via query param. GDPR consentMarketing and consentTimestamp on every record.

10 Contact Roles

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 Guest, Tenant, Owner, Vendor, Employee, Contractor, and Patient. Deals surfaces Client, Prospect, Investor, and Owner.

Guest

Hospitality, short-term rental, and hotel bookings. Linked to reservations in Ops.

Tenant

Long-term rental occupant. Linked to lease contracts, maintenance requests, and rent ledger in Ops.

Owner

Property owner or landlord. Linked to property records, income statements, and owner portal access.

Investor

Capital partner or shareholder. Linked to deals and financial reporting in Deals.

Client

Active customer with purchased services. Primary role for Deals pipeline records.

Patient

Healthcare or wellness client. Used in clinic and spa verticals for appointment and treatment records.

Vendor

Supplier or service provider. Linked to purchase orders, vendor invoices, and contractor agreements.

Employee

Internal team member. HR record with payroll reference, department, and access permissions.

Contractor

External worker on contract terms. Linked to tasks, work orders, and contract dates.

Prospect

Pre-sale lead. Enters the Deals pipeline when qualified. Web activity and form submissions tracked.

GDPR Consent Fields

Two fields per contact record. One source of truth across every product.

consentMarketingboolean

Whether this contact has opted in to marketing communications. Toggled per contact, respected across Mail, Campaigns, and Ads.

consentTimestampdatetime

When consent was last granted or withdrawn. Single source of truth for audit. Immutable once set (new toggle creates a new timestamp).

,0,

GDPR consent fields (consentMarketing + consentTimestamp)

,0,

compliance tabs (KYC, AML Check, Identity Verification, Right to Rent, Signing History)

,0,

CRM import sources with OAuth

,0,

dashboard metric tiles (Total, New This Week, KYC Pending, Dormant)

Data Quality

Detect duplicates. Compare fields. Merge into one record.

The duplicates scanner matches on name, email, and phone. Side-by-side field comparison picks the most complete data. Merge reassigns all linked deals, invoices, bookings, messages, and notes. Soft-delete on the secondary record.

Duplicate Detection + Merge

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 (deals, invoices, bookings, messages, notes) to the surviving contact. Soft-delete on the secondary.

1

Detect

The duplicates route (/contacts/duplicates) scans the contact database and surfaces records with matching names, email addresses, or phone numbers. Results grouped by potential match clusters.

2

Review

Side-by-side comparison of duplicate candidates. Field-level diff highlights which record has more complete data. Activity history, deal count, and financial totals shown per record.

3

Merge

Select the primary record and choose which fields to keep from the secondary. The merge endpoint (/api/contacts/merge) reassigns all linked deals, bookings, invoices, messages, and notes to the surviving record.

4

Verify

Post-merge audit confirms the surviving record now carries all reassigned relationships. The secondary record is soft-deleted. Merge event logged in the activity timeline.

Compliance

KYC queue. AML screening. Identity verification. Right to rent.

Centralized KYC review queue with bulk approve/reject. Per-contact AML screening with risk scores and PEP flags. Identity document upload with expiry tracking. UK right-to-rent share code validation. Full audit trail on every decision.

KYC + Compliance

Review queue. AML screening. Identity verification. Right to rent.

Five compliance surfaces: a centralized KYC review queue, per-contact KYC document management, anti-money-laundering checks with risk scoring, identity document verification with expiry tracking, and UK right-to-rent validation.

KYC Review Queue

/contacts/kyc

Centralized queue for contacts awaiting KYC approval. Filter by status (pending, approved, rejected, expired). Assign reviewers. Bulk approve or reject with mandatory notes. Full audit trail per decision.

ContactsKycQueueClient (25,284 lines)Status: pending, approved, rejected, expiredReviewer assignmentBulk approve/reject with notes

Per-Contact KYC Tab

/contacts/[id]/kyc

Document upload and verification within the contact profile. ID documents, proof of address, and supplementary evidence. Status history shows every review decision with reviewer name and timestamp.

Document upload (ID, proof of address)Status history with reviewer + timestampAPI: /api/contacts/[id]/kyc

AML Check

/contacts/[id]/aml-check

Anti-money-laundering screening per contact. Risk score calculation, politically exposed person (PEP) flag, and sanction list matching. Results stored on the contact record with check date and source.

Risk scorePEP flagSanction list matchingAPI: /api/contacts/[id]/aml

Identity Verification

/contacts/[id]/identity-verification

ID document capture and verification workflow. Passport, driving licence, or national ID. Expiry date tracking with renewal reminders. Verification status per document type.

Passport, driving licence, national IDExpiry tracking + renewal remindersAPI: /api/contacts/[id]/identity-verification

Right to Rent

/contacts/[id]/right-to-rent

UK right-to-rent compliance check. Document type selection, verification date, follow-up date scheduling, and Home Office share code validation. Required for UK landlords.

Document type + share code validationVerification + follow-up datesUK landlord compliance
Organizations

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.

Organization List

/contacts/organizations

Browse and search all organizations at /contacts/organizations. Each row shows name, contact count, primary contact, and creation date. Create new organizations inline or from the contact record.

Organization Detail

/contacts/organizations/[id]

Full detail view at /contacts/organizations/[id]. Linked contacts with their roles. Organization-level notes, tags, and custom fields. Edit name, industry, website, and address.

Contact Linking

/contacts/[id]/overview

Attach any contact to an organization from their profile. One contact can belong to multiple organizations. Organization appears on the contact overview tab and in search results.

REST API

/api/contacts/organizations

CRUD endpoints for organizations. GET /api/contacts/organizations returns the full list with pagination. POST creates. GET /api/contacts/organizations/[id] returns detail. PUT updates.

Import

CSV with auto-mapping. 10 CRM platforms with OAuth.

Four-step CSV wizard: upload, map columns, preview, import. Or connect to Salesforce, HubSpot, Pipedrive, Zoho, Dynamics 365, Close, Copper, Freshworks, ActiveCampaign, or Zendesk Sell via OAuth. Preview contact counts before importing.

Import

CSV with column mapping. 10 CRM sources with OAuth.

Two import paths: a four-step CSV/Excel wizard with auto-column-mapping and downloadable template, or direct CRM import from 10 platforms with OAuth authentication, contact count preview, and field mapping.

1

Upload

Drop a CSV or Excel file. Download a pre-built template from /api/contacts/import/template to see the expected columns.

2

Map Columns

Auto-mapping matches your column headers to contact fields. Override any mapping manually. Unmapped columns are skipped.

3

Preview

Review mapped rows before committing. Validation flags missing required fields and format mismatches.

4

Import

Confirm and import with progress tracking. Contacts created with mapped roles, tags, and organization links.

Shared Record

Deals. Ops. Inbox. Mail. Assure. Calendar. Box. Ads.

Eight Calisto products read from and write to the same contact record. Deal pipelines, operations, messaging, email campaigns, inspections, calendar events, file storage, and ad audiences all reference Contacts.

Cross-Product Record

Deals. Ops. Inbox. Mail. Assure. Calendar. Box. Ads.

Contacts is the shared record that eight other Calisto products read from and write to. Deal pipelines, operations, messaging, email campaigns, inspections, calendar events, file storage, and ad audiences all reference the same contact.

Deals

Every deal record links to a contact via regardingcontact UUID. The Deals pipeline reads contact role, organization, financial history, and communication preferences. Bidirectional: the contact profile shows all linked deals.

regardingcontact (UUID)Contact role used for pipeline filteringDeal value feeds contact lifetime value

Ops

Guest, tenant, owner, and vendor records in Ops are contact records with role-specific views. Reservation guest profiles, tenant lease records, and owner income statements all read from Contacts.

Guest profiles for reservationsTenant profiles for leasesOwner profiles for income statements

Inbox

Inbox threads are matched to contacts by email address and phone number. The contact card appears in the conversation sidebar. New inbound messages from unknown senders can auto-create contact records.

Email + phone matchingContact card in sidebarAuto-create from unknown senders

Mail

Mail respects the consentMarketing GDPR field before including a contact in any campaign send list. The contact email, name, role, and tags are available as merge fields in templates.

GDPR consent check before sendMerge fields: name, email, role, tagsUnsubscribe updates consentMarketing

Assure

Inspection and maintenance records in Assure link to contact records for tenant and owner notification. The contact profile tab shows linked Assure activities.

Tenant/owner notification routingLinked inspections on profile

Calendar

Meetings and bookings on the contact record come from Calendar. Attendee resolution uses the contact email. The Calendar tab on the contact profile aggregates all upcoming events.

Attendee resolution by emailCalendar tab aggregates events

Box

Documents attached to a contact are stored in Calisto Box with CDN delivery. The Documents tab on the profile lists all files scoped to this contact with upload, preview, and folder organization.

File storage scoped to contactCDN deliveryDocuments tab on profile

Ads

Contact segments (filtered by role, tag, location, or custom field) export to Calisto Ads as audience targets. Quick action in the navigation sidebar links directly to /ads/buy/audiences.

Segment export for targetingRole + tag + location filters

,0,

client components (13,676 lines of UI)

,0,

CRM sources (Salesforce, HubSpot, Pipedrive, Zoho, Dynamics 365, Close, Copper, Freshworks, ActiveCampaign, Zendesk Sell)

,0,

merge workflow steps (detect, review, merge, verify)

,0,

sidebar navigation sections (People, Organizations, Tools, Compliance, Sites, Settings)

Technical Specifications

51 endpoints. 46 components. Self-hosted infrastructure.

Self-hosted database 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
  • Tab-specific data: 30+ sub-endpoints (/api/contacts/[id]/financial, /kyc, /aml, etc.)
  • Import: /api/contacts/import (CSV), /api/contacts/import/crm/* (10 CRM sources)
  • 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 (9,967-line adapter.ts)
  • Cross-app data: cross-app-fetch.ts (client) + server-cross-app-fetch.ts (server)
  • Interaction tracking: track-interaction.ts (2,817 lines)
  • Auth: Calisto Auth (session-based, multi-tenant)
  • File storage: Calisto Box (cloud storage + CDN)
  • 46 client components totaling 13,676 lines
Pricing

High-Performance Ops. Zero Monthly Overhead.

Get all 15 Core modules at no monthly cost. You only pay 2% of processed revenue.

,,
Calisto Core
$0/month
+ 2% of revenue
CommitmentNone
UsersUnlimited
Products15 included
Best for: Businesses of any size. Revenue is auto-calculated from POS orders, reservations, folios, and event tickets.
,,,,,,,

Contacts

Universal contact database with 29 profile tabs.

Free

Included in Work Free

Wallet-debit

Add to Pro Shop