VercelLogotypeVercelLogotype
LoginSign Up
Back to Templates

Sales Call Summary AI Agent

Build an AI agent to analyze sales call data using Vercel Sandbox and AI SDK. Features secure code execution and durable workflows.

DeployView Demo
Final

Sales Call Summary Agent

An AI-powered agent that automatically summarizes sales calls using Vercel's Sandbox architecture. The agent analyzes call transcripts and generates structured summaries with objections, action items, and insights.

Template Note: This template uses Gong as a starting example for call transcript integration. You can adapt it to work with other call recording platforms (Zoom, Google Meet, etc.) by modifying the webhook handler and transcript fetching logic.

Extensible: This template can be extended to integrate with Salesforce (or another CRM of your choice), Slack (to post call summaries), and other services. The demo files in /demo-files/context/ demonstrate how CRM data and other context can be provided to the agent.

Features

  • Structured Summaries - AI-generated summaries with tasks, objections, and key insights
  • Sandbox Agent - Uses Vercel Sandbox for secure code execution and file exploration
  • bash-tool - Generic bash tool for AI agents, compatible with AI SDK
  • Demo Mode - Works out of the box with mock data (no Gong credentials needed)
  • Objection Tracking - Identifies and scores how well objections were handled
  • Durable Workflows - Built with Vercel Workflow DevKit for reliability

One-Click Deploy (Demo Mode)

You can deploy to Vercel and try it immediately with demo data with one click:

Demo mode is enabled by default - no Gong credentials required to test!

Local Development (Demo Mode)

1. Clone and Install

git clone https://github.com/vercel-labs/call-summary-agent
cd call-summary-agent
pnpm install

2. Link to Vercel (creates .env.local automatically)

vercel link
vercel env pull

3. Run

pnpm dev

4. Test

# Trigger the agent with demo data
curl -X POST http://localhost:3000/api/gong-webhook \
-H "Content-Type: application/json" \
-d '{}'

Production Setup (Real Gong Data)

To use real Gong API data instead of demo data:

1. Set Environment Variables

Add these to your Vercel project settings or .env.local:

VariableRequiredDescription
GONG_ACCESS_KEYYesYour Gong API access key
GONG_SECRET_KEYYesYour Gong API secret key
GONG_ACCESS_KEY=your_gong_access_key
GONG_SECRET_KEY=your_gong_secret_key

Note: Demo mode is automatically enabled when Gong credentials are missing.

2. Configure Gong Webhook

  1. Go to your Gong settings > Integrations > Webhooks
  2. Create a new webhook with:
    • URL: https://your-app.vercel.app/api/gong-webhook
    • Events: Select "Call completed"
  3. Save and test the webhook

Architecture

Environment Variables

VariableRequiredDefaultDescription
GONG_ACCESS_KEYNo-Gong API access key (demo mode if missing)
GONG_SECRET_KEYNo-Gong API secret key (demo mode if missing)
COMPANY_NAMENo"Your Company"Company name in prompts

Demo Mode Details

Demo mode uses realistic mock data including a sample 20-minute product demo call. The demo files are organized in the /demo-files folder:

demo-files/
├── webhook-data.json # Mock Gong webhook payload
├── transcript.json # 20-minute call transcript
└── context/
├── gong-calls/previous/ # Historical calls
│ ├── demo-call-000-discovery-call.md
│ └── demo-call-intro-initial-call.md
├── research/ # Background info
│ ├── company-research.md
│ └── competitive-intel.md
└── playbooks/
└── sales-playbook.md

These files are loaded into the sandbox for the agent to explore.

Configuration

Custom System Prompt

Override the default system prompt:

AGENT_SYSTEM_PROMPT="You are a sales call analyst..."

How It Works

  1. Webhook Received: Gong sends call data when a call completes (or mock data in demo mode)
  2. Workflow Started: The durable workflow begins processing
  3. Transcript Fetched: Call transcript is retrieved from Gong API (or mock data)
  4. Sandbox Created: A secure sandbox is created with call files
  5. Agent Runs: The AI agent explores transcripts using bash-tool
  6. Summary Generated: Structured output with tasks, objections, insights

Workflow Steps

Each step uses the "use step" directive for:

  • Automatic retries on failure
  • State persistence
  • Observability in Vercel dashboard

Sandbox Tools

The agent uses bash-tool for exploring call transcripts via shell commands:

