Files
twenty/packages/twenty-apps/ai-meeting-transcript
Harshit VashishtandGitHub 0cdc61c211 [HACKTOBERFEST] feat: Add AI meeting transcript integration with Twenty CRM (#15498)
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
2025-11-04 12:03:32 +01:00
..

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-cli
  • apiKey - Go to https://twenty.com/settings/api-webhooks to generate one
  • OpenAI API Key - Get your API key from OpenAI

Installation

  1. Copy the environment file:
cp .env.example .env
  1. Edit .env and replace the placeholders:

    • <SET_YOUR_TWENTY_API> with your Twenty API key
    • <SET_YOUR_OPENAI_API_KEY> with your OpenAI API key
  2. Install dependencies:

yarn install
  1. Sync the app to your Twenty workspace:
twenty auth login
twenty app sync

Configuration

After syncing, configure the environment variables in your Twenty workspace:

  1. Go to Settings → Apps → AI Meeting Transcript
  2. Set the following environment variables:
    • TWENTY_API_KEY - Your Twenty API key
    • TWENTY_API_URL - Your Twenty instance URL (e.g., https://api.twenty.com or http://localhost:3000 for 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 meeting
  • meetingDate (string): Date of the meeting (ISO format or readable date)
  • participants (string[]): List of meeting participants
  • metadata (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

  1. Transcript Analysis: The transcript is sent to OpenAI for analysis
  2. Note Creation: A formatted note is created in Twenty with:
    • Meeting summary
    • Key discussion points
    • Reference to the transcript source
  3. 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:

  1. Set up a webhook in your transcription service
  2. Configure it to POST to: https://your-twenty-instance.com/s/webhook/transcript
  3. Map the transcription service's payload format to the expected format above

Granola Webhook Setup

If using Granola, configure the webhook to send:

  • transcript field 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
  }
}