{"workflow":{"id":14959,"name":"Track Zoom attendance and create AI summaries with Google Sheets, ClickUp and Telegram","views":0,"recentViews":0,"totalViews":0,"createdAt":"2026-04-09T12:20:29.894Z","description":"## Description\n\nWhen a Zoom meeting ends, this workflow fires automatically — no manual action needed. It classifies every participant as On Time or Late, logs all attendance data to Google Sheets, and sends you one AI-written summary via Telegram. For every late joiner, a ClickUp follow-up task is created automatically so no one slips through the cracks. Built for team leads, trainers, and operations managers who run recurring Zoom meetings.\n\n---\n\n## What This Workflow Does\n\n- **Automatic attendance capture** — Receives the Zoom meeting.ended event via webhook and processes all participant data instantly, with zero manual input\n- **Late participant detection** — Classifies each attendee as Attended or Late based on a configurable join delay threshold (default: 5 minutes)\n- **14-column Google Sheets log** — Saves every participant as one row including join time, leave time, time in meeting, join delay, and status\n- **AI-written Telegram summary** — GPT-4o-mini writes a professional attendance summary and sends it once per meeting directly to the host's Telegram\n- **Automated ClickUp follow-up tasks** — Creates one ClickUp task per late joiner with full meeting context, participant details, and a next-day due date\n- **Clean exit for on-time attendees** — Participants who joined on time bypass the task creation step with no noise or extra actions\n\n---\n\n## Setup Requirements\n\n### Tools and accounts needed\n\n- n8n instance (self-hosted or cloud)\n- Zoom Marketplace account with a Webhook Only App configured\n- Google account with Google Sheets access\n- OpenAI account with API access (GPT-4o-mini)\n- ClickUp account with API access\n- Telegram Bot (via BotFather)\n\n**Estimated Setup Time: 20–30 minutes**\n\n---\n\n## Step-by-Step Setup\n\n1. **Import the workflow** — Open n8n, go to Workflows → Import from JSON, paste the workflow JSON, and verify all nodes are connected.\n\n2. **Configure Zoom Webhook** — In the **1. Webhook — Zoom Meeting Ended** node, copy the webhook URL. Go to your Zoom Marketplace app, open your Webhook Only App, and paste the URL under the `meeting.ended` event subscription.\n\n3. **Set your config values** — Open **2. Set — Config Values** and replace all six placeholders:\n   - `YOUR_TELEGRAM_CHAT_ID` — your Telegram chat ID (get it from @userinfobot)\n   - `YOUR_GOOGLE_SHEET_ID` — the ID from your Google Sheet URL (the long string between `/d/` and `/edit`)\n   - `Attendance Log` — rename if your sheet tab has a different name\n   - `YOUR HOST NAME` — the name that appears in the Telegram summary\n   - `5` — change to your preferred late threshold in minutes\n   - `YOUR_CLICKUP_LIST_ID` — copy from your ClickUp list URL\n\n4. **Connect Google Sheets** — Open **4. Google Sheets — Log Participant Row** and connect your Google Sheets OAuth2 credential. Authenticate via Google when prompted.\n\n5. **Connect OpenAI** — Open **7. OpenAI — GPT-4o-mini Model** and connect your OpenAI API credential. Enter your API key from platform.openai.com.\n\n6. **Connect ClickUp** — Open **9. ClickUp — Create Late Participant Task** and connect your ClickUp API credential. Enter your personal API token from ClickUp Settings → Apps.\n\n7. **Connect Telegram** — Open **12. Telegram — Send Meeting Summary** and connect your Telegram Bot API credential. Enter the token from BotFather.\n\n8. **Activate the workflow** — Toggle the workflow to Active before running your next Zoom meeting.\n\n---\n\n## How It Works (Step by Step)\n\n**Step 1 — Webhook: Zoom Meeting Ended**\nWhen any Zoom meeting ends, Zoom sends a POST request to this webhook. This is the trigger that starts the entire workflow. No polling or manual action is needed — it fires the moment the meeting closes.\n\n**Step 2 — Set: Config Values**\nThis step stores all six configuration values in one place — Telegram chat ID, Google Sheet ID, sheet tab name, host name, late threshold in minutes, and ClickUp list ID. You only set these once, and all downstream steps read from here automatically.\n\n**Step 3 — Code: Extract and Classify Participants**\nThis step reads the full participant list from the Zoom payload. For each person, it calculates how many minutes after the meeting start they joined. If the delay exceeds the threshold, they are marked Late. Everyone else is marked Attended. This step outputs one item per participant — every step after this runs once per person.\n\n**Step 4 — Google Sheets: Log Participant Row**\nEvery participant — regardless of status — is written as one row in your Google Sheet. The row includes 14 columns: meeting ID, topic, host email, date, start time, duration, participant name, email, join time, leave time, time in meeting, join delay in minutes, status, and the timestamp when the row was logged.\n\n**Step 5 — IF: First Row Check**\nThis check gates the Telegram path. Only the first participant item passes through to the summary path (YES). All other participants go to the late-check path (NO). This prevents the host from receiving one Telegram message per attendee.\n\n**Step 6 — AI Agent: Write Telegram Summary**\nUsing GPT-4o-mini, this step generates a concise, plain-text Telegram message for the host. The message covers the meeting topic, date, duration, participant counts, one observation about attendance quality, and one action suggestion. It is capped at 80 words and uses no markdown.\n\n**Step 7 — OpenAI GPT-4o-mini Model**\nThis is the language model powering the AI Agent in Step 6. It runs with a max token limit of 200 and a temperature of 0.4 for consistent, professional output.\n\n**Step 8 — Set: Prepare Telegram Fields**\nReads the AI-generated message and the Telegram chat ID, then packages them into a clean output ready to send.\n\n**Step 9 — Telegram: Send Meeting Summary**\nSends the final AI-written message to the host's Telegram chat. This fires exactly once per meeting — not once per participant.\n\n**Step 10 — IF: Is Participant Late?**\nFor every non-first participant, this check reads their status. If status equals Late (YES), they move to the ClickUp task step. If they joined on time (NO), they exit cleanly through the No Action step.\n\n**Step 11 — ClickUp: Create Late Participant Task**\nCreates one ClickUp task per late participant. The task name includes the participant's name and meeting topic. The task body includes full meeting context, participant details, join time, delay in minutes, time in meeting, and three pre-written action items. Due date is automatically set to the next day.\n\n**Step 12 — Set: No Action Needed**\nOn-time participants exit here with a simple confirmation message. No task is created and no further action is taken.\n\n---\n\n## Key Features\n\n✅ **Zero-click attendance logging** — The workflow fires automatically when Zoom ends; you never need to start it manually\n✅ **Configurable late threshold** — Change one value in the config step to adjust what counts as late for your team\n✅ **One Telegram message per meeting** — The first-row gate ensures the host gets one clean summary, not one message per attendee\n✅ **14-column Google Sheets record** — Every row is complete with time-in-meeting, join delay, and logged-at timestamp for easy reporting\n✅ **Pre-written ClickUp task body** — Late participant tasks include context and three ready-to-act follow-up items out of the box\n✅ **Next-day due date on tasks** — ClickUp tasks are automatically due 24 hours after the meeting ends\n✅ **GPT-4o-mini for cost efficiency** — Telegram summaries use the lightweight model for fast, affordable generation\n\n---\n\n## Customisation Options\n\n**Change the late threshold per meeting type** — In **2. Set — Config Values**, update `lateThresholdMinutes` to a higher value (e.g., 10) for longer or less structured meetings.\n\n**Add email notification for late participants** — After **9. ClickUp — Create Late Participant Task**, connect a Gmail or SMTP node to automatically email the late participant a summary of what they missed.\n\n**Log to multiple sheets by meeting topic** — In **4. Google Sheets — Log Participant Row**, use an expression to dynamically set the sheet tab name based on the meeting topic — one tab per recurring meeting type.\n\n**Add a Slack notification alongside Telegram** — Duplicate **12. Telegram — Send Meeting Summary** and replace it with a Slack node to send the same summary to a team channel in addition to the host's personal Telegram.\n\n**Increase task priority for participants who joined very late** — In **9. ClickUp — Create Late Participant Task**, add an IF check before the task node to set `priority: 1` (urgent) if `joinDelayMin` exceeds 15 minutes.\n\n**Filter out internal test accounts** — Before **3. Code — Extract and Classify Participants**, add a Code node that removes any participants matching test email domains so they don't pollute your sheet or trigger tasks.\n\n---\n\n## Troubleshooting\n\n**Workflow not triggering when the meeting ends:**\n- Confirm the webhook URL from **1. Webhook — Zoom Meeting Ended** is pasted correctly in your Zoom Marketplace app\n- Verify the event subscription is set to `meeting.ended` specifically — not `meeting.ended` with a typo or a different event type\n- Make sure the workflow is activated in n8n before the meeting starts\n\n**Google Sheets rows not appearing:**\n- Check that the Sheet ID in **2. Set — Config Values** is the correct ID from the sheet URL\n- Confirm the sheet tab name matches exactly what is written in `sheetName` — it is case-sensitive\n- Re-authenticate the Google Sheets OAuth2 credential if you recently changed Google account permissions\n\n**Telegram message not sending:**\n- Verify the Telegram chat ID is correct — use @userinfobot in Telegram to retrieve it\n- Confirm the Telegram Bot token in **12. Telegram — Send Meeting Summary** is valid and has not been revoked via BotFather\n- Make sure the bot has been added to the chat and has permission to send messages\n\n**ClickUp tasks not being created:**\n- Check that the ClickUp list ID in **2. Set — Config Values** is the correct list — not a space ID or folder ID\n- Verify the ClickUp API credential is connected and the token has not expired\n- If no participants are late in your test, the task node will not fire — use a threshold of `0` for initial testing\n\n**AI summary is blank or returns an error:**\n- Confirm the OpenAI API key in **7. OpenAI — GPT-4o-mini Model** is valid and has available credits\n- Check that the credential is connected properly in n8n — reconnect and re-enter the key if needed\n\n---\n\n## Support\n\nNeed help setting this up or want a custom version built for your team or agency?\n\n📧 Email:[info@isawow.com](info@isawow.com)\n🌐 Website:[https://isawow.com](https://isawow.com)","workflow":{"meta":{"instanceId":"bc8ca75c203589705ae2e446cad7181d6f2a7cc1766f958ef9f34810e53b8cb2","templateCredsSetupCompleted":true},"nodes":[{"id":"e790d56c-8b02-483b-8015-455c734ab36d","name":"Overview","type":"n8n-nodes-base.stickyNote","position":[-1952,32],"parameters":{"width":556,"height":1124,"content":"## Zoom Attendance Tracker — Google Sheets + ClickUp + Telegram\n\nFor team leads, trainers, and operations managers who run recurring Zoom meetings and want automatic attendance logging with late-participant follow-up. When a Zoom meeting ends, this workflow fires automatically. Every participant is classified as Attended or Late, and each row is logged to Google Sheets. The host gets one AI-written Telegram summary per meeting. For every participant who joined late, a ClickUp follow-up task is created automatically so nothing slips through.\n\n## How it works\n- **1. Webhook — Zoom Meeting Ended** receives the meeting.ended event from Zoom\n- **2. Set — Config Values** stores Telegram chat ID, Sheet ID, host name, late threshold, and ClickUp list ID\n- **3. Code — Extract and Classify Participants** parses all participants and classifies each as Attended or Late based on join delay\n- **4. Google Sheets — Log Participant Row** logs every participant as one row — runs for all items\n- **5. IF — First Row Check** gates the Telegram path — only the first participant item passes\n- **6. AI Agent — Write Telegram Summary** writes a concise meeting summary for the host\n- **12. Telegram — Send Meeting Summary** delivers the summary once per meeting\n- **8. IF — Is Participant Late?** checks each non-first participant for late status\n- **9. ClickUp — Create Late Participant Task** creates a follow-up task for each late joiner\n- **10. Set — No Action Needed** provides a clean exit for on-time participants\n\n## Set up steps\n1. In **2. Set — Config Values** — replace all six values: Telegram chat ID, Google Sheet ID, sheet tab name, host name, late threshold minutes, and ClickUp list ID\n2. In **1. Webhook — Zoom Meeting Ended** — copy the webhook URL and add it in Zoom Marketplace under your Webhook Only App for the meeting.ended event\n3. In **4. Google Sheets — Log Participant Row** — connect your Google Sheets OAuth2 credential\n4. In **7. OpenAI — GPT-4o-mini Model** — connect your OpenAI credential\n5. In **9. ClickUp — Create Late Participant Task** — connect your ClickUp API credential\n6. In **12. Telegram — Send Meeting Summary** — connect your Telegram Bot API credential\n7. Activate the workflow before running your next Zoom meeting"},"typeVersion":1},{"id":"d1b80950-ebdf-45b2-b6e5-c420cc90b22d","name":"Section — Webhook and Config","type":"n8n-nodes-base.stickyNote","position":[-1344,288],"parameters":{"color":5,"width":436,"height":356,"content":"## Webhook and Config\nZoom sends a POST request here when any meeting ends. Config stores Telegram chat ID, Sheet ID, host name, late threshold in minutes, and ClickUp list ID — all set once here."},"typeVersion":1},{"id":"e968d982-3f6c-435f-aa94-01b8b4b8b3b9","name":"Section — Participant Extraction","type":"n8n-nodes-base.stickyNote","position":[-880,288],"parameters":{"color":6,"width":352,"height":356,"content":"## Participant Extraction\nParses all participants from the Zoom payload. Classifies each as Attended or Late based on join delay vs the threshold. Outputs one item per participant — every downstream node runs once per person."},"typeVersion":1},{"id":"a3eaf482-120a-491a-96a5-46493f47fcb1","name":"Section — Sheet Logging","type":"n8n-nodes-base.stickyNote","position":[-384,-48],"parameters":{"color":4,"height":388,"content":"## Sheet Logging\nLogs every participant as one row — runs for all items regardless of status. No condition. 14-column record per person."},"typeVersion":1},{"id":"27edc4bc-4669-4efb-bd57-5aa49fa51e77","name":"Section — First Row Gate","type":"n8n-nodes-base.stickyNote","position":[-464,384],"parameters":{"color":6,"width":288,"height":420,"content":"## First Row Gate\nPasses only the first participant item (isFirstRow = true) to the Telegram path. Prevents the host from receiving one message per participant."},"typeVersion":1},{"id":"bb6944ec-b0dd-4d52-a3d2-f8436a404fe9","name":"Section — Telegram Summary","type":"n8n-nodes-base.stickyNote","position":[16,208],"parameters":{"color":6,"width":788,"height":516,"content":"## Telegram Summary\nGPT-4o-mini writes a concise host-facing meeting summary covering topic, attendance counts, one observation, and one action tip. Fires exactly once per meeting via Telegram."},"typeVersion":1},{"id":"fb127160-98c6-4450-ace1-fad021360e86","name":"Section — Late Participant Actions","type":"n8n-nodes-base.stickyNote","position":[32,800],"parameters":{"color":4,"width":532,"height":564,"content":"## Late Participant Actions\nFor each non-first participant, checks if status is Late. Late joiners trigger a ClickUp follow-up task with full meeting context and a next-day due date. On-time participants exit cleanly."},"typeVersion":1},{"id":"a6732b48-b745-4998-a138-f8028165be4d","name":"1. Webhook — Zoom Meeting Ended","type":"n8n-nodes-base.webhook","position":[-1296,464],"webhookId":"zoom-attendance-tracker-001","parameters":{"path":"zoom-meeting-ended","options":{},"httpMethod":"POST"},"typeVersion":1.1},{"id":"038ad51e-f770-4506-85e8-d424743a6f4c","name":"2. Set — Config Values","type":"n8n-nodes-base.set","position":[-1072,464],"parameters":{"options":{},"assignments":{"assignments":[{"id":"cfg-001","name":"telegramChatId","type":"string","value":"YOUR_TELEGRAM_CHAT_ID"},{"id":"cfg-002","name":"sheetId","type":"string","value":"YOUR_GOOGLE_SHEET_ID"},{"id":"cfg-003","name":"sheetName","type":"string","value":"Attendance Log"},{"id":"cfg-004","name":"hostName","type":"string","value":"YOUR HOST NAME"},{"id":"cfg-005","name":"lateThresholdMinutes","type":"string","value":"5"},{"id":"cfg-006","name":"clickupListId","type":"string","value":"YOUR_CLICKUP_LIST_ID"}]}},"typeVersion":3.4},{"id":"7237e5c2-e629-42e8-b42e-2e3b65679d2e","name":"3. Code — Extract and Classify Participants","type":"n8n-nodes-base.code","position":[-752,464],"parameters":{"jsCode":"const body = $input.first().json;\nconst config = $('2. Set — Config Values').item.json;\n\nconst payload = body.payload || body;\nconst obj = payload.object || {};\n\nconst meetingId = obj.id || obj.meeting_id || 'unknown';\nconst topic = obj.topic || 'Untitled Meeting';\nconst hostEmail = obj.host_email || payload.host_email || 'unknown';\nconst hostName = config.hostName || hostEmail;\nconst startTime = obj.start_time || new Date().toISOString();\nconst durationMinutes = obj.duration || 0;\nconst participants = obj.participants || [];\n\nconst meetingStart = new Date(startTime);\nconst lateThreshold = parseInt(config.lateThresholdMinutes) || 5;\n\nconst attendanceRows = [];\nlet attendedCount = 0;\nlet lateCount = 0;\n\nparticipants.forEach(p => {\n  const name = p.user_name || p.name || 'Unknown';\n  const email = p.user_email || p.email || 'No email';\n  const joinTime = p.join_time ? new Date(p.join_time) : null;\n  const leaveTime = p.leave_time ? new Date(p.leave_time) : null;\n  const stayDuration = p.duration || 0;\n\n  let joinDelayMin = 0;\n  let status = 'Attended';\n\n  if (joinTime) {\n    joinDelayMin = Math.round((joinTime - meetingStart) / 60000);\n    if (joinDelayMin > lateThreshold) {\n      status = 'Late';\n      lateCount++;\n    } else {\n      attendedCount++;\n    }\n  } else {\n    status = 'Attended';\n    attendedCount++;\n  }\n\n  const stayMinutes = Math.round(stayDuration / 60);\n  const joinTimeStr = joinTime ? joinTime.toISOString().replace('T',' ').substring(0,16) : 'N/A';\n  const leaveTimeStr = leaveTime ? leaveTime.toISOString().replace('T',' ').substring(0,16) : 'N/A';\n\n  attendanceRows.push({\n    meetingId,\n    meetingTopic: topic,\n    hostEmail,\n    meetingDate: meetingStart.toISOString().split('T')[0],\n    meetingStartTime: meetingStart.toISOString().replace('T',' ').substring(0,16),\n    meetingDurationMin: durationMinutes,\n    participantName: name,\n    participantEmail: email,\n    joinTime: joinTimeStr,\n    leaveTime: leaveTimeStr,\n    stayDuration: `${stayMinutes} min`,\n    joinDelayMin: joinDelayMin,\n    status: status,\n    loggedAt: new Date().toISOString().replace('T',' ').substring(0,16)\n  });\n});\n\nconst totalParticipants = participants.length;\n\nreturn attendanceRows.map((row, index) => ({\n  json: {\n    ...row,\n    isFirstRow: index === 0,\n    totalParticipants,\n    attendedCount,\n    lateCount,\n    topic,\n    meetingId,\n    hostName,\n    hostEmail,\n    telegramChatId: config.telegramChatId,\n    sheetId: config.sheetId,\n    sheetName: config.sheetName,\n    clickupListId: config.clickupListId,\n    meetingDurationMin: durationMinutes,\n    meetingDate: meetingStart.toISOString().split('T')[0],\n    lateThresholdMinutes: config.lateThresholdMinutes\n  }\n}));"},"typeVersion":2},{"id":"910395bd-3476-43bc-9356-7b9b9994c85b","name":"4. Google Sheets — Log Participant Row","type":"n8n-nodes-base.googleSheets","position":[-320,128],"parameters":{"columns":{"value":{"Status":"={{ $json.status }}","Join Time":"={{ $json.joinTime }}","Logged At":"={{ $json.loggedAt }}","Host Email":"={{ $json.hostEmail }}","Leave Time":"={{ $json.leaveTime }}","Meeting ID":"={{ $json.meetingId }}","Meeting Date":"={{ $json.meetingDate }}","Meeting Topic":"={{ $json.meetingTopic }}","Time in Meeting":"={{ $json.stayDuration }}","Join Delay (min)":"={{ $json.joinDelayMin }}","Participant Name":"={{ $json.participantName }}","Participant Email":"={{ $json.participantEmail }}","Meeting Start Time":"={{ $json.meetingStartTime }}","Meeting Duration (min)":"={{ $json.meetingDurationMin }}"},"mappingMode":"defineBelow"},"options":{"cellFormat":"USER_ENTERED"},"operation":"append","sheetName":{"__rl":true,"mode":"name","value":"={{ $json.sheetName }}"},"documentId":{"__rl":true,"mode":"id","value":"={{ $json.sheetId }}"}},"typeVersion":4.5},{"id":"1122ac71-d786-4c9c-9ae6-4fe818704c7b","name":"5. IF — First Row Check","type":"n8n-nodes-base.if","position":[-400,576],"parameters":{"options":{},"conditions":{"options":{"leftValue":"","caseSensitive":false,"typeValidation":"loose"},"combinator":"and","conditions":[{"id":"cond-001","operator":{"type":"boolean","operation":"true"},"leftValue":"={{ $json.isFirstRow }}","rightValue":true}]}},"typeVersion":2.2},{"id":"eb000ad3-cd34-45a8-8ffe-45f4cba5fd77","name":"6. AI Agent — Write Telegram Summary","type":"@n8n/n8n-nodes-langchain.agent","position":[96,368],"parameters":{"text":"=You are an assistant that writes short, professional meeting attendance summaries for a team host.\n\nMEETING DETAILS:\nTopic: {{ $json.topic }}\nMeeting ID: {{ $json.meetingId }}\nHost: {{ $json.hostName }}\nDate: {{ $json.meetingDate }}\nDuration: {{ $json.meetingDurationMin }} minutes\nTotal Participants Who Joined: {{ $json.totalParticipants }}\nJoined On Time: {{ $json.attendedCount }}\nJoined Late (after {{ $json.lateThresholdMinutes }} min): {{ $json.lateCount }}\n\nWrite a short Telegram notification message for the host. Follow this format exactly:\n\nLine 1: Meeting just ended — state the topic name\nLine 2: Blank line\nLine 3: Date and duration\nLine 4: Total participants count\nLine 5: On-time count\nLine 6: Late arrivals count\nLine 7: Blank line\nLine 8: One sentence observation — was attendance good or poor, anything notable\nLine 9: One short action suggestion for the host based on attendance numbers\nLine 10: Blank line\nLine 11: End with: Full attendance log saved to Google Sheets.\n\nRULES:\n- Plain text only. No markdown. No asterisks.\n- Maximum 80 words total.\n- Be direct and professional.","options":{},"promptType":"define"},"typeVersion":1.7},{"id":"42d9ef24-c11b-4c28-8ae6-ad8cc09553ab","name":"7. OpenAI — GPT-4o-mini Model","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[96,560],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-4o-mini"},"options":{"maxTokens":200,"temperature":0.4}},"typeVersion":1.2},{"id":"3b620667-b1b3-4362-be43-aa7461fa2745","name":"8. IF — Is Participant Late?","type":"n8n-nodes-base.if","position":[80,1040],"parameters":{"options":{},"conditions":{"options":{"leftValue":"","caseSensitive":false,"typeValidation":"loose"},"combinator":"and","conditions":[{"id":"cond-late-001","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.status }}","rightValue":"Late"}]}},"typeVersion":2.2},{"id":"6e2fad45-d8e1-4370-b557-f4a7ff64fc8f","name":"9. ClickUp — Create Late Participant Task","type":"n8n-nodes-base.clickUp","position":[352,928],"parameters":{"list":"={{ $json.clickupListId }}","name":"=Follow-Up: {{ $json.participantName }} joined late — {{ $json.meetingTopic }}","authentication":"oAuth2","additionalFields":{"content":"=LATE PARTICIPANT FOLLOW-UP\n\nMeeting: {{ $json.meetingTopic }}\nMeeting ID: {{ $json.meetingId }}\nDate: {{ $json.meetingDate }}\n\nParticipant: {{ $json.participantName }}\nEmail: {{ $json.participantEmail }}\nJoined: {{ $json.joinTime }} ({{ $json.joinDelayMin }} minutes late)\nLeft: {{ $json.leaveTime }}\nTime in Meeting: {{ $json.stayDuration }}\n\nACTION REQUIRED:\n- Check if participant missed any key decisions\n- Send them the meeting recording or notes if needed\n- Confirm they received all action items assigned to them\n\nAuto-created by n8n Zoom Attendance Tracker","dueDate":"={{ $now.plus({days: 1}).toMillis() }}","priority":3}},"typeVersion":1},{"id":"fa7a1da4-7cb9-43fa-9e9c-f56cb465443d","name":"10. Set — No Action Needed","type":"n8n-nodes-base.set","position":[352,1152],"parameters":{"options":{},"assignments":{"assignments":[{"id":"noaction-001","name":"result","type":"string","value":"=Participant {{ $json.participantName }} attended on time. No follow-up needed."},{"id":"noaction-002","name":"participantName","type":"string","value":"={{ $json.participantName }}"},{"id":"noaction-003","name":"status","type":"string","value":"={{ $json.status }}"}]}},"typeVersion":3.4},{"id":"211cb559-1dc0-4389-ba37-1902b0d10907","name":"11. Set — Prepare Telegram Fields","type":"n8n-nodes-base.set","position":[352,368],"parameters":{"options":{},"assignments":{"assignments":[{"id":"tg-001","name":"telegramMessage","type":"string","value":"={{ $json.output || 'Attendance logged. Check Google Sheets for full report.' }}"},{"id":"tg-002","name":"telegramChatId","type":"string","value":"={{ $('3. Code — Extract and Classify Participants').first().json.telegramChatId }}"}]}},"typeVersion":3.4},{"id":"743f9300-7e64-44f9-8149-c50f84e61522","name":"12. Telegram — Send Meeting Summary","type":"n8n-nodes-base.telegram","position":[592,368],"webhookId":"b2646180-aee7-4ef4-83f6-8723ae8c42fa","parameters":{"text":"={{ $json.telegramMessage }}","chatId":"={{ $json.telegramChatId }}","additionalFields":{"appendAttribution":false}},"typeVersion":1.2}],"pinData":{},"connections":{"2. Set — Config Values":{"main":[[{"node":"3. Code — Extract and Classify Participants","type":"main","index":0}]]},"5. IF — First Row Check":{"main":[[{"node":"6. AI Agent — Write Telegram Summary","type":"main","index":0}],[{"node":"8. IF — Is Participant Late?","type":"main","index":0}]]},"8. IF — Is Participant Late?":{"main":[[{"node":"9. ClickUp — Create Late Participant Task","type":"main","index":0}],[{"node":"10. Set — No Action Needed","type":"main","index":0}]]},"7. OpenAI — GPT-4o-mini Model":{"ai_languageModel":[[{"node":"6. AI Agent — Write Telegram Summary","type":"ai_languageModel","index":0}]]},"1. Webhook — Zoom Meeting Ended":{"main":[[{"node":"2. Set — Config Values","type":"main","index":0}]]},"11. Set — Prepare Telegram Fields":{"main":[[{"node":"12. Telegram — Send Meeting Summary","type":"main","index":0}]]},"6. AI Agent — Write Telegram Summary":{"main":[[{"node":"11. Set — Prepare Telegram Fields","type":"main","index":0}]]},"3. Code — Extract and Classify Participants":{"main":[[{"node":"4. Google Sheets — Log Participant Row","type":"main","index":0},{"node":"5. IF — First Row Check","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":19,"nodeTypes":{"n8n-nodes-base.if":{"count":2},"n8n-nodes-base.set":{"count":3},"n8n-nodes-base.code":{"count":1},"n8n-nodes-base.clickUp":{"count":1},"n8n-nodes-base.webhook":{"count":1},"n8n-nodes-base.telegram":{"count":1},"n8n-nodes-base.stickyNote":{"count":7},"n8n-nodes-base.googleSheets":{"count":1},"@n8n/n8n-nodes-langchain.agent":{"count":1},"@n8n/n8n-nodes-langchain.lmChatOpenAi":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"isaWOW","username":"isawow","bio":"","verified":true,"links":[""],"avatar":"https://gravatar.com/avatar/8e8c1f17a2be80c0d1b0248585660dff3062cefeda523bbafeafcdb813f52ffa?r=pg&d=retro&size=200"},"nodes":[{"id":18,"icon":"file:googleSheets.svg","name":"n8n-nodes-base.googleSheets","codex":{"data":{"alias":["CSV","Sheet","Spreadsheet","GS"],"resources":{"generic":[{"url":"https://n8n.io/blog/love-at-first-sight-ricardos-n8n-journey/","icon":"❤️","label":"Love at first sight: Ricardo’s n8n journey"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/creating-triggers-for-n8n-workflows-using-polling/","icon":"⏲","label":"Creating triggers for n8n workflows using polling"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/your-business-doesnt-need-you-to-operate/","icon":" 🖥️","label":"Hey founders! Your business doesn't need you to operate"},{"url":"https://n8n.io/blog/how-honest-burgers-use-automation-to-save-100k-per-year/","icon":"🍔","label":"How Honest Burgers Use Automation to Save $100k per year"},{"url":"https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/","icon":"💻","label":"How a digital strategist uses n8n for online marketing"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Data & Storage","Productivity"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\",\"output\"]","defaults":{"name":"Google Sheets"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNS42OSAxIDUyIDE3LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0OC4yOTMgNjBIMTIuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDkgNTYuMzEyVjQuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTIuNzA3IDF6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM1LjY5IDEgNTIgMTcuMjI1SDM5LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzkuMjExIDE3LjIyNSA1MiAyMi40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTIwLjEyIDMxLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMS42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzEuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNC42OSAwIDUxIDE2LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0Ny4yOTMgNTlIMTEuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDggNTUuMzEyVjMuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTEuNzA3IDB6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM0LjY5IDAgNTEgMTYuMjI1SDM4LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzguMjExIDE2LjIyNSA1MSAyMS40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE5LjEyIDMwLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMC42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzAuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjwvZz48L3N2Zz4="},"displayName":"Google Sheets","typeVersion":5,"nodeCategories":[{"id":3,"name":"Data & Storage"},{"id":4,"name":"Productivity"}]},{"id":20,"icon":"fa:map-signs","name":"n8n-nodes-base.if","codex":{"data":{"alias":["Router","Filter","Condition","Logic","Boolean","Branch"],"details":"The IF node can be used to implement binary conditional logic in your workflow. You can set up one-to-many conditions to evaluate each item of data being inputted into the node. That data will either evaluate to TRUE or FALSE and route out of the node accordingly.\n\nThis node has multiple types of conditions: Bool, String, Number, and Date & Time.","resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/","icon":"🤬","label":"Create a toxic language detector for Telegram in 4 step"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.if/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"If","color":"#408000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"If","typeVersion":2,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":38,"icon":"fa:pen","name":"n8n-nodes-base.set","codex":{"data":{"alias":["Set","JS","JSON","Filter","Transform","Map"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/","icon":"📡","label":"Database Monitoring and Alerting with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"input\"]","defaults":{"name":"Edit Fields"},"iconData":{"icon":"pen","type":"icon"},"displayName":"Edit Fields (Set)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":47,"icon":"file:webhook.svg","name":"n8n-nodes-base.webhook","codex":{"data":{"alias":["HTTP","API","Build","WH"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/","icon":"💻","label":"How a digital strategist uses n8n for online marketing"},{"url":"https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"url":"https://n8n.io/blog/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/","icon":"👏","label":"How to automatically give kudos to contributors with GitHub, Slack, and n8n"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/creating-custom-incident-response-workflows-with-n8n/","label":"How to automate every step of an incident response workflow"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"trigger\"]","defaults":{"name":"Webhook"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"},"displayName":"Webhook","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":49,"icon":"file:telegram.svg","name":"n8n-nodes-base.telegram","codex":{"data":{"alias":["human","form","wait","hitl","approval"],"resources":{"generic":[{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/","icon":"🤬","label":"Create a toxic language detector for Telegram in 4 step"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"url":"https://n8n.io/blog/using-automation-to-boost-productivity-in-the-workplace/","icon":"💪","label":"Using Automation to Boost Productivity in the Workplace"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"url":"https://n8n.io/blog/creating-telegram-bots-with-n8n-a-no-code-platform/","icon":"💬","label":"Creating Telegram Bots with n8n, a No-Code Platform"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.telegram/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/telegram/"}]},"categories":["Communication","HITL"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"HITL":["Human in the Loop"]}}},"group":"[\"output\"]","defaults":{"name":"Telegram"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgNjYgNjYiPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9ImEiIG92ZXJmbG93PSJ2aXNpYmxlIj48ZyBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0ibm9uZSI+PHBhdGggZmlsbD0iIzM3YWVlMiIgZD0iTTAgMzJjMCAxNy42NzMgMTQuMzI3IDMyIDMyIDMyczMyLTE0LjMyNyAzMi0zMlM0OS42NzMgMCAzMiAwIDAgMTQuMzI3IDAgMzIiLz48cGF0aCBmaWxsPSIjYzhkYWVhIiBkPSJtMjEuNjYxIDM0LjMzOCAzLjc5NyAxMC41MDhzLjQ3NS45ODMuOTgzLjk4MyA4LjA2OC03Ljg2NCA4LjA2OC03Ljg2NGw4LjQwNy0xNi4yMzctMjEuMTE5IDkuODk4eiIvPjxwYXRoIGZpbGw9IiNhOWM2ZDgiIGQ9Im0yNi42OTUgMzcuMDM0LS43MjkgNy43NDZzLS4zMDUgMi4zNzMgMi4wNjggMGw0LjY0NC00LjIwMyIvPjxwYXRoIGQ9Im0yMS43MyAzNC43MTItNy44MDktMi41NDVzLS45MzItLjM3OC0uNjMzLTEuMjM3Yy4wNjItLjE3Ny4xODYtLjMyOC41NTktLjU4OCAxLjczMS0xLjIwNiAzMi4wMjgtMTIuMDk2IDMyLjAyOC0xMi4wOTZzLjg1Ni0uMjg4IDEuMzYxLS4wOTdjLjIzMS4wODguMzc4LjE4Ny41MDMuNTQ4LjA0NS4xMzIuMDcxLjQxMS4wNjguNjg5LS4wMDMuMjAxLS4wMjcuMzg2LS4wNDUuNjc4LS4xODQgMi45NzgtNS43MDYgMjUuMTk4LTUuNzA2IDI1LjE5OHMtLjMzIDEuMy0xLjUxNCAxLjM0NWMtLjQzMi4wMTYtLjk1Ni0uMDcxLTEuNTgyLS42MS0yLjMyMy0xLjk5OC0xMC4zNTItNy4zOTQtMTIuMTI2LTguNThhLjM0LjM0IDAgMCAxLS4xNDYtLjIzOWMtLjAyNS0uMTI1LjEwOC0uMjguMTA4LS4yOHMxMy45OC0xMi40MjcgMTQuMzUyLTEzLjczMWMuMDI5LS4xMDEtLjA3OS0uMTUxLS4yMjYtLjEwNy0uOTI5LjM0Mi0xNy4wMjUgMTAuNTA2LTE4LjgwMSAxMS42MjktLjEwNC4wNjYtLjM5NS4wMjMtLjM5NS4wMjMiLz48L2c+PC9zeW1ib2w+PC9zdmc+"},"displayName":"Telegram","typeVersion":1,"nodeCategories":[{"id":6,"name":"Communication"},{"id":28,"name":"HITL"}]},{"id":129,"icon":"file:clickup.svg","name":"n8n-nodes-base.clickUp","codex":{"data":{"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.clickup/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/clickup/"}]},"categories":["Productivity","Communication"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"output\"]","defaults":{"name":"ClickUp"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0xMCAwIDE1NSAxNTUiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgeDE9IjAlIiB5MT0iNjguMDElIiB5Mj0iNjguMDElIj48c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjODkzMEZEIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjNDlDQ0Y5Ii8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9ImIiIHgxPSIwJSIgeTE9IjY4LjAxJSIgeTI9IjY4LjAxJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI0ZGMDJGMCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI0ZGQzgwMCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxnIGZpbGw9Im5vbmUiPjxwYXRoIGZpbGw9InVybCgjYSkiIGQ9Im0uNCAxMTkuMTIgMjMuODEtMTguMjRDMzYuODYgMTE3LjM5IDUwLjMgMTI1IDY1LjI2IDEyNWMxNC44OCAwIDI3Ljk0LTcuNTIgNDAuMDItMjMuOWwyNC4xNSAxNy44QzExMiAxNDIuNTIgOTAuMzQgMTU1IDY1LjI2IDE1NWMtMjUgMC00Ni44Ny0xMi40LTY0Ljg2LTM1Ljg4Ii8+PHBhdGggZmlsbD0idXJsKCNiKSIgZD0iTTY1LjE4IDM5Ljg0IDIyLjggNzYuMzYgMy4yMSA1My42NCA2NS4yNy4xNmw2MS41NyA1My41Mi0xOS42OCAyMi42NHoiLz48L2c+PC9zdmc+"},"displayName":"ClickUp","typeVersion":1,"nodeCategories":[{"id":4,"name":"Productivity"},{"id":6,"name":"Communication"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":834,"icon":"file:code.svg","name":"n8n-nodes-base.code","codex":{"data":{"alias":["cpde","Javascript","JS","Python","Script","Custom Code","Function"],"details":"The Code node allows you to execute JavaScript in your workflow.","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Code"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Code","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":1119,"icon":"fa:robot","name":"@n8n/n8n-nodes-langchain.agent","codex":{"data":{"alias":["LangChain","Chat","Conversational","Plan and Execute","ReAct","Tools"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Agents","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"AI Agent","color":"#404040"},"iconData":{"icon":"robot","type":"icon"},"displayName":"AI Agent","typeVersion":3,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1153,"icon":"file:openAiLight.svg","name":"@n8n/n8n-nodes-langchain.lmChatOpenAi","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]}}},"group":"[\"transform\"]","defaults":{"name":"OpenAI Chat Model"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTM2Ljg2NzEgMTYuMzcxOEMzNy43NzQ2IDEzLjY0OCAzNy40NjIxIDEwLjY2NDIgMzYuMDEwOCA4LjE4NjYxQzMzLjgyODIgNC4zODY1MyAyOS40NDA3IDIuNDMxNDkgMjUuMTU1NiAzLjM1MTUxQzIzLjI0OTMgMS4yMDM5NiAyMC41MTA1IC0wLjAxNzMxNDggMTcuNjM5MiAwLjAwMDE4NTUzM0MxMy4yNTkxIC0wLjAwOTgxNDY4IDkuMzcyNzMgMi44MTAyNSA4LjAyNTIgNi45Nzc4M0M1LjIxMTM5IDcuNTU0MSAyLjc4MjU4IDkuMzE1MzggMS4zNjEzIDExLjgxMTdDLTAuODM3NDkzIDE1LjYwMTggLTAuMzM2MjMyIDIwLjM3OTQgMi42MDEzMyAyMy42Mjk0QzEuNjkzODEgMjYuMzUzMiAyLjAwNjMyIDI5LjMzNzEgMy40NTc2IDMxLjgxNDZDNS42NDAxNSAzNS42MTQ3IDEwLjAyNzcgMzcuNTY5NyAxNC4zMTI4IDM2LjY0OTdDMTYuMjE3OSAzOC43OTczIDE4Ljk1NzkgNDAuMDE4NSAyMS44MjkyIDM5Ljk5OThDMjYuMjExOCA0MC4wMTEgMzAuMDk5NCAzNy4xODg1IDMxLjQ0NjkgMzMuMDE3MUMzNC4yNjA4IDMyLjQ0MDkgMzYuNjg5NiAzMC42Nzk2IDM4LjExMDggMjguMTgzM0M0MC4zMDcxIDI0LjM5MzIgMzkuODA0NiAxOS42MTk0IDM2Ljg2ODMgMTYuMzY5M0wzNi44NjcxIDE2LjM3MThaTTIxLjgzMTcgMzcuMzg2QzIwLjA3OCAzNy4zODg1IDE4LjM3OTIgMzYuNzc0NyAxNy4wMzI5IDM1LjY1MDlDMTcuMDk0MSAzNS42MTg0IDE3LjIwMDQgMzUuNTU5NyAxNy4yNjkxIDM1LjUxNzJMMjUuMjM0MyAzMC45MTcxQzI1LjY0MTggMzAuNjg1OCAyNS44OTE4IDMwLjI1MjEgMjUuODg5MyAyOS43ODMzVjE4LjU1NDNMMjkuMjU1NyAyMC40OTgxQzI5LjI5MTkgMjAuNTE1NiAyOS4zMTU3IDIwLjU1MDYgMjkuMzIwNyAyMC41OTA2VjI5Ljg4OTZDMjkuMzE1NyAzNC4wMjQ3IDI1Ljk2NjggMzcuMzc3MiAyMS44MzE3IDM3LjM4NlpNNS43MjY0IDMwLjUwNzFDNC44NDc2MyAyOC45ODk2IDQuNTMxMzcgMjcuMjEwOCA0LjgzMjYzIDI1LjQ4NDVDNC44OTEzOCAyNS41MTk1IDQuOTk1MTMgMjUuNTgzMiA1LjA2ODg4IDI1LjYyNTdMMTMuMDM0MSAzMC4yMjU4QzEzLjQzNzggMzAuNDYyMSAxMy45Mzc4IDMwLjQ2MjEgMTQuMzQyOCAzMC4yMjU4TDI0LjA2NjggMjQuNjEwN1YyOC40OTgzQzI0LjA2OTMgMjguNTM4MyAyNC4wNTA1IDI4LjU3NyAyNC4wMTkzIDI4LjYwMkwxNS45Njc5IDMzLjI1MDlDMTIuMzgxNSAzNS4zMTU5IDcuODAxNDQgMzQuMDg4NCA1LjcyNzY1IDMwLjUwNzFINS43MjY0Wk0zLjYzMDEgMTMuMTIwNUM0LjUwNTEyIDExLjYwMDQgNS44ODY0IDEwLjQzNzkgNy41MzE0NCA5LjgzNDE1QzcuNTMxNDQgOS45MDI5IDcuNTI3NjkgMTAuMDI0MiA3LjUyNzY5IDEwLjEwOTJWMTkuMzEwNkM3LjUyNTE5IDE5Ljc3ODEgNy43NzUxOSAyMC4yMTE5IDguMTgxNDUgMjAuNDQzMUwxNy45MDU0IDI2LjA1N0wxNC41MzkxIDI4LjAwMDhDMTQuNTA1MyAyOC4wMjMzIDE0LjQ2MjggMjguMDI3IDE0LjQyNTMgMjguMDEwOEw2LjM3MjY2IDIzLjM1ODJDMi43OTM4MyAyMS4yODU2IDEuNTY2MzEgMTYuNzA2OCAzLjYyODg1IDEzLjEyMTdMMy42MzAxIDEzLjEyMDVaTTMxLjI4ODIgMTkuNTU2OUwyMS41NjQyIDEzLjk0MTdMMjQuOTMwNiAxMS45OTkyQzI0Ljk2NDMgMTEuOTc2NyAyNS4wMDY4IDExLjk3MjkgMjUuMDQ0MyAxMS45ODkyTDMzLjA5NyAxNi42MzhDMzYuNjgyMSAxOC43MDkzIDM3LjkxMDggMjMuMjk1NyAzNS44Mzk1IDI2Ljg4MDhDMzQuOTYzMyAyOC4zOTgzIDMzLjU4MzIgMjkuNTYwOCAzMS45Mzk1IDMwLjE2NThWMjAuNjg5NEMzMS45NDMyIDIwLjIyMTkgMzEuNjk0NSAxOS43ODk0IDMxLjI4OTQgMTkuNTU2OUgzMS4yODgyWk0zNC42MzgzIDE0LjUxNDJDMzQuNTc5NSAxNC40NzggMzQuNDc1OCAxNC40MTU1IDM0LjQwMiAxNC4zNzNMMjYuNDM2OCA5Ljc3Mjg5QzI2LjAzMzEgOS41MzY2NCAyNS41MzMxIDkuNTM2NjQgMjUuMTI4MSA5Ljc3Mjg5TDE1LjQwNDEgMTUuMzg4VjExLjUwMDRDMTUuNDAxNiAxMS40NjA0IDE1LjQyMDQgMTEuNDIxNyAxNS40NTE2IDExLjM5NjdMMjMuNTAzIDYuNzUxNThDMjcuMDg5NCA0LjY4Mjc5IDMxLjY3NDUgNS45MTQwNiAzMy43NDIgOS41MDE2NEMzNC42MTU4IDExLjAxNjcgMzQuOTMyIDEyLjc5MDUgMzQuNjM1OCAxNC41MTQySDM0LjYzODNaTTEzLjU3NDEgMjEuNDQzMUwxMC4yMDY1IDE5LjQ5OTRDMTAuMTcwMiAxOS40ODE5IDEwLjE0NjUgMTkuNDQ2OCAxMC4xNDE1IDE5LjQwNjhWMTAuMTA3OUMxMC4xNDQgNS45Njc4MSAxMy41MDI4IDIuNjEyNzQgMTcuNjQyOSAyLjYxNTI0QzE5LjM5NDIgMi42MTUyNCAyMS4wODkyIDMuMjMwMjUgMjIuNDM1NSA0LjM1MDI4QzIyLjM3NDMgNC4zODI3OCAyMi4yNjkzIDQuNDQxNTMgMjIuMTk5MiA0LjQ4NDAzTDE0LjIzNDEgOS4wODQxM0MxMy44MjY2IDkuMzE1MzggMTMuNTc2NiA5Ljc0Nzg5IDEzLjU3OTEgMTAuMjE2N0wxMy41NzQxIDIxLjQ0MDZWMjEuNDQzMVpNMTUuNDAyOSAxNy41MDA2TDE5LjczNDIgMTQuOTk5M0wyNC4wNjU1IDE3LjQ5OTNWMjIuNTAwN0wxOS43MzQyIDI1LjAwMDdMMTUuNDAyOSAyMi41MDA3VjE3LjUwMDZaIiBmaWxsPSIjN0Q3RDg3Ii8+Cjwvc3ZnPgo="},"displayName":"OpenAI Chat Model","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]}],"categories":[{"id":46,"name":"Project Management"},{"id":49,"name":"AI Summarization"}],"image":[]}}