Momentum

Live

API KEY

REVENUE SIGNALS

CRM & Sales

Momentum gives your agent authenticated access to meeting recordings and the revenue signals extracted from them, scoped to the user who asked.

  • Per-user credentials: each call uses the actual user's token, never a shared bot.
  • Encrypted per-tenant vault: AES-256, resolved at request time, never in LLM context.
  • Scoped before every call: pre-call scope check, 90-day SIEM-exportable audit chain.
Momentum
agent · Acme Q3
Run
What signals fired on the Globex calls this week?
S
momentum_list_signal_executions
88ms
Revenue signals agent
3 signals fired across 2 Globex calls. Competitor mentioned twice, budget confirmed once, no next step set.
Sources: 2 meetings, Aug 11 to Aug 15
momentum
3 signals
18:29
Message Claude...

Tools your agent reaches for on Momentum, scoped per user.

CALL ANY TOOL
List meetings, read the revenue signals extracted from them, and ingest new recordings with the signed-in user's own Momentum access.
momentum_ingest_meeting
Ingest meeting
Ingest a meeting (and optional transcript) from any source into Momentum. Requires the meeting title, start_time, end_time, host_name, host_email, and process_imported_meeting. Optionally include attendees, a transcript (as ordered segments), Salesforce record IDs, and source URLs. The request body must not exceed 5 MB. Note: this endpoint targets Momentum's ingestion receiver host.
Parameters
Name
Type
Required
Description
end_time
string
Required
End time of the meeting in ISO 8601 format. Example: 2025-01-15T10:30:00Z.
host_email
string
Required
Email address of the meeting host.
host_name
string
Required
Name of the meeting host.
process_imported_meeting
boolean
Required
Whether Momentum should process the imported meeting (e.g. run summaries and AI signals) after ingestion.
start_time
string
Required
Start time of the meeting in ISO 8601 format. Example: 2025-01-15T10:00:00Z.
title
string
Required
Title of the meeting.
attendees
array
Optional
List of meeting attendees. Each attendee may include email, name, and is_internal (whether the attendee belongs to your organization).
call_url
string
Optional
URL to join the meeting.
external_id
string
Optional
Optional external meeting ID from the source system.
recording_url
string
Optional
URL to the meeting recording.
salesforce_account_id
string
Optional
Salesforce Account ID to associate with the meeting.
salesforce_opportunity_id
string
Optional
Salesforce Opportunity ID to associate with the meeting.
transcript_segments
array
Optional
Optional ordered transcript for the meeting. Each segment requires text and timestamp_seconds (offset in seconds from the meeting start) and may include speaker_name.
momentum_list_meetings
List meetings
momentum_list_signal_definitions
List signal definitions
momentum_list_signal_executions
List signal executions
momentum_list_signal_prompts
List signal prompts
momentum_list_signal_v2_executions
List signal v2 executions
momentum_list_users
List users
momentum_remap_meeting
Remap meeting
Build your Agent
Same auth pattern across LangChain, OpenAI, Anthropic, and Google ADK.
Python · LlamaIndex
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);

// Momentum tools scoped to this user
const { tools } = await sk.tools.listScopedTools("user_123", {
  filter: { connectionNames: ["momentum"], toolNames: [
    "momentum_ingest_meeting",
    "momentum_list_meetings",
    "momentum_list_signal_definitions"] },
  pageSize: 100,
});

const agent = createReactAgent({ llm, tools });
await agent.invoke({ messages: [{ role: "user", content: "Is the Salesforce sync healthy?" }] });
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: ["momentum"] }, pageSize: 100,
});

const res = await openai.chat.completions.create({
  model: "gpt-5",
  messages: [{ role: "user", content: "Which data sources are connected?" }],
  tools,
});

// Execute the tool call with the user's vaulted Momentum credential
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: ["momentum"] }, pageSize: 100,
});

const msg = await anthropic.messages.create({
  model: "claude-sonnet-5",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Pull open Zendesk tickets created this week." }],
  tools,
});

// Tool call runs with the user's vaulted Momentum credential
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: ["momentum"] }, pageSize: 100,
});

const agent = new Agent({
  name: "momentum_agent",
  model: "gemini-2.5-pro",
  instruction: "Work with Momentum for the signed-in user.",
  tools,
});

