Telegramから会議記録を自動のにAirtable、Slack、Gmailへ送信
上級
これはAI Summarization, Multimodal AI分野の自動化ワークフローで、29個のノードを含みます。主にIf, Code, Wait, Gmail, Slackなどのノードを使用。 GPT-4.1を使ってTelegramメッセージから会議記録を作成し、Airtable、Slack、Gmailへ送信する
前提条件
- •Googleアカウント + Gmail API認証情報
- •Slack Bot Token または Webhook URL
- •Airtable API Key
- •Telegram Bot Token
- •OpenAI API Key
使用ノード (29)
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"id": "VbaVgnhJ7phMHTY9",
"meta": {
"instanceId": "18b0d04ad5030054be4ab49562e84ea4a079ab4cb036003697394140227c7e76",
"templateCredsSetupCompleted": true
},
"name": "Automatic meeting records sent from Telegram to Airtable, Slack and Gmail",
"tags": [],
"nodes": [
{
"id": "af08414c-6227-4af0-831a-5832d7a2833c",
"name": "GPT-4 Email Generator Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-560,
1552
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "UaZZMb9MgNQPJ0Sn",
"name": "OpenAi account 2"
}
},
"typeVersion": 1.2
},
{
"id": "98f24854-770a-45c7-b2b4-4be331d64ecc",
"name": "メール送信",
"type": "n8n-nodes-base.gmail",
"position": [
752,
1456
],
"webhookId": "e367edf9-5bc0-474c-9b96-d694a2660ee2",
"parameters": {
"sendTo": "={{ $('Create a record').item.json.fields.Email }}",
"message": "={{ $('Create a record').item.json.fields.Report }}",
"options": {},
"subject": "={{ $('Create a record').item.json.fields.subject }}"
},
"credentials": {
"gmailOAuth2": {
"id": "h1ZY21K9DQNwgOhO",
"name": "GMAIL BAPTISTE FORT"
}
},
"typeVersion": 2.1
},
{
"id": "dfd67f2c-f977-4ef6-98c2-1433eca110dc",
"name": "条件分岐",
"type": "n8n-nodes-base.if",
"position": [
-1888,
1280
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "5c15ee72-c6b1-438e-aa5c-97d268cbb2cb",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{$json.type}}",
"rightValue": "voice"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "118fc989-2485-4e53-b2d3-17dfed0afe2a",
"name": "待機",
"type": "n8n-nodes-base.wait",
"position": [
-1472,
1184
],
"webhookId": "df3b70ed-d349-4901-af35-3e5b4525fa97",
"parameters": {},
"typeVersion": 1.1
},
{
"id": "b1c2fa2b-2d71-40c4-a36f-a086cce865ff",
"name": "Telegramトリガー",
"type": "n8n-nodes-base.telegramTrigger",
"position": [
-2304,
1280
],
"webhookId": "8ad3fa54-7a0b-4af8-a781-bfa13addd189",
"parameters": {
"updates": [
"message"
],
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "hX6Qe2gkicVdj0xP",
"name": "Telegram account 3"
}
},
"typeVersion": 1.2
},
{
"id": "dbc0240b-13ef-49ba-8da4-4677a27b8a0a",
"name": "音声メモ",
"type": "n8n-nodes-base.telegram",
"position": [
-1696,
1184
],
"webhookId": "ed77be89-0c45-4e0c-9fb1-533baaa650a4",
"parameters": {
"fileId": "={{$json.file_id}}",
"resource": "file",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "hX6Qe2gkicVdj0xP",
"name": "Telegram account 3"
}
},
"typeVersion": 1.2
},
{
"id": "5ba230a3-bebe-4ee8-b160-8d0108adb6a8",
"name": "音声メモダウンロード",
"type": "n8n-nodes-base.telegram",
"position": [
-1280,
1184
],
"webhookId": "bce6d473-545e-4411-bd00-4b62e75e2d40",
"parameters": {
"fileId": "={{$json.result.file_id}}",
"resource": "file",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "hX6Qe2gkicVdj0xP",
"name": "Telegram account 3"
}
},
"typeVersion": 1.2
},
{
"id": "8cfbe3e0-aad3-4ca8-95cd-654b9ad29605",
"name": "音声メモの文字起こし",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
-1072,
1184
],
"parameters": {
"options": {},
"resource": "audio",
"operation": "transcribe"
},
"credentials": {
"openAiApi": {
"id": "cfxaRAuEstHmL61i",
"name": "OpenAi account"
}
},
"typeVersion": 1.8
},
{
"id": "0ec4455b-d8c7-433d-abb6-9767fdc0f0b4",
"name": "待機",
"type": "n8n-nodes-base.wait",
"position": [
-880,
1184
],
"webhookId": "4f6a1490-a64f-4176-a342-83ba6accaeb4",
"parameters": {},
"typeVersion": 1.1
},
{
"id": "7b77efa8-1a8b-48f5-a821-e0e7a6d57a41",
"name": "コンテンツ",
"type": "n8n-nodes-base.code",
"position": [
-1696,
1376
],
"parameters": {
"jsCode": "return [{ text: $json.content }]\n"
},
"typeVersion": 2
},
{
"id": "9626d70e-4123-4f13-b77c-dadb936669e5",
"name": "メッセージまたは音声?",
"type": "n8n-nodes-base.code",
"position": [
-2096,
1280
],
"parameters": {
"jsCode": "const updates = $json;\n\nif (updates.message?.text) {\n\treturn [\n\t\t{\n\t\t\tjson: {\n\t\t\t\ttype: \"text\",\n\t\t\t\tcontent: updates.message.text\n\t\t\t}\n\t\t}\n\t];\n}\n\nif (updates.message?.voice) {\n\treturn [\n\t\t{\n\t\t\tjson: {\n\t\t\t\ttype: \"voice\",\n\t\t\t\tfile_id: updates.message.voice.file_id\n\t\t\t}\n\t\t}\n\t];\n}\n\nreturn [];\n"
},
"typeVersion": 2
},
{
"id": "8cbf2f84-adfa-4877-b59d-31dad7a4a23d",
"name": "議事録メッセージ生成",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-480,
1264
],
"parameters": {
"text": "==You are an assistant specialized in writing **meeting minutes to be sent by email**.\n\nFrom the text provided below (coming from a voice note or message): \n\n{{ $json.input.text }}\n\n**Goals:**\n1) **Detect the recipient's email address** in the text (or a similar form like \"send to firstname.lastname\"). \n - If the address is incomplete, complete it with `@gmail.com`. \n - If no address is found, use `contact@gmail.com`.\n\n2) **Understand the meeting context** and extract structured elements: \n - **Title/Topic** (project, client, subject) \n - **Date** (if missing, use today’s date in Europe/Paris timezone) \n - **Participants** (names or roles if mentioned) \n - **Decisions made** \n - **Action items** (with owners + deadlines if available) \n - **Next steps** \n - **Risks / blockers** (if present) \n - **Open questions / follow-ups** (if present)\n\n3) **Generate a clear and informative email subject**, for example: \n - \"Meeting Minutes — {Topic} — {Date}\" \n - \"Summary {Project/Client} — {Date}\"\n\n4) **Write the email body in HTML**, professional and easy to read: \n - Greeting \n - Context reminder (date, topic, participants) \n - Sections with bold titles: Decisions, Action Items (with owners & deadlines), Next Steps, Risks/Blockers, Open Questions/Follow-up \n - Conclusion + invitation to reply if corrections are needed \n - Signature with \"Best regards,\" (do not sign with a specific name)\n\n**Output constraints:** \n- No spelling or grammar mistakes. \n- Always return the result in the **strict JSON format below**, without any text around it:\n\n```json\n{\n \"email\": \"address@gmail.com\",\n \"subject\": \"Email subject\",\n \"body\": \"<p>Email body in HTML</p>\"\n}\n\n{{ $json.input.text }}",
"options": {},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2.1
},
{
"id": "70d6a4e6-3197-4f9b-9fd5-dea831e0dc21",
"name": "レコード作成",
"type": "n8n-nodes-base.airtable",
"position": [
256,
1456
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "app71jEl2tmr4VBrJ",
"cachedResultUrl": "https://airtable.com/app71jEl2tmr4VBrJ",
"cachedResultName": "Call report"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblcHaHToALXG4qjH",
"cachedResultUrl": "https://airtable.com/app71jEl2tmr4VBrJ/tblcHaHToALXG4qjH",
"cachedResultName": "Table 1"
},
"columns": {
"value": {
"Email": "={{ $json.Email }}",
"Report": "={{ $json.Report }}",
"subject": "={{ $json.subject }}"
},
"schema": [
{
"id": "Email",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "subject",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "subject",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Report",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Report",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Date",
"type": "dateTime",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Date",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "create"
},
"credentials": {
"airtableTokenApi": {
"id": "vKZ5Wl43rmNFe0My",
"name": "Airtable Personal Access Token account 3"
}
},
"typeVersion": 2.1
},
{
"id": "bb193e7c-6511-453f-a782-5ab19119d3b7",
"name": "コード",
"type": "n8n-nodes-base.code",
"position": [
16,
1504
],
"parameters": {
"jsCode": "const src = $json.output ?? $json;\nconst email = String(src.email || \"contact@gmail.com\").trim();\nconst subject = String(src.subject || \"Compte rendu de réunion\").trim();\nconst body = String(src.body || \"\").trim();\n\n// Nettoyer le HTML et le transformer en texte lisible\nconst clean = body\n .replace(/<br\\s*\\/?>/gi, \"\\n\")\n .replace(/<\\/p>/gi, \"\\n\\n\")\n .replace(/<\\/?[^>]+(>|$)/g, \"\")\n .trim();\n\nreturn [{\n Email: email,\n subject: subject,\n Report: clean\n}];\n"
},
"typeVersion": 2
},
{
"id": "45d090e1-1ba9-4324-bf34-3f3fe1a1b0a3",
"name": "メッセージ送信",
"type": "n8n-nodes-base.slack",
"position": [
496,
1424
],
"webhookId": "3175a971-3530-4ab8-ab98-e91ea486676b",
"parameters": {
"text": "={{ $json.fields.subject}}\n\n{{ $json.fields.Report }}",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "id",
"value": "=YOUR CHANNEL"
},
"otherOptions": {},
"authentication": "oAuth2"
},
"credentials": {
"slackOAuth2Api": {
"id": "ERqGlDjoRRcGe4Qj",
"name": "Slack account 2"
}
},
"typeVersion": 2.3
},
{
"id": "830ff5e8-0dd7-4167-9878-b0c4826f5b56",
"name": "付箋",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2368,
896
],
"parameters": {
"width": 1792,
"height": 864,
"content": "## Message sent to Telegram as voice note or text? "
},
"typeVersion": 1
},
{
"id": "fbe9a6e9-f37f-4099-9795-320d96bea14d",
"name": "付箋1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2384,
1504
],
"parameters": {
"width": 336,
"height": 288,
"content": "\n"
},
"typeVersion": 1
},
{
"id": "7aa66a3d-6731-4e4f-9145-2ca40b4240d1",
"name": "付箋2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-592,
1072
],
"parameters": {
"color": 2,
"width": 544,
"height": 688,
"content": "## Generate meeting minutes\n- **Node**: Agent (“Generate Meeting Message”) \n- **Prompt**: specialized for “meeting minutes” \n- **Model**: GPT-4.1-mini \n- **Output**: `{ email, subject, body }` \n👉 GPT creates a clean and structured meeting report. "
},
"typeVersion": 1
},
{
"id": "dc3f7261-2467-403a-be7c-11c5b696f209",
"name": "付箋3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-432,
1504
],
"parameters": {
"width": 384,
"height": 256,
"content": "## Enforce clean JSON\n\n- **Node**: Output Parser Structured \n- **JSON Example**: \njson {\"email\": \"address@gmail.com\",\"subject\":\"Subject\",\"body\":Email\"}\n\n👉 Ensures the output is always valid JSON."
},
"typeVersion": 1
},
{
"id": "3901f82e-b400-424a-9a51-bff0212e0a04",
"name": "Enforce Email JSON",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
-176,
1536
],
"parameters": {
"jsonSchemaExample": "{\n \"email\": \"address@gmail.com\",\n \"subject\": \"Email subject\",\n \"body\": \"<p>Email body in HTML</p>\"\n}"
},
"typeVersion": 1.3
},
{
"id": "ab43f248-cef7-4591-8b15-37faa102f8bd",
"name": "付箋4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-48,
1216
],
"parameters": {
"color": 4,
"height": 544,
"content": "## Cleanup / Airtable mapping\n- **Node**: Code \n- **Return**: `{ Email, subject, Report }` \n👉 Prepares the correct fields aligned with your Airtable table. "
},
"typeVersion": 1
},
{
"id": "076f6b32-e788-4bb7-85c4-0afb0caff168",
"name": "付箋5",
"type": "n8n-nodes-base.stickyNote",
"position": [
192,
1136
],
"parameters": {
"color": 6,
"height": 624,
"content": "## Store in Airtable\n- **Node**: Airtable (Create Record) \n- **Mapping**: \n - Email = `{{$json.Email}}` \n - subject = `{{$json.subject}}` \n - Report = `{{$json.Report}}` \n👉 Archives each meeting report in your Airtable base. "
},
"typeVersion": 1
},
{
"id": "e8bd763c-58de-458a-961b-96d66536dff0",
"name": "付箋6",
"type": "n8n-nodes-base.stickyNote",
"position": [
432,
1232
],
"parameters": {
"color": 7,
"height": 528,
"content": "## Notify in Slack\n- **Node**: Slack (Send Message) \n- **Channel**: your team channel \n- **Message**: {{$json.fields.subject}}{{$json.fields.Report}}"
},
"typeVersion": 1
},
{
"id": "3e97aa2f-e270-4896-842d-f0db6bdf713e",
"name": "付箋7",
"type": "n8n-nodes-base.stickyNote",
"position": [
672,
1120
],
"parameters": {
"color": 5,
"height": 640,
"content": "## Send the email\n- **Node**: Gmail (Send Email) \n- **sendTo**: `{{$('Create a record').item.json.fields.Email}}` \n- **subject**: `{{$('Create a record').item.json.fields.subject}}` \n- **message**: `{{$('Create a record').item.json.fields.Report}}` \n👉 Sends the complete meeting minutes to the recipients. "
},
"typeVersion": 1
},
{
"id": "2d6d9fdf-9473-42ea-ab9e-4ac1993e9648",
"name": "付箋8",
"type": "n8n-nodes-base.stickyNote",
"position": [
-592,
912
],
"parameters": {
"color": 2,
"width": 182,
"content": "\n"
},
"typeVersion": 1
},
{
"id": "46a6e02b-bc0e-43fa-925c-7165a0153d42",
"name": "付箋9",
"type": "n8n-nodes-base.stickyNote",
"position": [
192,
1600
],
"parameters": {
"color": 5,
"width": 246,
"content": "\n"
},
"typeVersion": 1
},
{
"id": "3a92f0d9-8221-4c53-931a-0745bd76eef7",
"name": "付箋10",
"type": "n8n-nodes-base.stickyNote",
"position": [
448,
1600
],
"parameters": {
"color": 7,
"width": 198,
"height": 192,
"content": "\n"
},
"typeVersion": 1
},
{
"id": "f934e87f-2486-4701-b3f3-38fd1fa37c2f",
"name": "付箋11",
"type": "n8n-nodes-base.stickyNote",
"position": [
736,
1616
],
"parameters": {
"color": 7,
"width": 150,
"height": 144,
"content": "\n"
},
"typeVersion": 1
},
{
"id": "2f570729-0e5a-4b3a-aaff-4fd182ad5b2f",
"name": "コード構造",
"type": "n8n-nodes-base.code",
"position": [
-768,
1376
],
"parameters": {
"jsCode": "const text = String($json.text || \"\").trim();\nconst lower = text.toLowerCase();\n\n// 1) Direct email in message\nconst emailMatch = text.match(/[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}/i);\nlet email = emailMatch ? emailMatch[0].toLowerCase() : null;\n\n// 2) Extract a domain hint from the message (fallback for building email)\nlet domainHint = null;\nconst domainRegex = /\\b([a-z0-9][a-z0-9-]{0,63}\\.)+[a-z]{2,}\\b/i;\nconst domainMatch = text.match(domainRegex);\nif (domainMatch) {\n const parts = domainMatch[0].toLowerCase().split('.').filter(Boolean);\n if (parts.length >= 2) {\n domainHint = `${parts[parts.length - 2]}.${parts[parts.length - 1]}`;\n }\n}\n\n// 3) If no direct email, try to build one from a \"send to / envoyer à\" style mention\nif (!email) {\n // Capture after signals like \"envoyer à\", \"envoie à\", \"à envoyer à\", \"send to\", \"to\"\n const toCue =\n /(à envoyer à|envoyer à|envoie à|envois à|envoi à|send to|to)\\s+([^\\n,;:]+)/i;\n const labelCue = /(mail|email|courriel|adresse)\\s*[:\\-]\\s*([^\\n,;:]+)/i;\n\n let target = null;\n const m1 = lower.match(toCue);\n const m2 = lower.match(labelCue);\n if (m1 && m1[2]) target = m1[2];\n else if (m2 && m2[2]) target = m2[2];\n\n if (target) {\n target = target\n .replace(/^[«\"'\\(\\[]+|[»\"'\\)\\]]+$/g, \"\") // trim quotes/brackets\n .trim();\n\n // If target already contains an email, use it\n const tEmail = target.match(/[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,}/i);\n if (tEmail) {\n email = tEmail[0].toLowerCase();\n } else {\n // If target looks like \"firstname.lastname\" or \"firstname lastname\", normalize it\n // Remove common filler words\n target = target\n .replace(/\\b(chez|à|au|pour|de|du|la|le|l'|mr|mme|m\\.)\\b/g, \" \")\n .replace(/\\s+/g, \" \")\n .trim();\n\n // Keep only letters, spaces, dots, hyphens, underscores\n target = target.replace(/[^a-zàâäçéèêëîïôöùûüÿ\\s._-]/g, \"\");\n\n // Build local part\n const ascii = target\n .normalize(\"NFD\")\n .replace(/\\p{Diacritic}/gu, \"\")\n .toLowerCase();\n\n // Split by spaces, dots, underscores, hyphens\n const tokens = ascii.split(/[\\s._-]+/).filter(Boolean);\n\n let local = null;\n if (tokens.length >= 2) {\n local = `${tokens[0]}.${tokens[tokens.length - 1]}`;\n } else if (tokens.length === 1) {\n local = tokens[0];\n }\n\n if (local) {\n // If target contains something like \".com\" we treat it as a domain hint\n let domainFromTarget = null;\n const tDomain = target.match(domainRegex);\n if (tDomain) {\n const p = tDomain[0].split(\".\").filter(Boolean);\n if (p.length >= 2)\n domainFromTarget = `${p[p.length - 2]}.${p[p.length - 1]}`.toLowerCase();\n }\n\n const finalDomain = domainFromTarget || domainHint || \"gmail.com\";\n email = `${local}@${finalDomain}`.replace(/\\.{2,}/g, \".\");\n }\n }\n }\n}\n\n// 4) Final fallback\nif (!email) {\n email = \"contact@gmail.com\";\n}\n\n// Preserve your previous outputs too\nlet foundDomain = null;\nif (domainHint) foundDomain = domainHint;\n\nreturn [{\n input: { text },\n email,\n domain: foundDomain,\n domainUrl: foundDomain ? `https://${foundDomain}` : null\n}];\n"
},
"typeVersion": 2
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "f3969a89-1668-4520-9ea6-9d66642ada23",
"connections": {
"dfd67f2c-f977-4ef6-98c2-1433eca110dc": {
"main": [
[
{
"node": "dbc0240b-13ef-49ba-8da4-4677a27b8a0a",
"type": "main",
"index": 0
}
],
[
{
"node": "7b77efa8-1a8b-48f5-a821-e0e7a6d57a41",
"type": "main",
"index": 0
}
]
]
},
"bb193e7c-6511-453f-a782-5ab19119d3b7": {
"main": [
[
{
"node": "70d6a4e6-3197-4f9b-9fd5-dea831e0dc21",
"type": "main",
"index": 0
}
]
]
},
"0ec4455b-d8c7-433d-abb6-9767fdc0f0b4": {
"main": [
[
{
"node": "5ba230a3-bebe-4ee8-b160-8d0108adb6a8",
"type": "main",
"index": 0
}
]
]
},
"7b77efa8-1a8b-48f5-a821-e0e7a6d57a41": {
"main": [
[
{
"node": "2f570729-0e5a-4b3a-aaff-4fd182ad5b2f",
"type": "main",
"index": 0
}
]
]
},
"dbc0240b-13ef-49ba-8da4-4677a27b8a0a": {
"main": [
[
{
"node": "0ec4455b-d8c7-433d-abb6-9767fdc0f0b4",
"type": "main",
"index": 0
}
]
]
},
"2f570729-0e5a-4b3a-aaff-4fd182ad5b2f": {
"main": [
[
{
"node": "8cbf2f84-adfa-4877-b59d-31dad7a4a23d",
"type": "main",
"index": 0
}
]
]
},
"45d090e1-1ba9-4324-bf34-3f3fe1a1b0a3": {
"main": [
[
{
"node": "98f24854-770a-45c7-b2b4-4be331d64ecc",
"type": "main",
"index": 0
}
]
]
},
"70d6a4e6-3197-4f9b-9fd5-dea831e0dc21": {
"main": [
[
{
"node": "45d090e1-1ba9-4324-bf34-3f3fe1a1b0a3",
"type": "main",
"index": 0
}
]
]
},
"b1c2fa2b-2d71-40c4-a36f-a086cce865ff": {
"main": [
[
{
"node": "9626d70e-4123-4f13-b77c-dadb936669e5",
"type": "main",
"index": 0
}
]
]
},
"3901f82e-b400-424a-9a51-bff0212e0a04": {
"ai_outputParser": [
[
{
"node": "8cbf2f84-adfa-4877-b59d-31dad7a4a23d",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"9626d70e-4123-4f13-b77c-dadb936669e5": {
"main": [
[
{
"node": "dfd67f2c-f977-4ef6-98c2-1433eca110dc",
"type": "main",
"index": 0
}
]
]
},
"5ba230a3-bebe-4ee8-b160-8d0108adb6a8": {
"main": [
[
{
"node": "8cfbe3e0-aad3-4ca8-95cd-654b9ad29605",
"type": "main",
"index": 0
}
]
]
},
"8cbf2f84-adfa-4877-b59d-31dad7a4a23d": {
"main": [
[
{
"node": "bb193e7c-6511-453f-a782-5ab19119d3b7",
"type": "main",
"index": 0
}
]
]
},
"af08414c-6227-4af0-831a-5832d7a2833c": {
"ai_languageModel": [
[
{
"node": "8cbf2f84-adfa-4877-b59d-31dad7a4a23d",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"8cfbe3e0-aad3-4ca8-95cd-654b9ad29605": {
"main": [
[
{
"node": "0ec4455b-d8c7-433d-abb6-9767fdc0f0b4",
"type": "main",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
上級 - AI要約, マルチモーダルAI
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
Telegram 音声メッセージからメールを自動生成
Whisper、GPT-4、Gmail を使用して Telegram 音声メッセージをプロフェッショナル エレメンタリーに変換する
Wait
Gmail
Telegram
+
Wait
Gmail
Telegram
11 ノードBaptiste Fort
個人の生産性
完全な B2B セールスフロー:Apollo リード生成、Mailgun 外信、および AI 返信管理
完全なB2Bセールスフロー:Apolloリード生成、Mailgunアウト Reach、AI返信管理
If
Set
Code
+
If
Set
Code
116 ノードPaul
コンテンツ作成
🎧 IT音声サポート自動化ロボット – Telegram音声メッセージをJIRAチケットに変換(OpenAI Whisperを使用)
Telegramの音声メッセージをWhisperとGPT-4.1 Miniを使用してJIRAチケットへの自動変換
If
Set
Code
+
If
Set
Code
25 ノードTrung Tran
チケット管理
GPT-4駆動のカールドメールワークフロー(完全カスタマイズされた3本のメールフォロー付き)
GPT-4、Mailgun、Supabaseを使ってパーソナライズされたラグディ冷信Seriesを自動化
If
Set
Code
+
If
Set
Code
100 ノードPaul
リードナーチャリング
再生リスト詳細設定ボットコピー
Suno、GPT-4、Runway、Creatomate を使って AI 生成の YouTube ミュージックプレイリストを作成
If
Set
Code
+
If
Set
Code
203 ノードJoseph
コンテンツ作成
💥 NanoBanana と Seedance を使ってウイルスの広告を作成し、upload-post でソーシャルメディアに VIDE II を投稿
AI を使ってウイルスのなマルチメディア広告の作成:NanoBanana、Seedance、Suno を使ったソーシャルメディア
If
Set
Code
+
If
Set
Code
45 ノードDr. Firas
その他