Voice agent integration · 6 minutes quickstart
Mnemix + Bland
Bland.ai builds production voice pathways. Mnemix slots in as the memory + identity layer behind those pathways: every inbound call resolves the caller through Twilio Lookup + Trestle + Baylio before the first audio packet, and every completed call writes back a structured summary that Bland can route on next time.
- What
- Mnemix is a memory + real-world enrichment API for AI voice agents.
- Who
- For developers building AI voice agents on Vapi, Retell, Bland, LiveKit, or Twilio.
- Price
- Hobby $0 (free tier · 50 sessions / 1,000 memory ops / 100 lookups). Starter, Pro, and Elite tiers — contact sales for pricing while billing is in private beta.
- How
- One API call per turn — lookup, remember, recall. Sub-300ms voice recall is a design target at the Cloudflare edge.
What Mnemix adds to a Bland pathway
- Caller-ID resolved before the first audio packet. Twilio Lookup + Trestle + Baylio fan out in parallel; the pre-call webhook returns an enriched caller object so your pathway's first response is already informed.
- Post-call structured write-back. Bland posts the call summary to /v1/calls/end; Mnemix stores it in bi-temporal session memory so the next call already has context.
- Bi-temporal session memory across calls. Four timestamps per fact (valid_from, valid_to, observed_at, ingested_at) means corrections mid-call don't wipe out earlier state — designed for sub-300ms voice recall.
Code sample
Planned SDK form — preview of @mnemix/client shipping with v1.0.
import { Mnemix } from "@mnemix/client";
const mx = new Mnemix({ apiKey: process.env.MNEMIX_KEY! });
// Bland webhook — fired before pathway starts
export async function POST(req: Request) {
const { phone_number } = await req.json();
const { caller, memories, enrichment } = await mx.recall_and_enrich({
phone_number,
tenant_id: "your-tenant-id",
});
return Response.json({
variables: {
caller_name: caller.name ?? "there",
last_intent: memories[0]?.summary ?? null,
is_returning: caller.last_seen ? true : false,
carrier: enrichment.twilio?.carrier ?? null,
},
});
}Works today — call the REST API directly:
// Until @mnemix/client publishes, call the REST API directly:
export async function POST(req: Request) {
const { phone_number } = await req.json();
const r = await fetch(
"https://mnemix-api.sayeed965.workers.dev/v1/recall_and_enrich",
{
method: "POST",
headers: {
"content-type": "application/json",
authorization: `Bearer ${process.env.MNEMIX_KEY}`,
},
body: JSON.stringify({ phone_number, tenant_id: "your-tenant-id" }),
}
);
const { caller, memories, enrichment } = await r.json();
return Response.json({
variables: {
caller_name: caller.name ?? "there",
last_intent: memories[0]?.summary ?? null,
is_returning: !!caller.last_seen,
carrier: enrichment.twilio?.carrier ?? null,
},
});
}FAQ
- How long does the Bland integration take?
- About 6 minutes. Drop the Mnemix middleware into your Bland pathway's pre-call webhook, then add the post-call write-back to /v1/calls/end. No SDK install required if you call the REST API directly.
- Does it work with both inbound and outbound Bland calls?
- Yes. The pre-call webhook fires for both directions. For outbound calls Bland already has the phone number; Mnemix returns the enriched caller object the same way.
- What if Twilio Lookup misses?
- Mnemix gracefully degrades. If Twilio Lookup returns no carrier metadata, the caller object still contains whatever Trestle and Baylio resolved, plus any prior memory. Your Bland pathway gets a partial enrichment envelope rather than failing.
- Can I bring my own enrichment vendors?
- Trestle, Twilio Lookup, and Baylio are the bundled providers in Wave 1. Bring-your-own enrichment vendors land at Pro+ tier — contact hello@mnemix.ai if you need a specific vendor today.
- What happens to memory if Mnemix is down?
- Your Bland pathway continues running. The pre-call webhook returns whatever defaults you set (e.g. caller_name: 'there'); the post-call write-back retries on its own queue. Mnemix is non-blocking by design — voice agents can't wait.
Last updated: .