AbsoluteJS

@absolutejs/engagement

@absolutejs/engagementv0.0.8betaCommerce & Growth

The EngagementSource contract + normalized types for @absolutejs/engagement sales-engagement adapters — enrichment (person/company) and outreach activity (email/LinkedIn/call touchpoints).

#Installation

BASH
bun add @absolutejs/engagement

#Capabilities

Overview

Provider-neutral contracts for sales enrichment and outreach activity in AbsoluteJS. Applications depend on one EngagementSource; provider packages such as @absolutejs/engagement-apollo implement that contract.

The package manifest exposes a required engagement/source slot. The hosted AbsoluteJS.ai platform uses that slot to present compatible providers as configuration choices while keeping credentials in the environment and provider response shapes behind the shared contract.

Providers

@absolutejs/engagement-apollo

— Apollo person and company enrichment, role-based people search, and outreach activity.

Outcomes

What you can build

Build on the supported package contract

Use @absolutejs/engagement through its supported public entry points.

Hardening checklist

Production guidance

Make every external boundary explicitPin the deployed @absolutejs/engagement version, replace example or memory-backed dependencies with durable implementations, bound external calls, protect credentials, and emit enough evidence to retry or recover safely.

Follow in order

Troubleshooting path

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

#@absolutejs/engagement quick start

Partial snippet

# @absolutejs/engagement

TS
import type { EngagementSource } from "@absolutejs/engagement";

export const enrichLead = async (engagement: EngagementSource, email: string) =>
  engagement.enrichPerson?.({ email });

#Public entry points

Supported entry points declared by this package manifest.

Package entry point declared in package.json.

@absolutejs/engagement@absolutejs/engagement/manifest@absolutejs/engagement/manifest.json

#Package commands

Scripts declared by this package manifest.

bun run buildrm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --target=bun --external @absolutejs/manifest --external @sinclair/typebox && tsc --emitDeclarationOnly --project tsconfig.json && absolute-manifest emit
bun run check:packagebun run format && bun run typecheck && bun run test && bun run verify-package && bun run build && bun run verify-package --artifacts
bun run formatprettier --write "./**/*.{ts,json,md}"
bun run testbun test
bun run typechecktsc --noEmit

#API reference

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

12 symbols
RateLimitErrorclassPermalinkSource

Thrown by an adapter when the provider reports a rate limit (e.g. HTTP 429), so a consumer can DEFER (retry when the window resets) instead of mistaking it for "no results found". Other failures still resolve to null/[] — only an explicit rate limit throws, because only it is meaningfully retryable-later.

TS
class RateLimitError extends Error {
    readonly provider: string;
    constructor(provider: string);
}
Exported from @absolutejs/engagement