AbsoluteJS

CRM

@absolutejs/crmv0.0.10-alpha.10alphaCommerce & Growth

Multi-vendor CRM adapter framework with one type-safe contract across HubSpot, Salesforce, Pipedrive, and more.

A unified CRM contract (CRMAdapter) plus vendor adapters for the major CRMs, so the rest of your app only ever sees generic CRMContact, CRMLead, and CRMDeal types. OAuth2 flows ride on @absolutejs/auth and citra, token and sync-queue storage are bring-your-own interfaces with in-memory, Redis, SQLite, and Postgres implementations shipped, and a voice bridge connects @absolutejs/voice agents for lead capture and disposition logging.

#Installation

BASH
bun add @absolutejs/crm

#Capabilities

Overview

Multi-vendor CRM adapter framework for the AbsoluteJS stack.

Status: alpha. Pin an exact version while the API approaches 1.0.

What it is

A unified CRM contract (CRMAdapter) plus vendor adapters for the major CRMs, designed to be:

Type-safe end-to-end — generic CRMContact / CRMLead / CRMDeal types are what the rest of your framework sees; vendor-specific shapes are confined to one adapter.

Auth-integrated — OAuth2 flows ride on @absolutejs/auth + citra. No bespoke per-vendor login code in your app.

Show 3 more

Bring-your-own-store — CRMTokenStore and CRMSyncQueue are interfaces with shipped implementations for in-memory, Redis, SQLite, and Neon/Postgres.

Bidirectional-ready — outbound mutations + inbound webhook intake are plumbed through the same queue from day one. v1 ships push-at-call-end + on-demand pull; v2 activates full sync via config.

Voice-aware — drop-in bridge to @absolutejs/voice agents via VoiceCRMContract. Lead-capture and disposition-logging pathway templates included.

Vendor coverage

Vendor — Status — Auth — Adapter — Webhooks

Salesforce — shipped — citra — shipped — shipped

HubSpot — shipped — citra — shipped — shipped

Show 6 more

Pipedrive — shipped — citra — shipped — shipped

Zoho CRM — shipped — citra — shipped — shipped

Attio — shipped — citra — shipped — shipped

Close — shipped — citra — shipped — shipped

monday CRM — shipped — citra — shipped — shipped

GoHighLevel — shipped — citra — shipped — shipped

Quick start

The package exports all eight adapter factories from its root, plus OAuth handlers, signed webhook receivers, in-memory and durable stores, reconciliation workers, and the voice CRM bridge.

Design

Vendor SDK strategy is per-vendor: Salesforce uses jsforce, HubSpot uses @hubspot/api-client, monday.com uses @mondaydotcomorg/api for the typed value. Pipedrive / Zoho / Attio / Close / GoHighLevel use raw fetch + handwritten types. All SDKs are in optionalDependencies and lazy-loaded inside the adapter file.

Adapter outputs flow through generic types only. Vendor types never leak past src/adapters/.ts.

CRMTokenStore is the source of truth for OAuth tokens, refresh tokens, instance URLs, and region/sub-account context. The runtime asks the store for a token, hands it to the adapter, and re-asks on 401 after a refresh.

Unified CRM contract

Generic CRMContact, CRMLead, and CRMDeal types are what your framework sees; vendor-specific shapes are confined to a single adapter file per vendor.

Vendor adapter factories

Adapter factories ship for HubSpot, Salesforce, Pipedrive, Zoho, Attio, Close, monday, and GoHighLevel, all exported from the package root.

Auth-integrated tokens

OAuth2 flows ride on @absolutejs/auth and citra; CRMTokenStore is the source of truth for tokens, refresh tokens, instance URLs, and region context, with automatic re-ask on 401.

Bring-your-own store

CRMTokenStore, CRMLocalEntityStore, and CRMSyncQueue are interfaces with shipped in-memory, Redis, SQLite, and Neon/Postgres implementations.

Bidirectional sync plumbing

Outbound mutations and inbound webhook intake flow through the same sync queue, with a reconciler and pluggable conflict resolvers (last-write-wins, remote-wins).

Voice CRM bridge

createVoiceCRMBridge and createVoiceLeadCapturePathway connect @absolutejs/voice agents to the CRM runtime for lead capture and disposition logging.

Outcomes

What you can build

Overview

Multi-vendor CRM adapter framework for the AbsoluteJS stack.

What it is

A unified CRM contract (CRMAdapter) plus vendor adapters for the major CRMs, designed to be:

Vendor coverage

Vendor — Status — Auth — Adapter — Webhooks

Hardening checklist

Production guidance

Quick startThe package exports all eight adapter factories from its root, plus OAuth handlers, signed webhook receivers, in-memory and durable stores, reconciliation workers, and the voice CRM bridge.

Follow in order

Troubleshooting path

1
Trace from the first failed boundary
Reproduce the smallest canonical @absolutejs/crm example, confirm the supported entry point and version in the API explorer, then inspect the first boundary that did not produce its documented result.

#Quick start

Partial snippet

Working example for Quick start.

TS
import {
  createInMemoryCRMSyncQueue,
  createInMemoryCRMTokenStore,
} from "@absolutejs/crm";

const tokenStore = createInMemoryCRMTokenStore();
const syncQueue = createInMemoryCRMSyncQueue();

#Quick Start

Partial snippet

Wire a runtime from a token store, a sync queue, and the vendor adapter factories you need — swap the in-memory stores for the Redis, SQLite, or Postgres implementations in production.

TS
import {
	createCRMRuntime,
	createHubSpotCRMAdapter,
	createInMemoryCRMSyncQueue,
	createInMemoryCRMTokenStore
} from '@absolutejs/crm';

const runtime = createCRMRuntime({
	adapters: { hubspot: createHubSpotCRMAdapter },
	syncQueue: createInMemoryCRMSyncQueue(),
	tokenStore: createInMemoryCRMTokenStore()
});

// The runtime resolves the user's token from the store, hands it to the
// vendor adapter, and re-asks the store on 401 after a refresh.
Alpha status
The API surface is in flux. The project is targeting 0.1.0 once all vendor adapters and bidirectional sync ship; v1 ships push-at-call-end plus on-demand pull, and v2 activates full sync via config.

#API reference

Search the declarations exported by the current package type files. Expand a symbol to inspect its source-backed signature.

80 symbols
CRMAccountexportPermalink
TS
CRMAccount
Exported from @absolutejs/crm

Current package surface

What ships today

@absolutejs/crmv0.0.10-alpha.10 · alphaCommerce & GrowthnpmSource
3entry points82symbols

Import surface · click to copy