Telegram to Airtable, meeting minutes everyone sees
You finish a meeting, promise to “send notes,” and then… it’s 5 pm and nothing is written. Worse, the one person who did take notes typed them in a rush, so action items get lost and nobody knows what they own.
This hits marketing managers who run weekly syncs, but agency owners and ops leads feel it too. With Telegram Airtable minutes automation, you can capture a quick message (or voice memo) and turn it into clean minutes that land in Airtable and Slack without chasing people.
Below, you’ll see how the workflow moves from Telegram to structured minutes, how it notifies your team, and what you can tweak so it matches your meeting style.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Telegram to Airtable, meeting minutes everyone sees
flowchart LR
subgraph sg0["Telegram Flow"]
direction LR
n0@{ icon: "mdi:brain", form: "rounded", label: "GPT-4 Email Generator Model", pos: "b", h: 48 }
n1@{ icon: "mdi:message-outline", form: "rounded", label: "Send Email", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If", pos: "b", h: 48 }
n3@{ icon: "mdi:cog", form: "rounded", label: "Wait", pos: "b", h: 48 }
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/telegram.svg' width='40' height='40' /></div><br/>Telegram Trigger"]
n5["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/telegram.svg' width='40' height='40' /></div><br/>Voice note"]
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/telegram.svg' width='40' height='40' /></div><br/>Voice note download"]
n7@{ icon: "mdi:robot", form: "rounded", label: "Transcription of voice notes..", pos: "b", h: 48 }
n8@{ icon: "mdi:cog", form: "rounded", label: "WAIT", pos: "b", h: 48 }
n9["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Content"]
n10["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Message or Voice ?"]
n11@{ icon: "mdi:robot", form: "rounded", label: "Generate Meeting Message", pos: "b", h: 48 }
n12["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Create a record"]
n13["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Code"]
n14["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/slack.svg' width='40' height='40' /></div><br/>Send a message"]
n15@{ icon: "mdi:robot", form: "rounded", label: "Enforce Email JSON", pos: "b", h: 48 }
n16["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Code structure"]
n2 --> n5
n2 --> n9
n13 --> n12
n8 --> n16
n3 --> n6
n9 --> n16
n5 --> n3
n16 --> n11
n14 --> n1
n12 --> n14
n4 --> n10
n15 -.-> n11
n10 --> n2
n6 --> n7
n11 --> n13
n0 -.-> n11
n7 --> n8
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n4 trigger
class n7,n11,n15 ai
class n0 aiModel
class n2 decision
class n12 database
class n9,n10,n13,n16 code
classDef customIcon fill:none,stroke:none
class n4,n5,n6,n9,n10,n12,n13,n14,n16 customIcon
The Problem: Meeting Notes Don’t Turn Into Shared Minutes
Meeting notes are rarely the problem. The handoff is. Someone scribbles highlights in a notebook, another person drops a vague Slack message, and the “real” minutes live in one person’s head. Then a client asks, “What did we decide?” and you’re reconstructing decisions from calendar invites and half-remembered bullet points. It costs time, but it also creates quiet risk: missed owners, missed deadlines, and follow-ups that never happen because nobody has a clean, searchable record.
The friction compounds. Here’s where it usually breaks down.
- Notes get written late, which means the details (and decisions) are already fuzzy.
- Action items disappear into chat threads, so the same topics show up again next week.
- Different people format notes differently, so nobody trusts the “official” version.
- Manual copy-paste into a doc or database invites errors, especially with names and due dates.
The Solution: Turn Telegram Messages Into Minutes, Automatically
This workflow starts where your team already is: Telegram. Right after the meeting, you send a message to your Telegram bot (typed text) or you drop a voice note (for those “walking to the next call” moments). If it’s audio, n8n grabs the file and transcribes it with OpenAI. Then an AI agent turns that raw input into structured, professional meeting minutes with a clear subject, a tidy report body, and the right recipient email. Finally, the workflow stores the minutes in Airtable, posts the summary into Slack so everyone sees it, and sends a formal email via Gmail to the right person.
The workflow starts when a Telegram bot receives your meeting recap. From there, it normalizes the content, generates minutes with GPT, and guarantees the output is valid JSON so downstream steps don’t break. Airtable becomes your archive, Slack becomes your broadcast channel, and Gmail handles the “official” send.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you run 5 meetings a week and you normally spend about 30 minutes turning rough notes into something shareable. That’s roughly 2.5 hours, and frankly it’s usually the worst 2.5 hours of the week. With this workflow, you send a 2-minute Telegram voice note (or a quick text), wait a minute or two for transcription and generation, and it’s done: saved in Airtable, posted in Slack, and emailed via Gmail. You still review when needed, but you’re no longer starting from a blank page.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Telegram for capturing text or voice notes.
- Airtable to store minutes in a searchable base.
- Slack to notify the team instantly.
- Gmail to send the formal minutes email.
- OpenAI API key (get it from your OpenAI dashboard).
Skill level: Intermediate. You’ll connect a few accounts, map Airtable fields, and paste in an API key.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A Telegram message triggers everything. You send your meeting recap to a bot as text, or you drop a voice note when you’re in a hurry. The workflow listens for new messages and starts immediately.
The workflow figures out what you sent. A small detection step labels the input as “text” or “voice,” so n8n can route it correctly. If it’s voice, the workflow fetches the file from Telegram, waits a moment for the file to be ready, then downloads it.
OpenAI turns raw input into clean, structured minutes. Voice notes are transcribed first, and text messages are normalized so both paths end up as the same “meeting text” format. Then an AI agent generates a professional minutes report with a subject line and a formatted body, plus an email destination that can be extracted (or safely defaulted) from the message.
Airtable, Slack, and Gmail receive the output. n8n maps the final fields to your Airtable table (Email, Subject, Report), creates the record, posts the minutes into your Slack channel, and sends a Gmail email using the Airtable values so the sent version matches what was archived.
You can easily modify the minutes format to match your templates based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Telegram Trigger
This workflow starts when a Telegram message arrives, so first connect and configure the trigger.
- Add the Telegram Intake Trigger node as the workflow trigger.
- Credential Required: Connect your telegramApi credentials in Telegram Intake Trigger.
- Set Updates to
messageto capture incoming text and voice messages. - Confirm the trigger is connected to Detect Message Type.
Step 2: Connect Telegram Voice Handling
This step splits voice and text inputs, then retrieves voice data when needed.
- In Detect Message Type, keep the JavaScript as provided to output either
type: "text"ortype: "voice". - Configure Voice Branch Check to evaluate
={{$json.type}}equalsvoice. - On the voice path, set Fetch Voice File with File ID
={{$json.file_id}}and Resourcefile. - Credential Required: Connect your telegramApi credentials in Fetch Voice File.
- From Fetch Voice File, pass through Pause for Voice Data to Download Voice Media.
- In Download Voice Media, set File ID to
={{$json.result.file_id}}and keep Resourcefile. - Credential Required: Connect your telegramApi credentials in Download Voice Media.
- Confirm the text path from Voice Branch Check goes to Extract Text Content.
Step 3: Set Up AI Processing for Transcription and Summary
This stage transcribes audio and turns text into a structured email summary.
- Configure Audio Transcription with Resource
audioand Operationtranscribe. - Credential Required: Connect your openAiApi credentials in Audio Transcription.
- Keep Processing Delay after Audio Transcription to ensure downstream nodes receive the transcription.
- In Extract Text Content, keep the code that returns
{ text: $json.content }for text messages. - In Derive Email Fields, keep the JavaScript for extracting or constructing the recipient email, including the fallback to
[YOUR_EMAIL]. - Connect GPT Email Model as the language model for Compose Meeting Summary.
- Credential Required: Connect your openAiApi credentials in GPT Email Model.
- In Compose Meeting Summary, keep the prompt text as provided, and ensure hasOutputParser is enabled.
- Validate Email JSON is the output parser for Compose Meeting Summary; ensure credentials are added to GPT Email Model (parent node), not Validate Email JSON.
[YOUR_EMAIL] in outputs and prompts to avoid sending emails to a placeholder address.Step 4: Normalize Output and Store in Airtable
After the AI returns structured JSON, this step formats it and writes to Airtable.
- In Normalize Report Output, keep the JavaScript that maps AI output into
Email,subject, andReport. - Configure Create Airtable Entry with your Base and Table IDs.
- Set the Columns mapping to
Email: {{$json.Email}},Report: {{$json.Report}}, andsubject: {{$json.subject}}. - Credential Required: Connect your airtableTokenApi credentials in Create Airtable Entry.
Email, subject, and Report to match the mapping.Step 5: Configure Output Notifications
Once Airtable is updated, the workflow posts to Slack and sends the email.
- In Post Slack Update, set Text to
={{ $json.fields.subject}}followed by{{ $json.fields.Report }}. - Select the Slack channel ID in Post Slack Update.
- Credential Required: Connect your slackOAuth2Api credentials in Post Slack Update.
- In Dispatch Email Alert, set Send To to
={{ $('Create Airtable Entry').item.json.fields.Email }}. - Set Subject to
={{ $('Create Airtable Entry').item.json.fields.subject }}and Message to={{ $('Create Airtable Entry').item.json.fields.Report }}. - Credential Required: Connect your gmailOAuth2 credentials in Dispatch Email Alert.
Step 6: Test and Activate Your Workflow
Validate the end-to-end flow with both text and voice messages, then activate it for production.
- Click Test Workflow and send a Telegram text message with a clear recipient email.
- Send a Telegram voice note and confirm the flow proceeds through Download Voice Media → Audio Transcription → Compose Meeting Summary.
- Verify a new record appears in Airtable with populated
Email,subject, andReport. - Check Slack for the posted summary and confirm the email was delivered via Dispatch Email Alert.
- When everything looks correct, toggle the workflow to Active for production use.
Common Gotchas
- Telegram bot permissions and tokens can be finicky. If the trigger stops firing, check the bot token in n8n credentials and confirm your bot is added correctly in Telegram.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- OpenAI prompts and formatting rules matter more than you think. The default “minutes” output can feel generic, so add your agenda structure and brand voice early or you will be editing outputs forever.
Frequently Asked Questions
About 30–60 minutes if your accounts and Airtable table are ready.
No. You’ll mostly connect accounts and paste an OpenAI API key. There are a few prebuilt “Code” steps, but you usually don’t need to edit them.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in OpenAI API usage for transcription and chat, which is usually a few cents per meeting for most teams.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and you should. The easiest tweak is inside the AI agent prompt that generates the minutes, where you can enforce sections like “Decisions,” “Action items,” and “Risks.” Common customizations include adding your client name automatically, forcing action items to include an owner and due date, and changing the Slack message to post only the summary while keeping the full report in Airtable.
Usually it’s a bot token issue or the wrong Telegram credential selected in one of the Telegram nodes. Regenerate the token in BotFather if needed, then update it in n8n and re-test the trigger. If voice notes fail but text works, double-check the file download nodes and increase the short Wait so Telegram has time to prepare the file. Also check that your n8n instance can reach Telegram endpoints (some corporate networks block them).
On n8n Cloud Starter, you can run plenty for a small team, and higher tiers support more volume. If you self-host, there’s no execution cap, so it mainly depends on your server and API rate limits. In practice, most teams can process one meeting recap every few minutes without thinking about scale.
It depends on what “better” means for you. If you want voice note transcription, branching logic (text vs voice), and strict output formatting that won’t randomly break your Airtable mapping, n8n is a safer fit because you can control each step and self-host when volume grows. Zapier and Make are great for quick, simple chains, but complex AI formatting can become fragile when you can’t validate and reshape data easily. Cost matters too: n8n self-hosting can stay flat while tasks scale. If you’re unsure, Talk to an automation expert and you’ll get a straight recommendation.
Once this is running, meeting minutes stop being a “someday today” task. They just appear where your team already works.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.