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). Starter, Pro, and Elite tiers — contact sales for pricing while billing is in private beta.
- How
- For cold voice callers, call POST /v1/recall_and_enrich before the first turn; it creates the contact on miss and starts Trestle, Twilio, and Baylio enrichment. Use POST /v1/context for known callers, chat, and workflow context. 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 transcript to /v1/observe; 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
SDK form with @mnemix-ai/client.
import { Mnemix } from "@mnemix-ai/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 packet = await mx.recallAndEnrich({
phone_number,
trigger: "ringing",
});
return Response.json({
variables: {
caller_name: packet.caller.name ?? "there",
caller_context: packet.memory.summary,
recent_calls: packet.memory.recent_calls,
enrichment: packet.enrichment,
},
});
}Works today — call the REST API directly:
// REST form — same pre-call enrichment + memory packet:
export async function POST(req: Request) {
const { phone_number } = await req.json();
const r = await fetch(
"https://mcp.mnemix.ai/v1/recall_and_enrich",
{
method: "POST",
headers: {
"content-type": "application/json",
authorization: `Bearer ${process.env.MNEMIX_KEY}`,
},
body: JSON.stringify({
phone_number,
trigger: "ringing",
}),
}
);
const packet = await r.json();
return Response.json({
variables: {
caller_name: packet.caller.name ?? "there",
caller_context: packet.memory.summary,
recent_calls: packet.memory.recent_calls,
enrichment: packet.enrichment,
},
});
}FAQ
- How long does the Bland integration take?
- About 6 minutes. Drop the Mnemix middleware into your Bland pathway's pre-call webhook with POST /v1/recall_and_enrich. Then add post-call memory write-back with POST /v1/observe. 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: .