This PR introduces an end-to-end workflow to automatically process meeting transcripts and create structured notes and tasks in Twenty CRM. It leverages OpenAI to extract summaries, key points, action items, and participant commitments from transcripts. Key features include: 1. AI-powered transcript analysis: Uses OpenAI GPT‑4o-mini to extract a concise summary, key discussion points, action items, and commitments. 2. Automated note creation: Generates a rich Markdown note in Twenty CRM with summary and key points. 3. Task automation: Automatically creates tasks in Twenty CRM from extracted action items and commitments, linking them to the meeting note. 4. Custom field support: Supports optional metadata from transcript payloads, which can be included in note/task content or mapped to custom fields in Twenty CRM if supported. 5. Webhook-ready: Designed to process Granola-style (or similar) webhook payloads, making it easy to integrate with any AI meeting tool. Sumbission for Hacktoberfest Team Name : One for All
AI Meeting Transcript
Automatically process meeting transcripts to extract insights, action items, and follow-ups using AI.
Features
- Automatic Transcript Processing: Receives meeting transcripts via webhook from Granola or similar transcription tools
- AI-Powered Analysis: Uses OpenAI to extract:
- Meeting summary
- Key discussion points
- Action items with assignees and due dates
- Commitments made by participants
- Rich Note Creation: Creates formatted notes in Twenty with summary and key points
- Task Generation: Automatically creates tasks for action items and commitments, linked to the meeting note
Requirements
twenty-cli- Install globally:npm install -g twenty-cliapiKey- Go tohttps://twenty.com/settings/api-webhooksto generate oneOpenAI API Key- Get your API key from OpenAI
Installation
- Copy the environment file:
cp .env.example .env
-
Edit
.envand replace the placeholders:<SET_YOUR_TWENTY_API>with your Twenty API key<SET_YOUR_OPENAI_API_KEY>with your OpenAI API key
-
Install dependencies:
yarn install
- Sync the app to your Twenty workspace:
twenty auth login
twenty app sync
Configuration
After syncing, configure the environment variables in your Twenty workspace:
- Go to Settings → Apps → AI Meeting Transcript
- Set the following environment variables:
TWENTY_API_KEY- Your Twenty API keyTWENTY_API_URL- Your Twenty instance URL (e.g.,https://api.twenty.comorhttp://localhost:3000for local development)OPENAI_API_KEY- Your OpenAI API key
Important: TWENTY_API_URL is required and must be set to your Twenty instance URL. For local development, use http://localhost:3000. For production, use your actual Twenty instance URL.
Usage
Webhook Endpoint
The app exposes a public serverless route trigger.
POST /s/webhook/transcript
Examples:
- Local:
POST http://localhost:3000/s/webhook/transcript - Hosted:
POST https://your-twenty-instance.com/s/webhook/transcript
Webhook Payload Format
Send a POST request with the following JSON structure:
{
"transcript": "Full meeting transcript text here...",
"meetingTitle": "Q4 Planning Meeting",
"meetingDate": "2024-01-15",
"participants": ["John Doe", "Jane Smith"],
"metadata": {
"duration": "45 minutes",
"location": "Conference Room A"
}
}
Required Fields:
transcript(string): The full meeting transcript text
Optional Fields:
meetingTitle(string): Title of the meetingmeetingDate(string): Date of the meeting (ISO format or readable date)participants(string[]): List of meeting participantsmetadata(object): Additional metadata about the meeting
Example Webhook Call
curl -X POST https://your-twenty-instance.com/s/webhook/transcript \
-H "Content-Type: application/json" \
-d '{
"transcript": "John: Let'\''s start the meeting. Today we need to discuss Q4 goals. Jane: I agree. We should focus on customer retention. John: Great point. Can you prepare a report by Friday? Jane: Yes, I will have it ready.",
"meetingTitle": "Q4 Planning Meeting",
"meetingDate": "2024-01-15"
}'
What Happens
- Transcript Analysis: The transcript is sent to OpenAI for analysis
- Note Creation: A formatted note is created in Twenty with:
- Meeting summary
- Key discussion points
- Reference to the transcript source
- Task Creation: Tasks are automatically created for:
- Each action item identified
- Each commitment made by participants
- Tasks include a reference to the meeting note ID in their description
Development
Run dev mode to see application updates on your workspace instantly:
twenty app dev
Integration with Granola
To integrate with Granola or similar transcription tools:
- Set up a webhook in your transcription service
- Configure it to POST to:
https://your-twenty-instance.com/s/webhook/transcript - Map the transcription service's payload format to the expected format above
Granola Webhook Setup
If using Granola, configure the webhook to send:
transcriptfield with the transcript text- Optionally include meeting metadata fields
API Response
The webhook returns a JSON response:
{
"success": true,
"noteId": "uuid-of-created-note",
"taskIds": ["uuid-of-task-1", "uuid-of-task-2"],
"summary": {
"noteCreated": true,
"tasksCreated": 2,
"actionItemsProcessed": 1,
"commitmentsProcessed": 1
}
}