
Lead Agent
An inbound lead qualification and research agent built with Next.js, AI SDK, Workflow DevKit, and the Vercel Slack Adapter. Hosted on the Vercel AI Cloud.
This is meant to serve as a reference architecture to be adapted to the needs of your specific organization.
Overview
Lead agent app that captures a lead in a contact sales form and then kicks off a qualification workflow and deep research agent. It integrates with Slack to send and receive messages for human-in-the-loop feedback.
- Immediate Response - Returns a success response to the user upon submission
- Workflows - Uses Workflow DevKit to kick off durable background tasks
- Deep Research Agent - Conducts comprehensive research on the lead with a deep research agent
- Qualify Lead - Uses generateObjectto categorize the lead based on the lead data and research report
- Write Email - Generates a personalized response email
- Human-in-the-Loop - Sends to Slack for human approval before sending
- Slack Webhook - Catches a webhook event from Slack to approve or deny the email
 
Deploy with Vercel
Architecture
Tech Stack
- Framework: Next.js 16
- Durable execution: Workflow DevKit
- AI: Vercel AI SDK with AI Gateway
- Human-in-the-Loop: Slack Bolt + Vercel Slack Bolt adapter
- Web Search: Exa.ai
Using this template
This repo contains various empty functions to serve as placeholders. To fully use this template, fill out empty functions in lib/services.ts.
Example: Add a custom implementation of searching your own knowledge base in queryKnowledgeBase.
Additionally, update prompts to meet the needs of your specific business function.
Getting Started
Prerequisites
- Node.js 20+
- pnpm (recommended) or npm
- Slack workspace with bot token and signing secret
- Reference the Vercel Slack agent template docs for creating a Slack app
- You can set the permissions and configuration for your Slack app in the manifest.jsonfile in the root of this repo. Paste this manifest file into the Slack dashboard when creating the app
- Be sure to update the request URL for interactivity and event subscriptions to be your production domain URL
- If Slack environment variables are not set, the app will still run with the Slack bot disabled
 
- Vercel AI Gateway API Key
- Exa API key
Installation
- Clone the repository:
- Install dependencies:
- Set up environment variables:
Configure the following variables:
- Run the development server:
- Open http://localhost:3000 to see the application and submit a test lead.
Project Structure
Key Features
Workflow durable execution with use workflow
This project uses Workflow DevKit to kick off a workflow that runs the agent, qualification, and other actions.
AI-Powered Qualification
Leads are automatically categorized (QUALIFIED, FOLLOW_UP, SUPPORT, etc.) using the latest OpenAI model via the Vercel AI SDK and generateObject. Reasoning is also provided for each qualification decision. Edit the qualification categories by changing the qualificationCategorySchema in lib/types.ts.
AI SDK Agent class
Uses the AI SDK Agent class to create an autonomous research agent. Create new tools for the Agent and edit prompts in lib/services.ts.
Human-in-the-Loop Workflow
Generated emails are sent to Slack with approve/reject buttons, ensuring human oversight before any outbound communication.
The Slack message is defined with Slack's Block Kit. It can be edited in lib/slack.ts.
Extensible Architecture
- Add new qualification categories in the qualificationCategorySchemaintypes.ts
- Adjust the prompts and configuration for all AI calls in lib/services.ts
- Alter the agent by tuning parameters in lib/services.ts
- Add new service functions if needed in lib/services.ts
- Follow Vercel Workflow docs to add new steps to the workflow
- Create new workflows for other qualification flows, outbound outreach, etc.
License
MIT