# List call files
ls gong-calls/
# Search for pricing discussions
grep -r "pricing" gong-calls/
# View call metadata
cat gong-calls/metadata.json
# Find objections
grep -i "concern\|issue\|problem" gong-calls/*.md

All bash commands are logged for observability:

[bash-tool] INFO: Bash command starting { command: 'grep -r "pricing" gong-calls/' }
[bash-tool] INFO: Bash command completed { command: '...', exitCode: 0, stdoutLength: 605 }

Output Schema

The agent generates structured output:

{
summary: string, // Comprehensive call summary
tasks: [{
taskDescription: string,
taskOwner: string,
ownerCompany: 'internal' | 'customer' | 'partner'
}],
objections: [{
description: string,
quote: string,
speaker: string,
speakerCompany: string,
handled: boolean,
handledAnswer: string,
handledScore: number, // 0-100
handledBy: string
}]
}

Customization

Custom Playbooks

Add playbook detection by configuring config.playbooks in lib/config.ts.

Development

# Install dependencies
pnpm install
# Run development server
pnpm dev
# Build for production
pnpm build

Project Structure

sales-call-summary-agent/
├── app/
│ ├── api/gong-webhook/ # Webhook endpoint
│ ├── layout.tsx
│ └── page.tsx # Status page
├── demo-files/ # Demo mode files
│ ├── webhook-data.json
│ ├── transcript.json
│ └── context/ # Additional context files
├── lib/
│ ├── agent.ts # ToolLoopAgent configuration
│ ├── config.ts # Centralized configuration
│ ├── gong-client.ts # Gong API helpers
│ ├── mock-data.ts # Demo mode loader
│ ├── sandbox-context.ts # File generation for sandbox
│ ├── tools.ts # Agent tools (bash-tool)
│ ├── types.ts # TypeScript types
│ └── logger.ts # Logging utility
└── workflows/
└── gong-summary/
├── index.ts # Main workflow
└── steps.ts # Workflow steps

API Reference

POST /api/gong-webhook

Receives Gong webhook payloads and triggers the summary workflow.

Request Body: Gong webhook payload or empty {} in demo mode.

Response:

{
"message": "Workflow triggered",
"callId": "1234567890"
}

Output

The function returns a string output which can be configured into an outputSchema of your choice.

Contributing

Contributions are welcome! Please open an issue or submit a pull request.

GitHub Repovercel-labs/call-summary-agent-with-sandbox
Use Cases
StarterAI
Stack
Next.js

Get Started

  • Templates
  • Supported frameworks
  • Marketplace
  • Domains

Build

  • Next.js on Vercel
  • Turborepo
  • v0

Scale

  • Content delivery network
  • Fluid compute
  • CI/CD
  • Observability
  • AI GatewayNew
  • Vercel AgentNew

Secure

  • Platform security
  • Web Application Firewall
  • Bot management
  • BotID
  • SandboxNew

Resources

  • Pricing
  • Customers
  • Enterprise
  • Articles
  • Startups
  • Solution partners

Learn

  • Docs
  • Blog
  • Changelog
  • Knowledge Base
  • Academy
  • Community

Frameworks

  • Next.js
  • Nuxt
  • Svelte
  • Nitro
  • Turbo

SDKs

  • AI SDK
  • Workflow SDKNew
  • Flags SDK
  • Chat SDK
  • Streamdown AINew

Use Cases

  • Composable commerce
  • Multi-tenant platforms
  • Web apps
  • Marketing sites
  • Platform engineers
  • Design engineers

Company

  • About
  • Careers
  • Help
  • Press
  • Legal
  • Privacy Policy

Community

  • Open source program
  • Events
  • Shipped on Vercel
  • GitHub
  • LinkedIn
  • X
  • YouTube

Loading status…

Select a display theme:
    • AI Cloud
      • v0

        Build applications with AI

      • AI SDK

        The AI Toolkit for TypeScript

      • AI Gateway

        One endpoint, all your models

      • Vercel Agent

        An agent that knows your stack

      • Sandbox

        AI workflows in live environments

    • Core Platform
      • CI/CD

        Helping teams ship 6× faster

      • Content Delivery

        Fast, scalable, and reliable

      • Fluid Compute

        Servers, in serverless form

      • Observability

        Trace every step

    • Security
      • Bot Management

        Scalable bot protection

      • BotID

        Invisible CAPTCHA

      • Platform Security

        DDoS Protection, Firewall

      • Web Application Firewall

        Granular, custom protection

    • Company
      • Customers

        Trusted by the best teams

      • Blog

        The latest posts and changes

      • Changelog

        See what shipped

      • Press

        Read the latest news

      • Events

        Join us at an event

    • Learn
      • Docs

        Vercel documentation

      • Academy

        Linear courses to level up

      • Knowledge Base

        Find help quickly

      • Community

        Join the conversation

    • Open Source
      • Next.js

        The native Next.js platform

      • Nuxt

        The progressive web framework

      • Svelte

        The web’s efficient UI framework

      • Turborepo

        Speed with Enterprise scale

    • Use Cases
      • AI Apps

        Deploy at the speed of AI

      • Composable Commerce

        Power storefronts that convert

      • Marketing Sites

        Launch campaigns fast

      • Multi-tenant Platforms

        Scale apps with one codebase

      • Web Apps

        Ship features, not infrastructure

    • Tools
      • Marketplace

        Extend and automate workflows

      • Templates

        Jumpstart app development

      • Partner Finder

        Get help from solution partners

    • Users
      • Platform Engineers

        Automate away repetition

      • Design Engineers

        Deploy for every idea

  • Enterprise
  • Pricing
Log InContact
Sign Up
Sign Up
Back to Templates
DeployView Demo
v0

Build applications with AI

AI SDK

The AI Toolkit for TypeScript

AI Gateway

One endpoint, all your models

Vercel Agent

An agent that knows your stack

Sandbox

AI workflows in live environments

CI/CD

Helping teams ship 6× faster

Content Delivery

Fast, scalable, and reliable

Fluid Compute

Servers, in serverless form

Observability

Trace every step

Bot Management

Scalable bot protection

BotID

Invisible CAPTCHA

Platform Security

DDoS Protection, Firewall

Web Application Firewall

Granular, custom protection

Customers

Trusted by the best teams

Blog

The latest posts and changes

Changelog

See what shipped

Press

Read the latest news

Events

Join us at an event

Docs

Vercel documentation

Academy

Linear courses to level up

Knowledge Base

Find help quickly

Community

Join the conversation

Next.js

The native Next.js platform

Nuxt

The progressive web framework

Svelte

The web’s efficient UI framework

Turborepo

Speed with Enterprise scale

AI Apps

Deploy at the speed of AI

Composable Commerce

Power storefronts that convert

Marketing Sites

Launch campaigns fast

Multi-tenant Platforms

Scale apps with one codebase

Web Apps

Ship features, not infrastructure

Marketplace

Extend and automate workflows

Templates

Jumpstart app development

Partner Finder

Get help from solution partners

Platform Engineers

Automate away repetition

Design Engineers

Deploy for every idea