Turn raw meeting transcripts into structured, actionable intelligence — automatically delivered to Slack.
Built by Vijayshree Vaibhav.
Teams walk out of meetings with scattered notes, untracked action items, and unclear ownership. Critical insights get lost in long conversation threads. Following up manually is slow and inconsistent.
This agent solves it in one step: paste a meeting transcript → receive a structured summary, action items, risks, next steps, and a follow-up email draft — all delivered to Slack automatically.
| Input | Output |
|---|---|
| Raw meeting transcript | Executive summary |
| Any language, any format | Action items with owners |
| Paste or type directly | Risks & blockers |
| Suggested next steps | |
| Follow-up email draft | |
| Slack notification ⚡ |
graph TD
A[👤 User] -->|Pastes transcript| B[Next.js Frontend\nkits/embed/chat]
B -->|Sends message| C[Lamatic Chat Widget\nchat-v2]
C -->|POST /widget/chat| D[Chat Trigger Node\nLamatic Studio]
D --> E[🧠 Generate Text\nLLM - Executive Summary\nAction Items · Risks · Next Steps\nFollow-up Email]
E --> F[📋 Generate JSON\nStructured Output]
F --> G[⚡ Slack API Node\nWebhook POST]
F --> H[💬 Chat Response\nStreamed back to widget]
G -->|Formatted insight card| I[📨 Slack Channel]
H -->|Rendered markdown| B
style A fill:#6366f1,color:#fff
style B fill:#1e293b,color:#fff
style C fill:#1e293b,color:#fff
style D fill:#0f766e,color:#fff
style E fill:#7c3aed,color:#fff
style F fill:#7c3aed,color:#fff
style G fill:#4A154B,color:#fff
style H fill:#0f766e,color:#fff
style I fill:#4A154B,color:#fff
Flow inside Lamatic Studio:
Chat Widget ──▶ Generate Text (LLM) ──▶ Generate JSON
│
┌────────────────┤
▼ ▼
Slack API Chat Response
(Webhook) (back to user)
| Layer | Technology |
|---|---|
| Frontend | Next.js 14 (App Router) |
| UI | Tailwind CSS + shadcn/ui |
| AI Workflow | Lamatic Studio |
| Chat Widget | Lamatic chat-v2 embedded widget |
| LLM | Configured in Lamatic (GPT-4o / Claude) |
| Integrations | Slack Incoming Webhooks |
| Deployment | Vercel |
git clone https://github.com/vijayshreepathak/AgentKit.git
cd AgentKit/kits/embed/chatnpm installCreate .env.local inside kits/embed/chat/:
NEXT_PUBLIC_LAMATIC_PROJECT_ID=your_project_id
NEXT_PUBLIC_LAMATIC_FLOW_ID=your_flow_id
NEXT_PUBLIC_LAMATIC_API_URL=https://your-project.lamatic.devGet these values from your Lamatic Studio project settings.
npm run dev
# → http://localhost:3000Build this flow in Lamatic Studio:
[Chat Trigger] → [Generate Text] → [Generate JSON] → [Slack API]
→ [Chat Response]
- Open your flow → click the Chat Trigger node
- Under Allowed Domains, add
*(for development) or your production domain - Click Save → Deploy
You are an AI Meeting Intelligence Copilot. Analyze this meeting transcript and produce:
## Executive Summary
[2-3 sentence summary of the meeting]
## Action Items
- **[Owner]:** [Task] — due [date if mentioned]
## Risks & Blockers
- [Risk or blocker identified]
## Next Steps
- [Recommended follow-up action]
## Follow-up Email Draft
Subject: [Meeting Topic] — Decisions & Next Steps
[Professional email body]
Meeting transcript:
{{trigger.chatMessage}}
- Create an Incoming Webhook in your Slack workspace
- Add the webhook URL to the API Node in Lamatic
- The agent automatically sends the structured output to your channel
After clicking Deploy:
- Fill in the three env vars from your Lamatic Studio
- Vercel builds and deploys automatically
- Add your Vercel production URL to the Chat Trigger's allowed domains in Lamatic
kits/embed/chat/
├── app/
│ ├── page.js # Landing page (Server Component)
│ ├── layout.js # Root layout with fonts + analytics
│ ├── globals.css # Tailwind v4 + CSS variables
│ └── Screenshots/ # Demo screenshots
├── components/
│ ├── LamaticChat.js # Lamatic widget lifecycle manager
│ ├── HeroActions.jsx # CTA buttons (Client Component)
│ ├── TranscriptPlayground.jsx # Transcript input + analyze flow
│ └── ui/ # shadcn/ui components
├── flows/
│ └── embedded-chatbot-chatbot/ # Exported Lamatic flow config
├── .env.local # Local env vars (not committed)
└── package.json
Why data-* attributes on the root div?
The Lamatic chat-v2 widget reads data-api-url, data-flow-id, and data-project-id from #lamatic-chat-root at initialization. These must be set before the script runs.
Why bootstrap on mount (not on button click)?
The widget fetches chatConfig and creates an IndexedDB session on init. Bootstrapping early means the session is ready before the user sends their first message — preventing "unexpected error" on first send.
Why not remove the root on unmount?
The Lamatic widget uses IndexedDB with the session key as a primary key. Removing + re-adding the root causes a ConstraintError: Key already exists because the old session record is still in the database. The root is intentionally a page-lifetime singleton.
- Audio/video transcript upload (Whisper transcription)
- Multi-language meeting support
- Meeting history dashboard
- Calendar integration (Google Meet / Zoom auto-fetch)
- Team analytics on action item completion rates
- Export to Notion / Confluence
Vijayshree Vaibhav
MIT — see LICENSE.