await agent.run("What auth does the Shopify connector need?");
Try these prompts
Paste any prompt into your agent to get started.
Signal review
Copy the prompt
Copied
What signals fired on my calls this week?
Copy the prompt
Copied
Show me every call where a competitor was mentioned.
Copy the prompt
Copied
List the signal definitions configured for our team.
Meeting recall
Copy the prompt
Copied
List my meetings from the last seven days.
Copy the prompt
Copied
Which meetings have no next step recorded?
Copy the prompt
Copied
Remap this meeting to the right opportunity.
Team coverage
Copy the prompt
Copied
List the users on our Momentum workspace.
Copy the prompt
Copied
Which reps had the most signals fire last month?
Copy the prompt
Copied
Show me the signal prompts behind the budget signal.
SEE HOW AUTH WORKS
Your users connect Momentum once. Their credentials stay vaulted, every call is scope checked, and every action is logged.
1
Authorize
Your user connects
Momentum
once. We tie it to their identity and the meetings they approved — no shared bot account, no org-wide access
Who:
user ‘A’
when:
Once per user
access:
Limited to user
2
Store
Their
Momentum
token lives in a vault scoped to them. User A's meetings are never reachable by an agent acting for user B, even on the same connection
vault:
encrypted
scope:
per-user
tokens:
auto-refreshed
3
Resolve
When your agent calls a
Momentum
tool, we fetch the right token server-side. It never touches your agent, never appears in the LLM context, never shows up in your logs
speed:
~40ms
check:
before every call
seen by:
nobody
4
Audit
Every
Momentum
tool call is logged — who triggered it, which meeting was fetched, what came back. 90 days of history, tied to the user who authorized it
history:
90 days
export:
SIEM-ready
logged:
every call
Test other agents
See the same per-user auth pattern across other connectors.
GTM and RevOps Teams
Deal intelligence agent
Pulls recent Gong calls, scores deal risk with an LLM, cross-references the record in Attio, and DMs each owner their at-risk deals in Slack. Every read is scoped to that rep's own access.
GTM and RevOps Teams
Revenue forecast commentary
Pulls open pipeline from Salesforce and HubSpot, calculates coverage against quota, flags at-risk stages, posts commentary to Slack, and logs every snapshot to Google Sheets.
GTM and RevOps Teams
Sales call prep agent
Reads tomorrow's calls from Google Calendar, mines past Granola notes and Attio history for context, and delivers each rep a prep brief in Slack, scoped to the calls that rep actually owns.
Support and Ops Teams
Meeting prep
Pulls agenda, participant context, and open action items before every meeting.
Test other agents
See the same per-user auth pattern across other connectors.
SALES
Deal intelligence agent
Score Gong call risk with an LLM, cross-reference the Attio record, and DM each owner their at-risk deals in Slack.
GTM
Revenue forecast agent
Score pipeline coverage against quota across Salesforce and HubSpot, post forecast commentary to Slack, log snapshots to Sheets.
SALES
Sales call prep agent
Read tomorrow's calls from Google Calendar, mine Granola notes and Attio history, and deliver each rep a prep brief in Slack.
OPS
Meeting prep agent
Assemble the agenda, HubSpot attendee history, and open action items from Gmail before every meeting on the calendar.
Why Scalekit
Secure your agent's access. Connectors ship in minutes
01.
Shared tokens break per-user analytics
A shared Momentum token looks fine in a demo. In production every action looks like one service account, and you cannot tell who wired a source or ran a query. Scalekit resolves the credential of the actual user who triggered the agent, never a shared bot.
// shared token
audit → bot_service_account

// scalekit
audit → user_abc ✓
02.
Authentication is not authorization
03.
Multi-tenancy is architectural
04.
Momentum today. Ten connectors tomorrow.
“Our agents act across Salesforce, Gong, Google Drive, and more, on behalf of every customer. Scalekit behind the scenes meant we can keep adding tools without ever rebuilding how credentials or tool calling work.”
Venu Madhav Kattagoni
Head of Engineering / Von
FAQs
Frequently Asked Questions
Can the agent read calls the user was not on?
Only if Momentum already grants that user access. Scalekit resolves their credential rather than a shared workspace key, so agent reach matches human reach.
Is meeting content sent to the model?
Only what your agent asks for. The credential itself is never placed in LLM context; it is resolved at request time behind the tool call.
How many tools does this connector expose?
8, covering meetings, signal definitions, signal executions, prompts, and users.
Can I block the ingest tool?
Yes. Scope the connection to the list and get tools and ingest stays unavailable, enforced before the API call.
How are keys isolated across customers?
Per tenant in an encrypted vault. Cross-tenant resolution is denied at the vault layer, not by convention.
Start in your coding agent
Up and running in one command
Install the Scalekit skill in your editor of choice. Connector, auth, tools, prompt, all wired up
Claude Code REPL
/plugin marketplace add scalekit-inc/claude-code-authstack
/plugin install agentkit@scalekit-auth-stack
Cursor Code REPL
# ~/.cursor/mcp.json
{
""mcpServers"": {
""momentum"": {
""url"": ""https://mcp.scalekit.com/momentum"",
""headers"": { ""Authorization"": ""Bearer $SCALEKIT_TOKEN"" }
}
}
}
Codex Code REPL
# ~/.codex/config.toml
[mcp_servers.momentum]
url = ""https://mcp.scalekit.com/momentum""
auth_env = ""SCALEKIT_TOKEN""
Copilot Code REPL
# .vscode/mcp.json
{
""servers"": {
""momentum"": {
""url"": ""https://mcp.scalekit.com/momentum"",
""type"": ""http""
}
}
}