Skip to main content

Empirica CRM

Client Relationship Management module for Empirica.

Enables relational epistemics - tracking what AI knows about entities (clients) separate from tasks (goals).

Prerequisites

  • Python 3.9+
  • Empirica framework (pip install empirica or from source)

Installation

# Install from source (development)
pip install -e .

# Or install directly
pip install empirica-crm

Note: Empirica CRM extends the Empirica framework. Ensure you have Empirica installed first:

pip install empirica>=1.0.0

Quick Start

1. Create a Client

empirica crm client-create \
  --name "Acme Corp" \
  --type prospect \
  --industry "Enterprise Software" \
  --description "Potential partner for API integration"

2. Add an Engagement

empirica crm engagement-create \
  --client-id <client-id> \
  --title "Partnership Discussion" \
  --type outreach

3. Log Interactions

empirica crm interaction-log \
  --client-id <client-id> \
  --type email \
  --summary "Initial outreach email sent"

4. Capture Knowledge

# Log what you learned
empirica crm memory-log-finding \
  --client-id <client-id> \
  --finding "They use Kubernetes for all deployments"

# Log what you need to learn
empirica crm memory-log-unknown \
  --client-id <client-id> \
  --unknown "What's their Q2 budget?"

5. Get Full Context

empirica crm client-bootstrap --client-id <client-id>

Returns everything an AI needs: client details, active engagements, memory (findings/unknowns), recent interactions, and suggested next actions.

CLI Commands

Command Description
client-create Create a new client
client-list List all clients
client-show Show client details
client-update Update client fields
client-bootstrap Get full AI context
engagement-create Start a new engagement
engagement-list List engagements
engagement-update Update engagement status
interaction-log Log an interaction
memory-log-finding Log a finding
memory-log-unknown Log an unknown
memory-search Search client memory
metrics-show Show client metrics

Python API

from empirica_crm import (
    create_client,
    get_client,
    list_clients,
    create_engagement,
    log_interaction,
)

# Create client
client = create_client(
    name="42.works",
    description="AI advertising platform",
    client_type="prospect",
    industry="AdTech",
    tags=["ai", "advertising"],
)

# Create engagement
engagement = create_engagement(
    client_id=client.client_id,
    title="Technical Partnership",
    engagement_type="outreach",
)

# Log interaction
log_interaction(
    client_id=client.client_id,
    interaction_type="email",
    summary="Sent partnership proposal",
)

Documentation

Architecture

empirica_crm/
├── __init__.py           # Package exports + plugin registration
├── schema.py             # CRM database tables
├── client_store.py       # Client CRUD operations
├── engagement_store.py   # Engagement management
├── interaction_store.py  # Interaction logging
├── client_memory.py      # Semantic memory (Qdrant-backed)
├── memory_backend.py     # Memory storage abstraction
├── epistemic_metrics.py  # Relationship health scoring
└── cli/
    ├── commands.py       # Command facade (re-exports handlers)
    └── handlers/         # Domain-specific command handlers

Database

CRM extends Empirica's sessions.db with these tables:

Table Purpose
clients Persistent client relationships
engagements Time-bounded client interactions
interactions Activity log (emails, calls, meetings)
client_memory SQLite fallback for memory items

Memory is also stored in Qdrant for semantic search when available.

Dependencies

  • empirica>=1.0.0 - Core Empirica framework (required)
  • qdrant-client - For semantic memory search (optional)

License

Business Source License 1.1

  • Free for: Internal use, non-production use, self-hosted deployments
  • Restricted: Offering as a competing managed/cloud service
  • Converts to: Apache 2.0 on January 1, 2029

Metadata

Release files for empirica-crm 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for empirica-crm 0.1.0
File Size Uploaded
empirica_crm-0.1.0.tar.gz 42.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for empirica-crm 0.1.0
File Interpreter ABI Platform
empirica_crm-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 96.3 kB

Release files / empirica_crm-0.1.0.tar.gz

Download URL empirica_crm-0.1.0.tar.gz
Size 42.5 kB
Tags Source
SHA-256 checksum
How to use checksums
56fc29da66c71637135b2e539050589e9f32a595733bb8dfb8f607bafdedfcdf
BLAKE2b-256 checksum
How to use checksums
128623774199334fdd60bfe155ec3e59b55b260f0fe7ba293d5513fe6db17a3e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release files / empirica_crm-0.1.0-py3-none-any.whl

Download URL empirica_crm-0.1.0-py3-none-any.whl
Size 53.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c88af148029b9dafeed55b22e3883f071a0b86a4af188bed9b549d3bf0c990cc
BLAKE2b-256 checksum
How to use checksums
3a5fa8b8076f78518c5c32d57b4c63499d08db83de7870e970d024425dfac49a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page