OAUTH 2.0
BUSINESS CALLING
Aircall gives your agent business calling data and actions: search calls and read AI summaries and transcripts, manage shared contacts and tags, run Outbound Campaigns and Power Dialer lists, and send SMS and WhatsApp messages.
For more tools, view docs.
import { ScalekitClient } from "@scalekit-sdk/node";
import { createReactAgent } from "@langchain/langgraph/prebuilt";
const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);
// Aircall tools scoped to this user
const { tools } = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["aircall"], toolNames: [
"aircall_calls_search",
"aircall_call_summary_get",
"aircall_call_comment_create"] },
pageSize: 100,
});
const agent = createReactAgent({ llm, tools });
await agent.invoke({ messages: [{ role: "user", content: "Summarize my last call with Contoso and add a comment" }] });import OpenAI from "openai";
import { ScalekitClient } from "@scalekit-sdk/node";
const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);
const openai = new OpenAI();
const { tools } = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["aircall"] }, pageSize: 100,
});
const res = await openai.chat.completions.create({
model: "gpt-5",
messages: [{ role: "user", content: "Summarize my last call with Contoso and add a comment" }],
tools,
});
// Execute the tool call with the user's vaulted Aircall OAuth token
await sk.tools.executeTool(res.choices[0].message.tool_calls[0], "user_123");import Anthropic from "@anthropic-ai/sdk";
import { ScalekitClient } from "@scalekit-sdk/node";
const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);
const anthropic = new Anthropic();
const { tools } = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["aircall"] }, pageSize: 100,
});
const msg = await anthropic.messages.create({
model: "claude-sonnet-5",
max_tokens: 1024,
messages: [{ role: "user", content: "Summarize my last call with Contoso and add a comment" }],
tools,
});
// Tool call runs with the user's vaulted Aircall OAuth token
await sk.tools.executeTool(msg.content, "user_123");import { Agent } from "@google/adk/agents";
import { ScalekitClient } from "@scalekit-sdk/node";
const sk = new ScalekitClient(env.SCALEKIT_ENV_URL, env.SCALEKIT_CLIENT_ID, env.SCALEKIT_CLIENT_SECRET);
const { tools } = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["aircall"] }, pageSize: 100,
});
const agent = new Agent({
name: "calling_agent",
model: "gemini-2.5-pro",
instruction: "Aircall tools scoped to this user",
tools,
});
await agent.run("Summarize my last call with Contoso and add a comment");// shared token
audit → bot_service_account
// scalekit
audit → user_abc ✓