Documentation

Bland

@mnemix-ai/bland-kit is a real, published integration kit: pre-call enrichment and post-call memory write-back for a Bland.ai pathway. It calls the same two frozen routes documented on Voice integration patterns — POST /v1/recall_and_enrich before the call, POST /v1/calls/end after — and nothing else. This is a Northsun-built, Northsun-maintained kit against Bland's documented webhook contract — not a native Bland feature or a certified Bland integration.

Prefer zero package dependencies? The custom-HTTP Bland guide maps the same two calls with plain fetch and no npm install at all.

Install

npm install @mnemix-ai/bland-kit @mnemix-ai/client

Verified in a clean directory: @mnemix-ai/bland-kit@0.3.0's peer dependency on @mnemix-ai/client@^0.2.1 resolves against the published @mnemix-ai/client@0.2.2, install exits 0, and both packages import clean.

@mnemix-ai/* is today's published scope. If your integration will outlive a possible future move to @northsun-ai/*, pin the version above rather than tracking latest.

Set your key

MNEMIX_KEY=sk_live_...
MNEMIX_BASE_URL=https://mcp.mnemix.ai   # optional; this is the default
BLAND_WEBHOOK_SECRET=...                # shared secret from Bland, recommended

MNEMIX_KEY is your Northsun API key — see Installation for how to get one. Set it as a platform secret (wrangler secret put MNEMIX_KEY on Cloudflare Workers, or your platform's equivalent), never as a plaintext environment value in a repo or client bundle.

MNEMIX_KEY is the kit's own Env binding name (matches its published source and README), a different name than the CLI's MNEMIX_API_KEY from Installation — same key value, two independent surfaces, name whichever variable you're setting for whichever tool reads it.

Wire the webhooks

The kit's Cloudflare Worker example exposes two routes:

import { Mnemix } from "@mnemix-ai/client";
import { handleBlandPostCall, handleBlandPreCall } from "@mnemix-ai/bland-kit";

const mnemix = new Mnemix({ apiKey: env.MNEMIX_KEY, baseUrl: env.MNEMIX_BASE_URL });
// route /bland/pre-call  -> handleBlandPreCall(...)
// route /bland/post-call -> handleBlandPostCall(...)

In your Bland pathway configuration, set:

pre-call webhook  = https://your-worker.example.com/bland/pre-call
post-call webhook = https://your-worker.example.com/bland/post-call

Bland calls the pre-call URL before connecting the agent and the post-call URL after the call ends; the key never leaves your server.

Use the context in your pathway

The pre-call response returns variables and a system_prompt fragment, not raw JSON, so your pathway template stays readable:

  • {{caller_name}}
  • {{is_returning}}
  • {{last_call_summary}}
  • {{suggested_intent}}

See What recall gives you back for what populates these and when a value is legitimately absent rather than wrong.

Verify it

Run a test call through the pathway. Your worker logs should show one pre-call recall, then one POST /v1/calls/end when Bland's post-call webhook fires. See Hangup, and what happens next for what happens immediately after that call.

Next steps