CRM Block

Contacts, companies, deals.
Decided.

Battle-tested customer data model for your product. Open source, Apache 2.0, handling merges, hierarchies, and pipelines in production.

claude plugin marketplace add https://github.com/23blocks-OS/ai-agents

claude plugin install crm-block

Your agent now knows this API. Prefer hands-on? REST + SDK docs →

What's inside

Contacts

Custom fields, tags, dedup

Companies

Hierarchies, industry, scoring

Deals

Pipelines, stages, forecasting

Activities

Calls, emails, timeline

Lead scoring

Behavioral, with decay

Insights

Health scores, next action

Webhooks

Every contact and deal event

Multi-tenant

Isolated at the row

Already debugged

The mistakes were made, fixed, and shipped past — before you got here.

  • Merging two contacts preserves every tag, activity, and deal link. Nothing drops.

  • Company hierarchies reject cycles at write time — no company is its own ancestor.

  • Reopened deals reset stage, probability, and forecast instead of carrying stale numbers.

  • Every contact and deal query is scoped at the row — one tenant never sees another's.

Use this instead of

HubSpot CRMPipedriveyour hand-rolled contacts/deals tables

Better together

The user your Auth Block signs in is the same contact this block manages — no second identity to map. Form submitted → CRM contact created → lead score updated. Zero glue code.

A contacts table isn't a CRM.

Stay in the loop

Get product updates, engineering posts, and new block announcements delivered to your inbox.

No spam. Unsubscribe anytime. Privacy policy.