Cairnly
Install

Built around the relationship record.

Dashboard, contacts, deals, tasks, calendar, automations, reports, timeline, and settings share one small-team workflow. Scope is deliberate.

Workspace

Core modules.

Relationship workspace

  • Dashboard, contacts, deals, tasks, calendar, automations, reports, timeline, and settings
  • Contact tags, merge, delete, vCard export, CSV export, and AI scoring
  • Workspace-defined contact fields: text, number, date, boolean, URL, select, and multi-select

Communication layer

  • Gmail OAuth plus SMTP/IMAP accounts
  • Threaded email on contact timelines with optional tracking
  • Email sequences with up to five steps and pause-on-reply behavior

External surfaces

  • Hosted lead forms at /f/<slug> and public booking pages at /m/<handle>
  • Scoped API tokens for contacts, deals, tasks, and report exports
  • CalDAV and Google Calendar sync with scheduling conflict checks

Contacts, tags & deals

People and companies with workspace-defined custom fields, tags, CSV import with dedupe preview, contact merge, vCard export, Postgres full-text search, and Kanban + table pipeline views.

Scheduling links

Public booking pages per user — event types, availability windows, conflict checking, automatic contact creation, and timeline events on book.

Email in context

Threaded conversations on the contact timeline, Gmail OAuth or SMTP/IMAP accounts, templates with {{contact.*}} variables, optional tracking, smart replies, and reply-paused email sequences.

Forms & webhooks

Hosted forms at /f/<slug>, embed snippets, and POST /api/v1/forms/<slug> for Zapier, n8n, or your own stack.

Code-defined automations

automations.ts in your data directory with triggers like onEmailReceived and onStageChanged — assign owners, tag, send email, score, webhook.

Eight opinionated reports

Pipeline by stage, conversion funnel, win/loss, revenue by month, contacts by source, activity by user, deal cycle, and aging deals — CSV now, PDF via background worker.

Settings that matter

Workspace fields, email sequences, pipelines, AI mode, audit log, Gmail connection, and scoped API tokens live in the app instead of hidden admin scripts.


Three foundations

One-command self-hosting

A single curl brings up Postgres, the app, and Caddy with automatic TLS. Secrets are generated, backups are scheduled, and you get an admin invite link — usually in under a minute on a fresh VPS.

Contacts, inbox, and history together

Email, calendar events, notes, call logs, form submissions, bookings, tags, and merge history land in one chronological timeline on the contact record. No communications tab — the contact view is the inbox.

AI-native, privacy-respecting

Smart replies, lead scoring, natural-language contact search, and weekly digests — each workspace picks Local (Ollama), BYO API key, or Off. Every call is logged; you can browse and purge the audit log.

Out of scope for v1: teams above ~25 users, territory management, commission tracking, dashboard builders, and plugin marketplaces.