This workflow corresponds to n8n.io template #5197 — we link there as the canonical source.
This workflow follows the Chainllm → Emailsend recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "IOWmWdoiFYtZFoQ7",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Auto Meeting Record, Transcribe & Email Summaries with Vexa & Llama AI",
"tags": [],
"nodes": [
{
"id": "1e744c15-6d1e-4cf6-b0fc-9a076a28f99d",
"name": "Start Meeting Trigger\t",
"type": "n8n-nodes-base.googleCalendarTrigger",
"position": [
-80,
100
],
"parameters": {
"options": {},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"triggerOn": "eventStarted",
"calendarId": {
"__rl": true,
"mode": "id",
"value": "user@example.com"
}
},
"credentials": {
"googleCalendarOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "d887b73f-bae7-4ce7-b1dd-428e020eec59",
"name": "Launch Vexa Bot for Meeting\t",
"type": "n8n-nodes-base.httpRequest",
"position": [
140,
100
],
"parameters": {
"url": "https://gateway.dev.vexa.ai/bots",
"method": "POST",
"options": {},
"sendBody": true,
"sendHeaders": true,
"bodyParameters": {
"parameters": [
{
"name": "platform",
"value": "google_meet"
},
{
"name": "native_meeting_id",
"value": "={{ $json.conferenceData.conferenceId }}"
},
{
"name": "language",
"value": "en"
},
{
"name": "bot_name",
"value": "Oneclick Bot"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "X-API-Key",
"value": "your_api_key_here"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "88c87165-2cf6-4e6a-95fb-414477d4c9a2",
"name": "End Meeting Trigger\t",
"type": "n8n-nodes-base.googleCalendarTrigger",
"position": [
-80,
460
],
"parameters": {
"options": {},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"triggerOn": "eventStarted",
"calendarId": {
"__rl": true,
"mode": "id",
"value": "user@example.com"
}
},
"credentials": {
"googleCalendarOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "9193cf99-82ea-4cb2-a83b-d6e6543dc378",
"name": "Stop Vexa Bot\t",
"type": "n8n-nodes-base.httpRequest",
"position": [
140,
460
],
"parameters": {
"url": "=https://gateway.dev.vexa.ai/bots/google_meet/{{ $json.conferenceData.conferenceId }}",
"method": "DELETE",
"options": {},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "X-API-Key",
"value": "your_api_key_here"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "21dbb664-4085-4a2a-8cf3-e4767f517d9d",
"name": "Fetch Meeting Audio File\t",
"type": "n8n-nodes-base.httpRequest",
"position": [
360,
360
],
"parameters": {
"url": "=https://gateway.dev.vexa.ai/meeting_audio/google_meet/{{ $('End Meeting Trigger\t').item.json.conferenceData }}",
"options": {},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "X-API-Key",
"value": "your_api_key_here"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "83e8a00e-874f-4447-addc-89101095a993",
"name": "Transcribe Meeting Audio\t",
"type": "n8n-nodes-base.httpRequest",
"position": [
380,
600
],
"parameters": {
"url": "=https://gateway.dev.vexa.ai/transcripts/google_meet/{{ $('End Meeting Trigger\t').item.json.conferenceData.conferenceId }}",
"options": {},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "X-API-Key",
"value": "your_api_key_here"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "defad130-6fbd-4cd6-8e35-deebabd6011f",
"name": "Prepare Transcript for AI\t",
"type": "n8n-nodes-base.set",
"position": [
580,
560
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "62f25d35-d8cc-48f8-997d-97ff90368635",
"name": "text",
"type": "string",
"value": "={{ $json.segments }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "b4cded44-b3e1-41b4-b994-a5dcf26a65ec",
"name": "Generate Meeting Summary\t",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
800,
560
],
"parameters": {
"text": "=Provide a concise summary of following texts in nested bullets, using quotes only when absolutely essential for clarity. Start output directly with the response.\n\n\n{{ $json.text }}",
"promptType": "define"
},
"typeVersion": 1.6
},
{
"id": "efebad1b-5ebe-4491-a9e6-a0b9838815eb",
"name": "AI Model",
"type": "@n8n/n8n-nodes-langchain.lmOllama",
"position": [
888,
780
],
"parameters": {
"model": "llama3.2-16000:latest",
"options": {}
},
"credentials": {
"ollamaApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "5c21a138-e2ed-4e2e-a4c2-6ddf65e85625",
"name": "Send email",
"type": "n8n-nodes-base.emailSend",
"position": [
1176,
560
],
"parameters": {
"text": "={{ $json.output }}",
"options": {},
"subject": "Meeting Summary",
"toEmail": "user@example.com",
"fromEmail": "user@example.com",
"emailFormat": "text"
},
"credentials": {
"smtp": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "b59c01ba-f3e6-4485-bf96-684aa21a6973",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
1106,
460
],
"parameters": {
"height": 260,
"content": "Sends the generated meeting summary to specified recipients via email, using configured SMTP settings"
},
"typeVersion": 1
},
{
"id": "db5a2b78-d7d0-4aa9-af65-db586650977b",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-210,
0
],
"parameters": {
"width": 300,
"height": 260,
"content": "Initiates workflow when meeting begins, triggered by eventStarted signal from the meeting platform. Configure with Google Meet webhook and API credentials"
},
"typeVersion": 1
},
{
"id": "3403ed43-201d-4ede-a736-eaaa3d6bf97b",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
120,
0
],
"parameters": {
"color": 3,
"height": 260,
"content": "Starts the Vexa Bot recording process using the configured API credentials or webhook"
},
"typeVersion": 1
},
{
"id": "da19f45e-4dd3-4f78-95a6-0c0f0af63182",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-340,
360
],
"parameters": {
"color": 5,
"width": 400,
"height": 260,
"content": "Detects meeting end event and triggers next step to stop recording. Configure with Google Meet webhook for eventEnded and fix authentication (e.g., verify client credentials)"
},
"typeVersion": 1
},
{
"id": "b5bcf708-5175-440f-9028-c959ce2d5117",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
70,
360
],
"parameters": {
"color": 4,
"height": 260,
"content": "Halts the Vexa Bot recording and prepares the audio file for further processing."
},
"typeVersion": 1
},
{
"id": "9fd34341-9e6f-428d-bf7a-058ae1881a77",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
270,
320
],
"parameters": {
"width": 280,
"height": 200,
"content": "Retrieves the recorded audio file from Vexa Bot for transcription."
},
"typeVersion": 1
},
{
"id": "d73efff1-507a-401a-b151-44b36fffefac",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
320,
500
],
"parameters": {
"color": 6,
"width": 180,
"height": 260,
"content": "Converts the fetched audio file into text using the connected AI model."
},
"typeVersion": 1
},
{
"id": "6bc285e7-5512-4719-ae44-f07f240826a3",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
560,
440
],
"parameters": {
"color": 4,
"width": 160,
"height": 340,
"content": "Formats the transcribed text for input into the AI model for summary generation."
},
"typeVersion": 1
},
{
"id": "4b4ae666-3280-465c-aa4c-2011aec87247",
"name": "Sticky Note8",
"type": "n8n-nodes-base.stickyNote",
"position": [
780,
420
],
"parameters": {
"color": 3,
"height": 420,
"content": "Creates a concise summary from the transcribed text using the AI model."
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "f7d7eaa4-9e40-4d89-9095-6a881320a158",
"connections": {
"AI Model": {
"ai_languageModel": [
[
{
"node": "Generate Meeting Summary\t",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Stop Vexa Bot\t": {
"main": [
[
{
"node": "Fetch Meeting Audio File\t",
"type": "main",
"index": 0
},
{
"node": "Transcribe Meeting Audio\t",
"type": "main",
"index": 0
}
]
]
},
"End Meeting Trigger\t": {
"main": [
[
{
"node": "Stop Vexa Bot\t",
"type": "main",
"index": 0
}
]
]
},
"Start Meeting Trigger\t": {
"main": [
[
{
"node": "Launch Vexa Bot for Meeting\t",
"type": "main",
"index": 0
}
]
]
},
"Fetch Meeting Audio File\t": {
"main": [
[]
]
},
"Generate Meeting Summary\t": {
"main": [
[
{
"node": "Send email",
"type": "main",
"index": 0
}
]
]
},
"Transcribe Meeting Audio\t": {
"main": [
[
{
"node": "Prepare Transcript for AI\t",
"type": "main",
"index": 0
}
]
]
},
"Prepare Transcript for AI\t": {
"main": [
[
{
"node": "Generate Meeting Summary\t",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
googleCalendarOAuth2ApiollamaApismtp
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Transform your meetings into actionable insights automatically! This workflow captures meeting audio, transcribes conversations, generates AI summaries, and emails the results to participants—all without manual intervention. Auto-record meetings when they start and stop when…
Source: https://n8n.io/workflows/5197/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
AI Competition – Small Business Problems – Rebound Email. Uses httpRequest, chainLlm, outputParserStructured, lmChatOpenAi. Event-driven trigger; 25 nodes.
This n8n workflow is your all-in-one solution for automated content creation and publishing. It intelligently crafts unique articles in Thai, generates captivating AI images, and seamlessly publishes
This n8n template automates targeted lead discovery, AI-driven data structuring, and personalized cold-email sending at controlled intervals. It’s ideal for sales teams, founders, and agencies that wa
🤖 Translation Agent. Uses executeWorkflowTrigger, chainLlm, lmOllama, httpRequest. Event-driven trigger; 24 nodes.
This workflow is designed to analyze YouTube videos by extracting their transcripts, summarizing the content using AI models, and sending the analysis via email.