To view the n8n flow demo and copy the JSON you need to purchase our Bundle... don't worry, it's FREE

Go to the BUNDLE

Create Meeting Minutes from Telegram Messages with GPT-5 to Airtable Slack Gmail

How does it work?

baptistefortautomatisationairtable.png

Send a message or a voice note on Telegram right after the meeting.

n8n transcribes ( if it's a voice note ) and sends the text to GPT.

GPT generates a structured and professional meeting minutes report.

The report is automatically stored in Airtable.

Your team is instantly notified in Slack.

A formal email is sent via Gmail to the right recipients.

๐Ÿ‘‰ Works for all types of meetings : client calls, team syncs, project updatesโ€ฆ whether you type a message or send a quick voice memo.


โœ… Requirements

Before running this workflow, you'll need:

  • A Telegram account with a bot configured (to send your messages/voice notes)
  • An OpenAI API key (for GPT and voice transcription)
  • An Airtable account with a base containing these fields:
    • E-mail
    • Subject
    • Report
  • A Slack account with the target channel for notifications
  • A Gmail account connected to n8n (OAuth2)

๐Ÿ”ง Step-by-step setup

baptistefortautomatisationagentia.png

Step 1 โ€“ Telegram Trigger

  • Node : Telegram Trigger
  • Updates : message
    ๐Ÿ‘‰ Captures every message or voice note sent to the bot.

Step 2 โ€“ Detect text or voice

  • Node : Code (โ€œMessage or Voice ?โ€)
  • Expected output :
    • { type: "text", content } if message
    • { type: "voice", file_id } if voice note
      ๐Ÿ‘‰ Routes the workflow based on the input type.

Step 3 โ€“ IF Condition

  • Condition : {{$json.type}} == voice
    ๐Ÿ‘‰ Directs to the transcription branch if it's a voice note.

Voice Branch ๐ŸŽค

Step 4 โ€“ Download the voice file

  • Node : Telegram โ†’ Voice note
  • Parameter : fileId = {{$json.file_id}}

Step 5 โ€“ Wait

  • Node : Wait (2โ€“3s)
    ๐Ÿ‘‰ Lets Telegram prepare the file.

Step 6 โ€“ Voice note download

  • Node : Telegram (file download)
    ๐Ÿ‘‰ Retrieves the audio file.

Step 7 โ€“ Transcribe to text

  • Node : OpenAI (Transcription)
  • Resource : audio
  • Operation : transcribe
    ๐Ÿ‘‰ Converts the voice note into plain text.

Step 8 โ€“ Short wait

๐Ÿ‘‰ Ensures continuity before sending to GPT.


Text Branch โœ๏ธ

Step 9 โ€“ Normalize

  • Node : Code (โ€œContentโ€)
  • Return : { text: $json.content }
    ๐Ÿ‘‰ Standardizes the text as if it were already a transcription.

Step 10 โ€“ Detect email

  • Node : Code (โ€œDomain or Email detectionโ€)
    ๐Ÿ‘‰ Extracts the target email (or builds a fallback contact@gmail.com ).

Step 11 โ€“ Generate meeting minutes

  • Node : Agent (โ€œGenerate Meeting Messageโ€)
  • Prompt : specialized for โ€œmeeting minutesโ€
  • Model : GPT-4.1-mini
  • Output : { email, subject, body }
    ๐Ÿ‘‰ GPT creates a clean and structured meeting report.

Step 12 โ€“ Enforce clean JSON

  • Node : Output Parser Structured
  • JSON Example :
    json {"email": " address@gmail.com ","subject":"Subject","body":Email"}

๐Ÿ‘‰ Ensures the output is always valid JSON.

Step 13 โ€“ Cleanup / Airtable mapping

  • Node : Code
  • Return : { Email, subject, Report }
    ๐Ÿ‘‰ Prepares the correct fields aligned with your Airtable table.

Step 14 โ€“ Store in Airtable

baptistefortautomatisationleads.png

  • Node : Airtable (Create Record)
  • Mapping :
    • Email = {{$json.Email}}
    • subject = {{$json.subject}}
    • Report = {{$json.Report}}
      ๐Ÿ‘‰ Archives each meeting report in your Airtable base.

Step 15 โ€“ Notify in Slack

  • Node : Slack (Send Message)
  • Channel : your team channel
  • Message : {{$json.fields.subject}} {{$json.fields.Report}}

Step 16 โ€“ Send the email

  • Node : Gmail (Send Email)
  • sendTo : {{$('Create a record').item.json.fields.Email}}
  • subject : {{$('Create a record').item.json.fields.subject}}
  • message : {{$('Create a record').item.json.fields.Report}}
Do you want to automate your business?

Let's talk about your project