AI智能体用于会议实时洞察
高级
这是一个Sales, Engineering, HR, Product, AI, Marketing领域的自动化工作流,包含 19 个节点。主要使用 If, Set, Webhook, Postgres, Supabase 等节点,结合人工智能技术实现智能自动化。 AI智能体用于会议实时洞察
前置要求
- •HTTP Webhook 端点(n8n 会自动生成)
- •PostgreSQL 数据库连接信息
- •Supabase URL 和 API Key
- •可能需要目标 API 的认证凭证
- •OpenAI API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"nodes": [
{
"id": "d44489b8-8cb7-4776-8c16-a8bb01e52171",
"name": "OpenAI1",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
300,
-300
],
"parameters": {
"text": "={{ \n JSON.parse($('Insert Transcription Part').item.json.dialog)\n .filter(item => item.date_updated && new Date(item.date_updated) >= new Date($('Insert Transcription Part').item.json.date_updated))\n .sort((a, b) => a.order - b.order)\n .map(item => `${item.words}\\n${item.speaker}`)\n .join('\\n\\n')\n}}",
"memory": "threadId",
"prompt": "define",
"options": {},
"resource": "assistant",
"threadId": "={{ $json.thread_id }}",
"assistantId": {
"__rl": true,
"mode": "list",
"value": "asst_D5t6bNnNpenmfC7PmvywMqyR",
"cachedResultName": "5minAI - Realtime Agent"
}
},
"credentials": {
"openAiApi": {
"id": "SphXAX7rlwRLkiox",
"name": "Test club key"
}
},
"typeVersion": 1.6
},
{
"id": "3425f1c1-ad68-495e-bb9a-95ea92e7cf23",
"name": "插入转录部分",
"type": "n8n-nodes-base.postgres",
"position": [
-120,
-300
],
"parameters": {
"query": "UPDATE public.data\nSET output = jsonb_set(\n output,\n '{dialog}', \n (\n COALESCE(\n (output->'dialog')::jsonb, \n '[]'::jsonb -- Initialize as empty array if dialog does not exist\n ) || jsonb_build_object(\n 'order', (COALESCE(jsonb_array_length(output->'dialog'), 0) + 1), -- Calculate the next order\n 'words', '{{ $('Webhook2').item.json.body.data.transcript.words.map(word => word.text.replace(/'/g, \"''\")).join(\" \") }}',\n 'speaker', '{{ $('Webhook2').item.json.body.data.transcript.speaker }}',\n 'language', '{{ $('Webhook2').item.json.body.data.transcript.language }}',\n 'speaker_id', ('{{ $('Webhook2').item.json.body.data.transcript.speaker_id }}')::int,\n 'date_updated', to_jsonb('{{ $now }}'::text)\n )\n )\n)\nWHERE input->>'recall_bot_id' = $1\nReturning input->>'openai_thread_id' as thread_id;",
"options": {
"queryReplacement": "={{ $('Scenario 2 Start - Webhook').item.json.body.data.bot_id }}"
},
"operation": "executeQuery"
},
"credentials": {
"postgres": {
"id": "AO9cER6p8uX7V07T",
"name": "Postgres 5minai"
}
},
"typeVersion": 2.5
},
{
"id": "9bcc0605-fc35-4842-a3f4-30ef902f35c1",
"name": "创建备注",
"type": "n8n-nodes-base.postgresTool",
"position": [
180,
-120
],
"parameters": {
"query": "UPDATE public.data\nSET output = jsonb_set(\n output,\n '{notes}', \n (\n COALESCE(\n (output->'notes')::jsonb, \n '[]'::jsonb -- Initialize as empty array if dialog does not exist\n ) || jsonb_build_object(\n 'order', (COALESCE(jsonb_array_length(output->'notes'), 0) + 1), -- Calculate the next order\n 'text', '{{ $fromAI(\"note\",\"Text of note.\") }}'\n )\n )\n)\nWHERE input->>'recall_bot_id' = $1",
"options": {
"queryReplacement": "={{ $('Scenario 2 Start - Webhook').item.json.body.data.bot_id }}"
},
"operation": "executeQuery",
"descriptionType": "manual",
"toolDescription": "Create note record."
},
"credentials": {
"postgres": {
"id": "AO9cER6p8uX7V07T",
"name": "Postgres 5minai"
}
},
"typeVersion": 2.5
},
{
"id": "0831c139-ca4b-4b4c-aa7f-7495c4ca0110",
"name": "创建 Recall 机器人",
"type": "n8n-nodes-base.httpRequest",
"position": [
-60,
-980
],
"parameters": {
"url": "https://us-west-2.recall.ai/api/v1/bot",
"method": "POST",
"options": {},
"jsonBody": "={\n \"meeting_url\":\"{{ $json.meeting_url }}\",\n \"transcription_options\": {\n \"provider\": \"assembly_ai\"\n }\n,\n\"real_time_transcription\": {\n \"destination_url\": \"https://n8n.lowcoding.dev/webhook/d074ca1e-52f9-47af-8587-8c24d431f9cd\"\n },\n\"automatic_leave\": {\n \"silence_detection\": {\n \"timeout\": 300, \n \"activate_after\": 600\n },\n \"bot_detection\": {\n \"using_participant_events\": {\n \"timeout\": 600, \n \"activate_after\": 1200\n }\n },\n \"waiting_room_timeout\": 600,\n \"noone_joined_timeout\": 600,\n \"everyone_left_timeout\": 2,\n \"in_call_not_recording_timeout\": 600,\n \"recording_permission_denied_timeout\": 600\n}\n}",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "lfHu7Kn7L7SH3LAF",
"name": "Recall"
}
},
"typeVersion": 4.2
},
{
"id": "e1122b5b-3af5-4836-802c-40c3a0eb3c93",
"name": "创建 OpenAI 线程",
"type": "n8n-nodes-base.httpRequest",
"position": [
140,
-980
],
"parameters": {
"url": "https://api.openai.com/v1/threads",
"method": "POST",
"options": {},
"sendHeaders": true,
"authentication": "predefinedCredentialType",
"headerParameters": {
"parameters": [
{
"name": "OpenAI-Beta",
"value": "assistants=v2"
}
]
},
"nodeCredentialType": "openAiApi"
},
"credentials": {
"openAiApi": {
"id": "SphXAX7rlwRLkiox",
"name": "Test club key"
}
},
"typeVersion": 4.2
},
{
"id": "784c123d-adbb-4265-9485-2c88dd3091c2",
"name": "创建数据记录",
"type": "n8n-nodes-base.supabase",
"position": [
320,
-980
],
"parameters": {
"tableId": "data",
"fieldsUi": {
"fieldValues": [
{
"fieldId": "input",
"fieldValue": "={{ {\"openai_thread_id\": $('Create OpenAI thread').item.json.id, \"recall_bot_id\": $('Create Recall bot').item.json.id, \"meeting_url\":$('Webhook').item.json.body.meeting_url } }}"
},
{
"fieldId": "output",
"fieldValue": "={{ {\"dialog\":[]} }}"
}
]
}
},
"credentials": {
"supabaseApi": {
"id": "iVKNf5qv3ZFhq0ZV",
"name": "Supabase 5minAI"
}
},
"typeVersion": 1
},
{
"id": "f455c7de-1e64-4a28-9eef-11d19c982813",
"name": "便签 9",
"type": "n8n-nodes-base.stickyNote",
"position": [
-900,
-380
],
"parameters": {
"color": 7,
"width": 330.5152611046425,
"height": 239.5888196628349,
"content": "### ... 或观看设置视频 [10分钟]"
},
"typeVersion": 1
},
{
"id": "ea90c110-18ad-4f4b-90ab-fcb88b92e709",
"name": "便签 7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1200,
-1060
],
"parameters": {
"color": 7,
"width": 636,
"height": 657,
"content": ""
},
"typeVersion": 1
},
{
"id": "378c19bb-0e4a-43d3-9ba5-2a77ebfb5b83",
"name": "便签 6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1200,
-380
],
"parameters": {
"color": 7,
"width": 280,
"height": 626,
"content": "### 设置步骤"
},
"typeVersion": 1
},
{
"id": "9a4ff741-ccfd-42e9-883e-43297a73e2c3",
"name": "场景 1 开始 - 编辑字段",
"type": "n8n-nodes-base.set",
"position": [
-260,
-980
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "4891fa6e-2dd5-4433-925c-5497ec82e8ab",
"name": "meeting_url",
"type": "string",
"value": "https://meet.google.com/iix-vrav-kuc"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "a4368763-b96e-45e7-884d-aa0cbae2d276",
"name": "场景 2 开始 - Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
-320,
-300
],
"webhookId": "7f176935-cb83-4147-ac14-48c8d747863a",
"parameters": {
"path": "d074ca1e-52f9-47af-8587-8c24d431f9cd",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 2
},
{
"id": "107b26af-d1d2-40c7-ad4f-7193d3ae9b70",
"name": "如果 Jimmy 词",
"type": "n8n-nodes-base.if",
"position": [
80,
-300
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "ba6c2ae5-d0f4-4242-9cf8-97cb84335a93",
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $('Scenario 2 Start - Webhook').item.json.body.data.transcript.words.map(word => word.text.replace(/'/g, \"''\")).join(\" \") }}",
"rightValue": "=Jimmy"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "49cf34f6-86cf-42cc-9da4-3efb37e6f565",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-380,
-1040
],
"parameters": {
"width": 920,
"height": 400,
"content": "处理行项目"
},
"typeVersion": 1
},
{
"id": "34660f39-6ecc-4f2d-98e8-a2c529255e98",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-380,
-360
],
"parameters": {
"width": 1020,
"height": 420,
"content": "## 场景 1"
},
"typeVersion": 1
},
{
"id": "5027e72d-2b2c-40b4-921e-c4f40d85f251",
"name": "便签2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-200,
-120
],
"parameters": {
"color": 3,
"width": 270,
"height": 80,
"content": "### 替换 Supabase 凭据"
},
"typeVersion": 1
},
{
"id": "dddea341-da40-4b6a-ae25-a8417e869cc9",
"name": "便签3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-100,
-780
],
"parameters": {
"color": 3,
"width": 200,
"height": 80,
"content": "### 替换服务器位置"
},
"typeVersion": 1
},
{
"id": "e8e76c2a-f949-400e-92b2-39da8034b471",
"name": "便签说明4",
"type": "n8n-nodes-base.stickyNote",
"position": [
340,
-100
],
"parameters": {
"color": 4,
"width": 270,
"height": 80,
"content": "### 替换 OpenAI 凭据"
},
"typeVersion": 1
},
{
"id": "729a5f6e-5aea-4908-9a82-2a7d7bea1322",
"name": "便签说明5",
"type": "n8n-nodes-base.stickyNote",
"position": [
140,
-780
],
"parameters": {
"color": 3,
"width": 290,
"height": 80,
"content": "### 替换凭据"
},
"typeVersion": 1
},
{
"id": "31178e90-62ce-4bf8-8381-dc8138088889",
"name": "## 为什么选择 4o 模型?👆",
"type": "n8n-nodes-base.stickyNote",
"position": [
-320,
-780
],
"parameters": {
"color": 3,
"width": 200,
"height": 80,
"content": "### 替换会议 URL"
},
"typeVersion": 1
}
],
"pinData": {
"Create Recall bot": [
{
"id": "ab35fa56-e42b-47c6-b716-eac8d12af601",
"join_at": null,
"metadata": {},
"recording": null,
"video_url": null,
"recordings": [],
"meeting_url": {
"platform": "google_meet",
"meeting_id": "zst-ymag-zoa"
},
"status_changes": [
{
"code": "ready",
"message": null,
"sub_code": null,
"created_at": "2024-11-01T11:29:32.364684Z"
}
],
"meeting_metadata": null,
"calendar_meetings": [],
"meeting_participants": []
}
],
"Insert Transcription Part": [
{
"dialog": "[{\"order\": 1, \"words\": \"Wait.\", \"speaker\": \"Mark S.\", \"language\": null, \"speaker_id\": 100}, {\"order\": 2, \"words\": \"A bit.\", \"speaker\": \"Mark S.\", \"language\": null, \"speaker_id\": 100}, {\"order\": 3, \"words\": \"It's not even subtitles and it's not even a real. It's. A Google Meet.\", \"speaker\": \"Mark S.\", \"language\": null, \"speaker_id\": 100}, {\"order\": 4, \"words\": \"Same story. I wasn't prepared. I don't know what to tell you. Maybe my AI body can help me.\", \"speaker\": \"Mark S.\", \"language\": null, \"speaker_id\": 100}, {\"order\": 5, \"words\": \"What truth?\", \"speaker\": \"Mark S.\", \"language\": null, \"speaker_id\": 100}, {\"order\": 6, \"words\": \"You can get the same AI body in one day. Just drop AI in comment and I will. Send you a guide.\", \"speaker\": \"Mark S.\", \"language\": null, \"speaker_id\": 100}, {\"order\": 7, \"words\": \"As it works well.\", \"speaker\": \"Mark S.\", \"language\": \"null\", \"speaker_id\": 100}, {\"order\": 8, \"words\": \"As it works well.\", \"speaker\": \"Mark S.\", \"language\": \"null\", \"speaker_id\": 100}, {\"order\": 9, \"words\": \"As it works well.\", \"speaker\": \"Mark S.\", \"language\": \"null\", \"speaker_id\": 100}, {\"order\": 10, \"words\": \"Let's it works well.\", \"speaker\": \"Mark S.\", \"language\": \"null\", \"speaker_id\": 100}, {\"order\": 11, \"words\": \"Let's it works well.\", \"speaker\": \"Mark S.\", \"language\": \"null\", \"speaker_id\": 100}, {\"order\": 12, \"words\": \"Let's it works well.\", \"speaker\": \"Mark S.\", \"language\": \"null\", \"speaker_id\": 100, \"date_updated\": \"2024-11-22T08:41:24.164+01:00\"}, {\"order\": 13, \"words\": \"Let's it works well.\", \"speaker\": \"Mark S.\", \"language\": \"null\", \"speaker_id\": 100, \"date_updated\": \"2024-11-22T08:50:11.330+01:00\"}]",
"thread_id": "thread_0g7p3iE7MYmDPiUuPiZP5vfR",
"date_updated": "2024-11-22T08:37:55.751+01:00"
}
],
"Scenario 2 Start - Webhook": [
{
"body": {
"data": {
"bot_id": "0032c6e2-78e9-46e7-a2ef-41d7b853ef48",
"transcript": {
"words": [
{
"text": "Let's",
"end_time": 11.88,
"start_time": 11.68
},
{
"text": "it",
"end_time": 12.12,
"start_time": 11.88
},
{
"text": "works",
"end_time": 12.44,
"start_time": 12.12
},
{
"text": "well.",
"end_time": 12.48,
"start_time": 12.44
}
],
"source": "smart_annotator",
"speaker": "Mark S.",
"is_final": true,
"language": null,
"speaker_id": 100,
"original_transcript_id": 32
},
"recording_id": "ee1ad589-39fe-4ed5-b96f-cd14c63f3bc2"
},
"event": "bot.transcription"
},
"query": {},
"params": {},
"headers": {
"host": "n8n.lowcoding.dev",
"accept": "*/*",
"content-type": "application/json",
"content-length": "495",
"accept-encoding": "gzip",
"x-forwarded-for": "52.10.191.34",
"x-forwarded-host": "n8n.lowcoding.dev",
"x-forwarded-proto": "https"
},
"webhookUrl": "https://n8n.lowcoding.dev/webhook/d074ca1e-52f9-47af-8587-8c24d431f9cd",
"executionMode": "production"
}
]
},
"connections": {
"d44489b8-8cb7-4776-8c16-a8bb01e52171": {
"main": [
[]
]
},
"9bcc0605-fc35-4842-a3f4-30ef902f35c1": {
"ai_tool": [
[
{
"node": "d44489b8-8cb7-4776-8c16-a8bb01e52171",
"type": "ai_tool",
"index": 0
}
]
]
},
"107b26af-d1d2-40c7-ad4f-7193d3ae9b70": {
"main": [
[
{
"node": "d44489b8-8cb7-4776-8c16-a8bb01e52171",
"type": "main",
"index": 0
}
]
]
},
"0831c139-ca4b-4b4c-aa7f-7495c4ca0110": {
"main": [
[
{
"node": "e1122b5b-3af5-4836-802c-40c3a0eb3c93",
"type": "main",
"index": 0
}
],
[]
]
},
"784c123d-adbb-4265-9485-2c88dd3091c2": {
"main": [
[]
]
},
"e1122b5b-3af5-4836-802c-40c3a0eb3c93": {
"main": [
[
{
"node": "784c123d-adbb-4265-9485-2c88dd3091c2",
"type": "main",
"index": 0
}
]
]
},
"3425f1c1-ad68-495e-bb9a-95ea92e7cf23": {
"main": [
[
{
"node": "107b26af-d1d2-40c7-ad4f-7193d3ae9b70",
"type": "main",
"index": 0
}
]
]
},
"a4368763-b96e-45e7-884d-aa0cbae2d276": {
"main": [
[
{
"node": "3425f1c1-ad68-495e-bb9a-95ea92e7cf23",
"type": "main",
"index": 0
}
]
]
},
"9a4ff741-ccfd-42e9-883e-43297a73e2c3": {
"main": [
[
{
"node": "0831c139-ca4b-4b4c-aa7f-7495c4ca0110",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 销售, 工程, 人力资源, 产品, 人工智能, 营销
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
AI智能助手:与Supabase存储和Google Drive文件对话
AI智能助手:与Supabase存储和Google Drive文件对话
If
Set
Wait
+
If
Set
Wait
62 节点Mark Shcherbakov
工程
使用 OpenAI、Google Sheets、Jina AI 和 Slack 的 AI 驱动信息监控
基于AI的信息监控,集成OpenAI、Google Sheets、Jina AI和Slack
If
Set
Code
+
If
Set
Code
31 节点Dataki
销售
[模板] AI宠物店 v8
🐶 AI宠物店助手 - 集成GPT-4o、Google日历和WhatsApp/Instagram/Facebook
If
N8n
Set
+
If
N8n
Set
244 节点Amanda Benks
销售
与Supabase存储中文件对话的AI智能体
与Supabase存储中文件对话的AI智能体
If
Merge
Switch
+
If
Merge
Switch
33 节点Mark Shcherbakov
工程
自动化多平台销售代理
使用 RAG、CRM 和支付处理的多平台销售代理
If
Set
Switch
+
If
Set
Switch
83 节点Electrabot
销售
基于视觉的AI代理爬虫 - 使用Google Sheets、ScrapingBee和Gemini
✨ 基于视觉的AI代理爬虫 - 使用Google Sheets、ScrapingBee和Gemini
Set
Markdown
Split Out
+
Set
Markdown
Split Out
29 节点Dataki
销售
工作流信息
难度等级
高级
节点数量19
分类6
节点类型9
作者
Mark Shcherbakov
@lowcodingdevI am a business analyst with a development background, dedicated to helping small businesses and entrepreneurs leverage cloud services for increased efficiency. My expertise lies in automating manual workflows, integrating data from multiple cloud service providers, creating insightful dashboards, and building custom CRM systems.
外部链接
在 n8n.io 查看 →
分享此工作流