Spellar remembers meetings. AgentCall lets your own AI agent remember every phone call. Every transcript, summary, and call outcome is pushed to your agent platform after each call ends.
Your AI agent handled a customer call this morning. By tomorrow, it has no idea that conversation happened. Same caller dials back, gets routed to the same agent, asks the same question, and your AI starts from zero. Every time.
Meeting tools solved this for Zoom and Google Meet. Spellar, Granola, Fireflies, Otter: all capture meeting context and feed it back to humans for review. Phone calls have been stuck in the past, treated as ephemeral, deleted by the carrier the moment they finish.
AgentCall changes the loop. Every call your AI handles becomes structured memory delivered to your agent platform. Your agent reads it back into context for the next call, looks up callers it has spoken to before, and stops asking the same questions twice.
Three pieces, all live today. No multi-week integration.
Your AI receptionist answers with the system prompt you wrote, or AgentCall hands the call to your own agent platform via the pre-call context webhook.
Every word both sides say is captured with timestamps. When the call ends, an LLM writes a plain-English summary of what was said, what the caller wanted, and what was decided.
The transcript, summary, recording URL, and call metadata POST to your endpoint as signed JSON. Your agent platform stores it and has it ready before the next call.
Drop this into any Node, Bun, or Cloudflare Worker endpoint. Verify the HMAC signature, store the transcript, hand it to your agent.
import { createHmac, timingSafeEqual } from "crypto";
app.post("/webhooks/agentcall", async (req, res) => {
const signature = req.headers["x-agentcall-signature"];
const expected = createHmac("sha256", process.env.AGENTCALL_WEBHOOK_SECRET)
.update(JSON.stringify(req.body))
.digest("hex");
if (!timingSafeEqual(Buffer.from(signature), Buffer.from(expected))) {
return res.status(401).send("Invalid signature");
}
if (req.body.event === "call.transcript") {
const { callId, from, transcript, summary, completedAt } = req.body.data;
// Persist for cross-call memory. Your agent reads from here next time.
await db.callMemory.upsert({
where: { callId },
create: { callId, callerNumber: from, transcript, summary, completedAt },
update: { transcript, summary }, // dedup on retries
});
}
res.status(200).send("ok");
});Full payload shape and event types at /docs/post-call-webhook.
Different surfaces, different consumers. Spellar is read by humans after a meeting. AgentCall is read by your agent before the next call.
| Spellar | AgentCall | |
|---|---|---|
| Surface | Zoom, Google Meet, Teams meetings | Inbound and outbound phone calls |
| Consumer | Humans reviewing meeting notes | Your AI agent reading prior context |
| Delivery | Post-meeting summary in their app | HMAC-signed JSON webhook to your platform |
| Cross-session memory | ||
| Acts on the data | ||
| AI agent can dial out using the memory | ||
| Free tier | Limited meetings | Webhook included, 1 number, 5 min AI voice/mo |
For the full comparison and architecture breakdown, read AgentCall vs Spellar: Cross-Call Memory for AI Phone Agents.
Every example below has at least one AgentCall customer running it in production today.
Your customer calls Tuesday about a quote. They call again Friday. Your AI greets them by context: 'Hi, are you calling back about the quote we discussed Tuesday?' Built on top of the post-call webhook plus the pre-call context webhook.
Each call transcript and summary feeds your CRM. Your AI agent reads the prior conversation history before dialing the next prospect, references what was already discussed, and never restarts the qualification process.
Customer calls Monday and gets routed to your AI for triage. Calls back Tuesday. Your agent already knows the issue, the troubleshooting steps tried, and what to try next.
Your AI agent makes follow-up calls based on outcomes from the previous round. Anyone who said 'call me Tuesday' gets a Tuesday call referencing the previous conversation.
Free tier includes the post-call transcript webhook, one US local number, and 5 minutes of inbound AI voice per month. No card required to start.
Or read the docs: Post-call Transcript Webhook · Hermes integration · MCP Server
Cross-call memory means your AI agent remembers every previous phone conversation. AgentCall delivers a full transcript, AI-generated summary, and call metadata to your webhook after every call. Your agent platform stores it, so the next time the same caller (or your agent) needs context, it is already there.
Spellar records and summarizes meetings on Zoom and Google Meet for human consumption. AgentCall does it for phone calls handled by your AI agent. The data is delivered as structured JSON to your webhook so your agent can act on it, not just review it.
Both work. AgentCall can run an AI receptionist with the system prompt you write, or you can route calls to your own agent platform via the pre-call context webhook plus the post-call transcript webhook. Either way you receive the same structured memory after the call ends.
POST to your URL with: callId, direction, from, to, duration, recordingUrl (if recording is enabled), transcript (array of role and text entries with timestamps), summary (LLM-generated plain English), and completedAt. Signed with HMAC-SHA256 so you can verify it came from AgentCall.
The post-call transcript webhook is included free on every AgentCall plan. AI voice calls (where AgentCall handles the conversation autonomously) are $0.40 per minute on the Pro plan at $19.99 per month. Inbound calls forwarded to your own agent platform are at carrier voice rates.