{"workflow":{"id":14717,"name":"Create AI proposals from Fireflies transcripts with GPT-4o, Google Docs, Gmail and Telegram approval","views":0,"recentViews":0,"totalViews":0,"createdAt":"2026-04-04T14:08:57.892Z","description":"## Fireflies AI - Meeting Proposal Automation\nListens for completed Fireflies transcripts, qualifies whether a proposal is needed using OpenAI, drafts structured proposal content, populates a Google Doc template, converts to PDF, and sends it to the client via Gmail after you approve it in Telegram.\n\n### Who is this for?\nFreelancers, agency owners, and consultants who run discovery or sales calls and want proposals out the door faster. If you are spending 30-60 minutes after every call writing proposals by hand, this workflow turns that into a 30-second review-and-approve flow from your phone.\n\n#### What problem does this solve?\nProposals lose momentum. The longer the gap between a call and a follow-up, the colder the lead gets. Most freelancers finish a great call, get pulled into other work, and send the proposal 2-3 days later when the client has already moved on. This workflow captures everything from the Fireflies transcript, drafts a proposal using your own Google Doc template, and holds it for your approval before sending - so you stay fast without losing control or quality.\n\n##### How it works\n1. Fireflies Webhook receives a transcript-ready event after your meeting ends\n2. Respond 200 OK sends an immediate response so Fireflies does not retry\n3. Fetch Fireflies Transcript calls the Fireflies GraphQL API to pull the full transcript, participants, summary, and action items using the transcript ID from the webhook\n4. IF Transcript Valid checks the response is not empty or malformed before proceeding\n5. OpenAI Qualify Meeting analyzes the full transcript - determines if this was a sales/discovery call that needs a proposal, and extracts client name, email, company, pain points, services discussed, and scope\n6. IF Needs Proposal routes to drafting if qualified, or notifies you via Telegram that no proposal is needed with the reason\n7. OpenAI Draft Proposal generates structured content for each template variable - CLIENT_NAME, MEETING_RECAP, UNDERSTANDING_OF_NEEDS, PROPOSED_SOLUTION, DELIVERABLES, TIMELINE, INVESTMENT, NEXT_STEPS\n8. Prepare Proposal Data consolidates AI outputs from both OpenAI nodes into a single clean data object\n9. Copy Template Doc duplicates your Google Doc template in Drive, Replace Template Variables does a find-and-replace for all 10 placeholders\n10. Export Doc as PDF converts the populated doc, Save PDF to Google Drive stores it in your proposals folder\n11. Telegram Send Approval Request sends you a summary with client details, a link to review the doc, and Approve/Reject buttons\n12. Wait for Approval pauses the workflow execution until you click a button - no polling, no timeout pressure\n13. If approved and client email exists, Send Proposal via Gmail emails the PDF with a professional follow-up message\n14. If client email was not found in the transcript, Telegram Ask for Email prompts you to reply with the address before sending\n\n###### Setup\n- [ ] Fireflies - Create an HTTP Header Auth credential with your Fireflies API key. Go to Fireflies &gt; Settings &gt; Developer Settings &gt; Webhooks, add your n8n webhook production URL, and select the Transcription completed event\n- [ ] OpenAI - Connect your API key credential. Default model is GPT-4o for both qualification and drafting. GPT-4o-mini works for qualification if you want to save cost on that step\n- [ ] Google Doc Template - Create a Google Doc with your proposal layout. Insert these exact placeholders where you want AI content: {{CLIENT_NAME}}, {{CLIENT_COMPANY}}, {{MEETING_DATE}}, {{MEETING_RECAP}}, {{UNDERSTANDING_OF_NEEDS}}, {{PROPOSED_SOLUTION}}, {{DELIVERABLES}}, {{TIMELINE}}, {{INVESTMENT}}, {{NEXT_STEPS}}. Copy the Doc ID from the URL and paste it into the Copy Template Doc node fileId field\n- [ ] Google Drive - Set the destination folder ID in both the Copy Template Doc and Save PDF to Google Drive nodes. This is where proposal docs and PDFs will be stored\n- [ ] Gmail - Connect your Google OAuth2 credential. The email will be sent from whichever Gmail account you authenticate\n- [ ] Telegram - Create a bot via @BotFather, copy the token. Get your Chat ID by messaging @userinfobot. Enter both in all 6 Telegram nodes\n- [ ] Test first - Set the workflow to inactive. Send a manual POST to the webhook URL with a real transcript ID from a past meeting. Review the full execution before activating for production\n\n###### Customization tips\n- Qualification criteria - Edit the OpenAI Qualify Meeting system prompt to match your business. Add or remove trigger conditions like budget discussion, timeline mentioned, or specific services\n- Proposal tone - Adjust the OpenAI Draft Proposal system prompt few-shot examples and instructions to match your brand voice and proposal structure\n- Notification channel - Swap all Telegram nodes for Slack (using Slack node + webhook callback) if your team lives in Slack\n- Email copy - Edit the Gmail node message body to include your name, title, company, and any standard sign-off or links\n- Pricing logic - The default {{INVESTMENT}} value is [PRICING TO BE CONFIRMED]. Modify the OpenAI Draft Proposal prompt to generate pricing tiers based on scope if you have standard packages\n- Batch processing - If you run back-to-back calls, each transcript triggers independently. No conflicts between parallel executions","workflow":{"id":"ySNUgic8v2IM1UGH","meta":{"instanceId":"7fbdaefe02dd3fb2e07e324f7d336f4e2dd6566cd7a7046b2677903bf88524bf"},"name":"Fireflies Meeting Transcript to Auto-Proposal with Telegram Approval and Gmail Delivery","tags":[],"nodes":[{"id":"node-1","name":"When Transcript Ready","type":"n8n-nodes-base.webhook","position":[0,288],"webhookId":"a2a6aaa8-4461-404d-b892-446d03ee69c0","parameters":{"path":"fireflies-transcript","options":{},"httpMethod":"POST","responseMode":"responseNode"},"typeVersion":2},{"id":"node-2","name":"Respond 200 OK","type":"n8n-nodes-base.respondToWebhook","position":[224,288],"parameters":{"options":{},"respondWith":"json","responseBody":"={\"status\": \"received\", \"message\": \"Transcript processing started\"}"},"typeVersion":1},{"id":"node-3","name":"Get Full Transcript","type":"n8n-nodes-base.httpRequest","maxTries":3,"position":[448,288],"parameters":{"url":"https://api.fireflies.ai/graphql","method":"POST","options":{"timeout":30000},"jsonBody":"={\n  \"query\": \"query GetTranscript($transcriptId: String!) { transcript(id: $transcriptId) { id title date duration organizer_email participants { name email } sentences { text speaker_name } action_items summary { overview shorthand_bullet } } }\",\n  \"variables\": { \"transcriptId\": \"{{ $json.body.meetingId || $json.body.transcriptId }}\" }\n}","sendBody":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"retryOnFail":true,"typeVersion":4.2,"waitBetweenTries":2000},{"id":"node-4","name":"If Transcript Exists","type":"n8n-nodes-base.if","position":[672,288],"parameters":{"options":{},"conditions":{"options":{"leftValue":"","caseSensitive":true},"combinator":"and","conditions":[{"id":"cond-1","operator":{"type":"object","operation":"exists"},"leftValue":"={{ $json.data.transcript }}","rightValue":""}]}},"typeVersion":2.2},{"id":"node-5","name":"Classify Meeting Type","type":"@n8n/n8n-nodes-langchain.openAi","position":[896,192],"parameters":{"modelId":{"__rl":true,"mode":"list","value":"gpt-4o"},"options":{"temperature":0.2},"messages":{"values":[{"role":"system","content":"You are a meeting analyst. Analyze the meeting transcript and determine if this meeting requires a follow-up proposal to be sent to the client.\n\nA proposal is needed when:\n- Services, pricing, or project scope was discussed\n- The client expressed interest in hiring or engaging for work\n- Next steps involve sending a quote, estimate, or proposal\n- There was a discovery/sales call\n\nA proposal is NOT needed when:\n- Internal team meetings\n- Status updates or check-ins\n- Social/casual conversations\n- Support/troubleshooting calls\n\nRespond in this exact JSON format:\n{\n  \"needs_proposal\": true/false,\n  \"reason\": \"Brief explanation\",\n  \"client_name\": \"Name or null\",\n  \"client_email\": \"Email or null\",\n  \"client_company\": \"Company or null\",\n  \"meeting_summary\": \"2-3 sentence summary of what was discussed\",\n  \"key_points\": [\"point 1\", \"point 2\"],\n  \"services_discussed\": [\"service 1\", \"service 2\"],\n  \"client_pain_points\": [\"pain 1\", \"pain 2\"],\n  \"estimated_scope\": \"Brief scope description or null\",\n  \"follow_up_notes\": \"Any specific things the client mentioned wanting\"\n}"},{"content":"=Meeting Title: {{ $json.data.transcript.title }}\nDate: {{ $json.data.transcript.date }}\nParticipants: {{ JSON.stringify($json.data.transcript.participants) }}\nSummary: {{ $json.data.transcript.summary?.overview || 'No summary available' }}\n\nFull Transcript:\n{{ $json.data.transcript.sentences?.map(s => s.speaker_name + ': ' + s.text).join('\\n') }}"}]},"jsonOutput":true},"typeVersion":1.8},{"id":"node-6","name":"If Proposal Needed","type":"n8n-nodes-base.if","position":[1248,192],"parameters":{"options":{},"conditions":{"options":{"leftValue":"","caseSensitive":true},"combinator":"and","conditions":[{"id":"cond-2","operator":{"type":"boolean","operation":"equals"},"leftValue":"={{ $json.needs_proposal }}","rightValue":true}]}},"typeVersion":2.2},{"id":"node-7","name":"Generate Proposal Content","type":"@n8n/n8n-nodes-langchain.openAi","position":[1472,96],"parameters":{"modelId":{"__rl":true,"mode":"list","value":"gpt-4o"},"options":{"temperature":0.4},"messages":{"values":[{"role":"system","content":"You are a professional proposal writer. Based on the meeting analysis provided, generate structured proposal content to fill a document template.\n\nReturn a JSON object with these exact keys. Each value should be well-written, professional but conversational text:\n\n{\n  \"CLIENT_NAME\": \"The client's full name\",\n  \"CLIENT_COMPANY\": \"The client's company name or 'your team' if unknown\",\n  \"MEETING_DATE\": \"The date of the meeting in a readable format\",\n  \"MEETING_RECAP\": \"2-3 sentence recap of what was discussed in the meeting\",\n  \"UNDERSTANDING_OF_NEEDS\": \"A paragraph showing clear understanding of the client's pain points and what they need solved. Be specific to what was discussed.\",\n  \"PROPOSED_SOLUTION\": \"A clear description of the proposed approach, broken into phases if applicable. Be specific, not generic.\",\n  \"DELIVERABLES\": \"A bullet-point list of specific deliverables (use newlines between each)\",\n  \"TIMELINE\": \"Estimated timeline for delivery with key milestones\",\n  \"INVESTMENT\": \"[PRICING TO BE CONFIRMED]\",\n  \"NEXT_STEPS\": \"What happens after the client approves - onboarding, kickoff call, etc.\",\n  \"summary_for_review\": \"3-4 sentence summary for the Telegram approval message\"\n}\n\nWrite in a professional but warm, conversational tone. Be specific based on the meeting content. Do not use generic filler."},{"content":"=Meeting Analysis:\nClient: {{ $json.client_name }} ({{ $json.client_company || 'Company not specified' }})\nEmail: {{ $json.client_email || 'Not found' }}\nMeeting Date: {{ $json.meeting_date || 'Not specified' }}\n\nMeeting Summary: {{ $json.meeting_summary }}\n\nKey Points Discussed:\n{{ $json.key_points?.join('\\n- ') }}\n\nServices Discussed:\n{{ $json.services_discussed?.join('\\n- ') }}\n\nClient Pain Points:\n{{ $json.client_pain_points?.join('\\n- ') }}\n\nEstimated Scope: {{ $json.estimated_scope || 'To be determined' }}\n\nFollow-up Notes: {{ $json.follow_up_notes || 'None' }}"}]},"jsonOutput":true},"typeVersion":1.8},{"id":"node-8","name":"Prepare Proposal Data","type":"n8n-nodes-base.set","position":[1824,96],"parameters":{"options":{},"assignments":{"assignments":[{"id":"set-1","name":"client_name","type":"string","value":"={{ $('Classify Meeting Type').item.json.client_name }}"},{"id":"set-2","name":"client_email","type":"string","value":"={{ $('Classify Meeting Type').item.json.client_email }}"},{"id":"set-3","name":"client_company","type":"string","value":"={{ $('Classify Meeting Type').item.json.client_company }}"},{"id":"set-4","name":"meeting_summary","type":"string","value":"={{ $('Classify Meeting Type').item.json.meeting_summary }}"},{"id":"set-5","name":"services_discussed","type":"string","value":"={{ $('Classify Meeting Type').item.json.services_discussed?.join(', ') }}"},{"id":"set-6","name":"summary_for_review","type":"string","value":"={{ $json.summary_for_review }}"},{"id":"set-7","name":"CLIENT_NAME","type":"string","value":"={{ $json.CLIENT_NAME }}"},{"id":"set-8","name":"CLIENT_COMPANY","type":"string","value":"={{ $json.CLIENT_COMPANY }}"},{"id":"set-9","name":"MEETING_DATE","type":"string","value":"={{ $json.MEETING_DATE }}"},{"id":"set-10","name":"MEETING_RECAP","type":"string","value":"={{ $json.MEETING_RECAP }}"},{"id":"set-11","name":"UNDERSTANDING_OF_NEEDS","type":"string","value":"={{ $json.UNDERSTANDING_OF_NEEDS }}"},{"id":"set-12","name":"PROPOSED_SOLUTION","type":"string","value":"={{ $json.PROPOSED_SOLUTION }}"},{"id":"set-13","name":"DELIVERABLES","type":"string","value":"={{ $json.DELIVERABLES }}"},{"id":"set-14","name":"TIMELINE","type":"string","value":"={{ $json.TIMELINE }}"},{"id":"set-15","name":"INVESTMENT","type":"string","value":"={{ $json.INVESTMENT }}"},{"id":"set-16","name":"NEXT_STEPS","type":"string","value":"={{ $json.NEXT_STEPS }}"}]}},"typeVersion":3.4},{"id":"node-9","name":"Copy Proposal Template","type":"n8n-nodes-base.googleDrive","position":[2048,96],"parameters":{"name":"=Proposal - {{ $json.CLIENT_NAME }} - {{ $json.CLIENT_COMPANY }} - {{ $json.MEETING_DATE }}","fileId":{"__rl":true,"mode":"id","value":""},"options":{},"operation":"copy"},"typeVersion":3},{"id":"node-9b","name":"Fill Template Placeholders","type":"n8n-nodes-base.googleDocs","position":[2272,96],"parameters":{"actionsUi":{"actionFields":[{"text":"{{CLIENT_NAME}}","action":"replaceAll","matchCase":true,"replaceText":"={{ $('Prepare Proposal Data').item.json.CLIENT_NAME }}"},{"text":"{{CLIENT_COMPANY}}","action":"replaceAll","matchCase":true,"replaceText":"={{ $('Prepare Proposal Data').item.json.CLIENT_COMPANY }}"},{"text":"{{MEETING_DATE}}","action":"replaceAll","matchCase":true,"replaceText":"={{ $('Prepare Proposal Data').item.json.MEETING_DATE }}"},{"text":"{{MEETING_RECAP}}","action":"replaceAll","matchCase":true,"replaceText":"={{ $('Prepare Proposal Data').item.json.MEETING_RECAP }}"},{"text":"{{UNDERSTANDING_OF_NEEDS}}","action":"replaceAll","matchCase":true,"replaceText":"={{ $('Prepare Proposal Data').item.json.UNDERSTANDING_OF_NEEDS }}"},{"text":"{{PROPOSED_SOLUTION}}","action":"replaceAll","matchCase":true,"replaceText":"={{ $('Prepare Proposal Data').item.json.PROPOSED_SOLUTION }}"},{"text":"{{DELIVERABLES}}","action":"replaceAll","matchCase":true,"replaceText":"={{ $('Prepare Proposal Data').item.json.DELIVERABLES }}"},{"text":"{{TIMELINE}}","action":"replaceAll","matchCase":true,"replaceText":"={{ $('Prepare Proposal Data').item.json.TIMELINE }}"},{"text":"{{INVESTMENT}}","action":"replaceAll","matchCase":true,"replaceText":"={{ $('Prepare Proposal Data').item.json.INVESTMENT }}"},{"text":"{{NEXT_STEPS}}","action":"replaceAll","matchCase":true,"replaceText":"={{ $('Prepare Proposal Data').item.json.NEXT_STEPS }}"}]},"operation":"update"},"typeVersion":2},{"id":"node-10","name":"Export Doc as PDF","type":"n8n-nodes-base.httpRequest","maxTries":2,"position":[2496,96],"parameters":{"url":"=https://www.googleapis.com/drive/v3/files/{{ $json.documentId }}/export?mimeType=application/pdf","options":{"response":{"response":{"responseFormat":"file"}}},"authentication":"oAuth2"},"retryOnFail":true,"typeVersion":4.2},{"id":"node-11","name":"Save PDF to Drive","type":"n8n-nodes-base.googleDrive","position":[2720,96],"parameters":{"name":"=Proposal - {{ $('Prepare Proposal Data').item.json.CLIENT_NAME }} - {{ $('Prepare Proposal Data').item.json.CLIENT_COMPANY }}.pdf","driveId":{"__rl":true,"mode":"id","value":"MyDrive"},"options":{},"folderId":{"__rl":true,"mode":"id","value":""}},"typeVersion":3},{"id":"node-12","name":"Send Approval Request","type":"n8n-nodes-base.telegram","position":[2944,96],"webhookId":"4935e6b4-7ad2-4d99-b6cd-0b333e9bcc63","parameters":{"text":"=📋 *NEW PROPOSAL READY FOR REVIEW*\n\n*Client:* {{ $('Prepare Proposal Data').item.json.CLIENT_NAME || 'Unknown' }}\n*Company:* {{ $('Prepare Proposal Data').item.json.CLIENT_COMPANY || 'Not specified' }}\n*Email:* {{ $('Prepare Proposal Data').item.json.client_email || '⚠️ NOT FOUND - you will be asked to provide it' }}\n\n*Services:* {{ $('Prepare Proposal Data').item.json.services_discussed || 'See proposal' }}\n\n*Summary:*\n{{ $('Prepare Proposal Data').item.json.summary_for_review }}\n\n📄 [View Proposal Doc](https://docs.google.com/document/d/{{ $('Copy Proposal Template').item.json.id }})\n\n---\nClick below to approve or reject:","additionalFields":{"parse_mode":"Markdown"}},"typeVersion":1.2},{"id":"node-13","name":"Wait for Approval","type":"n8n-nodes-base.wait","position":[3168,96],"webhookId":"9fe2d334-87c2-4c6e-81ab-c4c45d9334c0","parameters":{"resume":"webhook","options":{}},"typeVersion":1.1},{"id":"node-14","name":"If Approved","type":"n8n-nodes-base.if","position":[3392,96],"parameters":{"options":{},"conditions":{"options":{"leftValue":"","caseSensitive":true},"combinator":"and","conditions":[{"id":"cond-3","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.query.action }}","rightValue":"approve"}]}},"typeVersion":2.2},{"id":"node-15","name":"If Client Email Exists","type":"n8n-nodes-base.if","position":[3616,0],"parameters":{"options":{},"conditions":{"options":{"leftValue":"","caseSensitive":true},"combinator":"and","conditions":[{"id":"cond-4","operator":{"type":"string","operation":"isNotEmpty"},"leftValue":"={{ $('Prepare Proposal Data').item.json.client_email }}","rightValue":""}]}},"typeVersion":2.2},{"id":"node-16","name":"Ask for Client Email","type":"n8n-nodes-base.telegram","position":[3840,80],"webhookId":"b10f378b-0902-4be4-9b10-4fa4a89e2263","parameters":{"text":"⚠️ Client email was not found in the transcript.\n\nPlease reply with the client's email address:","additionalFields":{"parse_mode":"Markdown"}},"typeVersion":1.2},{"id":"node-17","name":"Wait for Email Reply","type":"n8n-nodes-base.wait","position":[4064,80],"webhookId":"1295a6d3-6911-46c3-979f-a1c5599ad1b6","parameters":{"resume":"webhook","options":{}},"typeVersion":1.1},{"id":"node-18","name":"Prepare Email Data","type":"n8n-nodes-base.set","position":[4288,-16],"parameters":{"options":{},"assignments":{"assignments":[{"id":"set-email","name":"final_client_email","type":"string","value":"={{ $('If Client Email Exists').item ? $('Prepare Proposal Data').item.json.client_email : $json.body?.message?.text || $json.query?.email }}"},{"id":"set-name","name":"final_client_name","type":"string","value":"={{ $('Prepare Proposal Data').item.json.CLIENT_NAME || 'there' }}"},{"id":"set-title","name":"final_proposal_title","type":"string","value":"=Proposal - {{ $('Prepare Proposal Data').item.json.CLIENT_NAME }} - {{ $('Prepare Proposal Data').item.json.CLIENT_COMPANY }}"},{"id":"set-summary","name":"final_meeting_summary","type":"string","value":"={{ $('Prepare Proposal Data').item.json.meeting_summary }}"},{"id":"set-pdf-id","name":"pdf_file_id","type":"string","value":"={{ $('Save PDF to Drive').item.json.id }}"},{"id":"set-doc-id","name":"doc_id","type":"string","value":"={{ $('Copy Proposal Template').item.json.id }}"}]}},"typeVersion":3.4},{"id":"node-19","name":"Download PDF from Drive","type":"n8n-nodes-base.googleDrive","position":[4512,-16],"parameters":{"fileId":{"__rl":true,"mode":"id","value":"={{ $json.pdf_file_id }}"},"options":{},"operation":"download"},"typeVersion":3},{"id":"node-20","name":"Send Proposal Email","type":"n8n-nodes-base.gmail","position":[4736,-16],"webhookId":"31e3fa8a-9d58-4632-8fa4-47749923d1e7","parameters":{"sendTo":"={{ $('Prepare Email Data').item.json.final_client_email }}","message":"=Hi {{ $('Prepare Email Data').item.json.final_client_name }},\n\nIt was great speaking with you! I really enjoyed learning more about your goals and the challenges you are working through.\n\nFollowing up on our conversation, I have put together a proposal that outlines how I can help. It covers the key points we discussed, along with a clear breakdown of what the engagement would look like.\n\nI have attached the proposal as a PDF for your review.\n\nPlease take your time going through it. If anything needs adjusting or if you have questions, I am happy to hop on a quick call or chat through it.\n\nLooking forward to hearing your thoughts!\n\nWarm regards","options":{"attachmentsUi":{"attachmentsBinary":[{}]}},"subject":"={{ $('Prepare Email Data').item.json.final_proposal_title }}","emailType":"text"},"typeVersion":2.1},{"id":"node-21","name":"Confirm Email Sent","type":"n8n-nodes-base.telegram","position":[4960,-16],"webhookId":"a8d784eb-8e14-4f1b-8ed0-4d3c534042d3","parameters":{"text":"=✅ *PROPOSAL SENT SUCCESSFULLY*\n\n*To:* {{ $('Prepare Email Data').item.json.final_client_name }} ({{ $('Prepare Email Data').item.json.final_client_email }})\n*Subject:* {{ $('Prepare Email Data').item.json.final_proposal_title }}\n\nThe proposal has been emailed to the client with the PDF attached.\n\n📄 [View Doc](https://docs.google.com/document/d/{{ $('Prepare Email Data').item.json.doc_id }})","additionalFields":{"parse_mode":"Markdown"}},"typeVersion":1.2},{"id":"node-22","name":"Notify Proposal Rejected","type":"n8n-nodes-base.telegram","position":[3616,192],"webhookId":"0ccce42e-f38e-4d54-9ca5-acf1b9ebcd9c","parameters":{"text":"=❌ *PROPOSAL REJECTED*\n\n*Client:* {{ $('Prepare Proposal Data').item.json.CLIENT_NAME }}\n*Reason:* You chose to reject this proposal.\n\nThe proposal doc is still available if you want to edit and resend manually:\n📄 [View Doc](https://docs.google.com/document/d/{{ $('Copy Proposal Template').item.json.id }})","additionalFields":{"parse_mode":"Markdown"}},"typeVersion":1.2},{"id":"node-23","name":"Notify No Proposal Needed","type":"n8n-nodes-base.telegram","position":[1536,288],"webhookId":"33bd90b2-eb84-49f4-b50b-95ee5ba3084c","parameters":{"text":"=ℹ️ *NO PROPOSAL NEEDED*\n\n*Meeting:* {{ $('Get Full Transcript').item.json.data?.transcript?.title || 'Unknown' }}\n*Reason:* {{ $json.reason }}\n\nNo action required.","additionalFields":{"parse_mode":"Markdown"}},"typeVersion":1.2},{"id":"node-24","name":"Notify Transcript Error","type":"n8n-nodes-base.telegram","position":[960,384],"webhookId":"fc913d9d-0ba8-4f5e-881e-ce6009a10ac4","parameters":{"text":"=⚠️ *TRANSCRIPT FETCH FAILED*\n\nFireflies webhook received but the transcript could not be retrieved.\n\nPayload received:\n```\n{{ JSON.stringify($('When Transcript Ready').item.json.body, null, 2).substring(0, 500) }}\n```\n\nPlease check the Fireflies API key and transcript ID.","additionalFields":{"parse_mode":"Markdown"}},"typeVersion":1.2},{"id":"sticky-main","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-688,-288],"parameters":{"color":"#646B0B","width":620,"height":816,"content":"## Fireflies Transcript to Auto-Proposal\n\nListens for Fireflies transcript webhooks, qualifies the call with AI, drafts a proposal, fills a Google Doc template, converts to PDF, and sends it via Gmail after you approve in Telegram.\n\n### How it works\n1. Fireflies webhook triggers when a meeting transcript is ready\n2. Fetches the full transcript via GraphQL API\n3. AI classifies the call and extracts client details, pain points, and scope\n4. If a proposal is needed, AI generates structured content for your template\n5. Google Doc template is copied and populated, then exported as PDF\n6. Telegram sends you a summary with Approve/Reject buttons\n7. On approval, the PDF is emailed to the client via Gmail\n\n### Setup\n- [ ] Add your Fireflies API key (HTTP Header Auth credential) and configure the webhook in Fireflies Settings > Developer > Webhooks\n- [ ] Connect your OpenAI API key to both AI nodes\n- [ ] Create a Google Doc template with placeholders: {{CLIENT_NAME}}, {{CLIENT_COMPANY}}, {{MEETING_DATE}}, {{MEETING_RECAP}}, {{UNDERSTANDING_OF_NEEDS}}, {{PROPOSED_SOLUTION}}, {{DELIVERABLES}}, {{TIMELINE}}, {{INVESTMENT}}, {{NEXT_STEPS}}\n- [ ] Set the Doc ID and Drive folder ID in the Google Drive nodes\n- [ ] Connect Gmail OAuth2 credential\n- [ ] Set your Telegram bot token and chat ID in all Telegram nodes\n\n### Customization\n- Edit the AI Qualify prompt to match your sales call criteria\n- Edit the AI Draft prompt to match your brand voice and proposal structure\n- Swap Telegram for Slack if preferred"},"typeVersion":1},{"id":"sticky-intake","name":"Sticky Note - Transcript Intake","type":"n8n-nodes-base.stickyNote","position":[-48,-32],"parameters":{"color":4,"width":844,"height":560,"content":"**Transcript Intake**\nReceives Fireflies webhook, responds 200 OK, fetches full transcript via GraphQL, and validates the response."},"typeVersion":1},{"id":"sticky-qualify","name":"Sticky Note - AI Qualification","type":"n8n-nodes-base.stickyNote","position":[800,-32],"parameters":{"color":5,"width":616,"height":560,"content":"**AI Qualification**\nGPT-4o classifies the call type and extracts client details. Non-proposal meetings get a Telegram notification."},"typeVersion":1},{"id":"sticky-draft","name":"Sticky Note - Proposal Draft","type":"n8n-nodes-base.stickyNote","position":[1424,-32],"parameters":{"color":6,"width":1452,"height":560,"content":"**Proposal Drafting & Document Generation**\nAI generates structured proposal content, populates a Google Doc template copy, exports as PDF, and saves to Drive."},"typeVersion":1},{"id":"sticky-approval","name":"Sticky Note - Approval Flow","type":"n8n-nodes-base.stickyNote","position":[2880,-128],"parameters":{"color":2,"width":948,"height":560,"content":"**Telegram Approval**\nSends a summary with Approve/Reject buttons. Pauses until you respond. Prompts for client email if missing."},"typeVersion":1},{"id":"sticky-delivery","name":"Sticky Note - Email Delivery","type":"n8n-nodes-base.stickyNote","position":[3840,-128],"parameters":{"color":7,"width":1332,"height":560,"content":"**Email Delivery**\nDownloads the PDF from Drive, emails it to the client via Gmail, and confirms delivery in Telegram."},"typeVersion":1},{"id":"sticky-warning","name":"Sticky Note - Warning","type":"n8n-nodes-base.stickyNote","position":[2016,288],"parameters":{"color":3,"width":676,"height":220,"content":"**Google Doc Template Required**\nThis workflow will fail without a template. Create a Google Doc with the following placeholders  {{CLIENT_NAME}}, {{CLIENT_COMPANY}}, {{MEETING_DATE}}, {{MEETING_RECAP}}, {{UNDERSTANDING_OF_NEEDS}}, {{PROPOSED_SOLUTION}}, {{DELIVERABLES}}, {{TIMELINE}}, {{INVESTMENT}}, {{NEXT_STEPS}}, then paste the Doc ID into the Copy Proposal Template node."},"typeVersion":1}],"active":false,"pinData":{},"settings":{"timezone":"UTC","binaryMode":"separate","callerPolicy":"workflowsFromSameOwner","availableInMCP":false,"executionOrder":"v1","executionTimeout":3600,"saveManualExecutions":true,"saveExecutionProgress":true,"saveDataErrorExecution":"all","saveDataSuccessExecution":"all"},"versionId":"341dc4e5-4a30-491c-839d-b399e5e2055e","connections":{"If Approved":{"main":[[{"node":"If Client Email Exists","type":"main","index":0}],[{"node":"Notify Proposal Rejected","type":"main","index":0}]]},"Respond 200 OK":{"main":[[{"node":"Get Full Transcript","type":"main","index":0}]]},"Export Doc as PDF":{"main":[[{"node":"Save PDF to Drive","type":"main","index":0}]]},"Save PDF to Drive":{"main":[[{"node":"Send Approval Request","type":"main","index":0}]]},"Wait for Approval":{"main":[[{"node":"If Approved","type":"main","index":0}]]},"If Proposal Needed":{"main":[[{"node":"Generate Proposal Content","type":"main","index":0}],[{"node":"Notify No Proposal Needed","type":"main","index":0}]]},"Prepare Email Data":{"main":[[{"node":"Download PDF from Drive","type":"main","index":0}]]},"Get Full Transcript":{"main":[[{"node":"If Transcript Exists","type":"main","index":0}]]},"Send Proposal Email":{"main":[[{"node":"Confirm Email Sent","type":"main","index":0}]]},"Ask for Client Email":{"main":[[{"node":"Wait for Email Reply","type":"main","index":0}]]},"If Transcript Exists":{"main":[[{"node":"Classify Meeting Type","type":"main","index":0}],[{"node":"Notify Transcript Error","type":"main","index":0}]]},"Wait for Email Reply":{"main":[[{"node":"Prepare Email Data","type":"main","index":0}]]},"Classify Meeting Type":{"main":[[{"node":"If Proposal Needed","type":"main","index":0}]]},"Prepare Proposal Data":{"main":[[{"node":"Copy Proposal Template","type":"main","index":0}]]},"Send Approval Request":{"main":[[{"node":"Wait for Approval","type":"main","index":0}]]},"When Transcript Ready":{"main":[[{"node":"Respond 200 OK","type":"main","index":0}]]},"Copy Proposal Template":{"main":[[{"node":"Fill Template Placeholders","type":"main","index":0}]]},"If Client Email Exists":{"main":[[{"node":"Prepare Email Data","type":"main","index":0}],[{"node":"Ask for Client Email","type":"main","index":0}]]},"Download PDF from Drive":{"main":[[{"node":"Send Proposal Email","type":"main","index":0}]]},"Generate Proposal Content":{"main":[[{"node":"Prepare Proposal Data","type":"main","index":0}]]},"Fill Template Placeholders":{"main":[[{"node":"Export Doc as PDF","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":32,"nodeTypes":{"n8n-nodes-base.if":{"count":4},"n8n-nodes-base.set":{"count":2},"n8n-nodes-base.wait":{"count":2},"n8n-nodes-base.gmail":{"count":1},"n8n-nodes-base.webhook":{"count":1},"n8n-nodes-base.telegram":{"count":6},"n8n-nodes-base.googleDocs":{"count":1},"n8n-nodes-base.stickyNote":{"count":7},"n8n-nodes-base.googleDrive":{"count":3},"n8n-nodes-base.httpRequest":{"count":2},"@n8n/n8n-nodes-langchain.openAi":{"count":2},"n8n-nodes-base.respondToWebhook":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Devon Toh","username":"motomoto","bio":"Automation Consultant With 3 Years Experience. \n\nI help Sales and Marketing Teams to Streamline their workflows and system. \n\nHop on a call with me here \n- https://cal.com/devon-toh-vrmdab/30min","verified":true,"links":["https://www.baraco.ai"],"avatar":"https://gravatar.com/avatar/ac4d1aec81986fe98a61e31b22b1a3a2e2b0ef2046751b74760c8d0763c6ade8?r=pg&d=retro&size=200"},"nodes":[{"id":19,"icon":"file:httprequest.svg","name":"n8n-nodes-base.httpRequest","codex":{"data":{"alias":["API","Request","URL","Build","cURL"],"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"},{"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-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"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/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/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"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/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"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/automate-designs-with-bannerbear-and-n8n/","icon":"🎨","label":"Automate Designs with Bannerbear and n8n"},{"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/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/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/","icon":"🧰","label":"How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"},{"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-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/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"},{"url":"https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"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.httprequest/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"output\"]","defaults":{"name":"HTTP Request","color":"#0004F5"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="},"displayName":"HTTP Request","typeVersion":4,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"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":58,"icon":"file:googleDrive.svg","name":"n8n-nodes-base.googleDrive","codex":{"data":{"resources":{"generic":[{"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/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/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.googledrive/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Data & Storage"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\"]","defaults":{"name":"Google Drive"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgODEgNzMiPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9ImEiIG92ZXJmbG93PSJ2aXNpYmxlIj48ZyBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0ibm9uZSI+PHBhdGggZmlsbD0iIzAwNjZkYSIgZD0ibTYuMDQ4IDYxLjI2IDMuNTI4IDYuMDk0Yy43MzMgMS4yODMgMS43ODcgMi4yOTEgMy4wMjQgMy4wMjRsMTIuNi0yMS44MUgwYTguMyA4LjMgMCAwIDAgMS4xIDQuMTI0eiIvPjxwYXRoIGZpbGw9IiMwMGFjNDciIGQ9Ik00MCAyMi45MSAyNy40IDEuMWMtMS4yMzcuNzMzLTIuMjkxIDEuNzQxLTMuMDI0IDMuMDI0TDEuMSA0NC40NDVBOC4zIDguMyAwIDAgMCAwIDQ4LjU2OGgyNS4yeiIvPjxwYXRoIGZpbGw9IiNlYTQzMzUiIGQ9Ik02Ny40IDcwLjM3OGMxLjIzNy0uNzMzIDIuMjkxLTEuNzQxIDMuMDI0LTMuMDI0bDEuNDY2LTIuNTIgNy4wMS0xMi4xNDJhOC4zIDguMyAwIDAgMCAxLjEtNC4xMjRINTQuNzk4bDUuMzYzIDEwLjUzOHoiLz48cGF0aCBmaWxsPSIjMDA4MzJkIiBkPSJNNDAgMjIuOTEgNTIuNiAxLjFDNTEuMzYzLjM2NyA0OS45NDMgMCA0OC40NzcgMEgzMS41MjRjLTEuNDY2IDAtMi44ODcuNDEyLTQuMTI0IDEuMXoiLz48cGF0aCBmaWxsPSIjMjY4NGZjIiBkPSJNNTQuNzk5IDQ4LjU2OEgyNS4ybC0xMi42IDIxLjgxYzEuMjM3LjczMyAyLjY1NyAxLjEgNC4xMjQgMS4xaDQ2LjU1MmMxLjQ2NiAwIDIuODg3LS40MTIgNC4xMjQtMS4xeiIvPjxwYXRoIGZpbGw9IiNmZmJhMDAiIGQ9Ik02Ny4yNjIgMjQuMjg0IDU1LjYyNCA0LjEyNEM1NC44OTEgMi44NDEgNTMuODM3IDEuODMzIDUyLjYgMS4xTDQwIDIyLjkxbDE0LjggMjUuNjU5aDI1LjE1NWE4LjMgOC4zIDAgMCAwLTEuMS00LjEyNHoiLz48L2c+PC9zeW1ib2w+PC9zdmc+"},"displayName":"Google Drive","typeVersion":3,"nodeCategories":[{"id":3,"name":"Data & Storage"}]},{"id":356,"icon":"file:gmail.svg","name":"n8n-nodes-base.gmail","codex":{"data":{"alias":["email","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/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with 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-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/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/using-automation-to-boost-productivity-in-the-workplace/","icon":"💪","label":"Using Automation to Boost Productivity in the Workplace"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.gmail/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Communication","HITL"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"HITL":["Human in the Loop"]}}},"group":"[\"transform\"]","defaults":{"name":"Gmail"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTYiIGhlaWdodD0iMTkzIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+PHBhdGggZmlsbD0iIzQyODVGNCIgZD0iTTU4LjE4MiAxOTIuMDVWOTMuMTRMMjcuNTA3IDY1LjA3NyAwIDQ5LjUwNHYxMjUuMDkxYzAgOS42NTggNy44MjUgMTcuNDU1IDE3LjQ1NSAxNy40NTV6Ii8+PHBhdGggZmlsbD0iIzM0QTg1MyIgZD0iTTE5Ny44MTggMTkyLjA1aDQwLjcyN2M5LjY1OSAwIDE3LjQ1NS03LjgyNiAxNy40NTUtMTcuNDU1VjQ5LjUwNWwtMzEuMTU2IDE3LjgzNy0yNy4wMjYgMjUuNzk4eiIvPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Im01OC4xODIgOTMuMTQtNC4xNzQtMzguNjQ3IDQuMTc0LTM2Ljk4OUwxMjggNjkuODY4bDY5LjgxOC01Mi4zNjQgNC42NyAzNC45OTItNC42NyA0MC42NDRMMTI4IDE0NS41MDR6Ii8+PHBhdGggZmlsbD0iI0ZCQkMwNCIgZD0iTTE5Ny44MTggMTcuNTA0VjkzLjE0TDI1NiA0OS41MDRWMjYuMjMxYzAtMjEuNTg1LTI0LjY0LTMzLjg5LTQxLjg5LTIwLjk0NXoiLz48cGF0aCBmaWxsPSIjQzUyMjFGIiBkPSJtMCA0OS41MDQgMjYuNzU5IDIwLjA3TDU4LjE4MiA5My4xNFYxNy41MDRMNDEuODkgNS4yODZDMjQuNjEtNy42NiAwIDQuNjQ2IDAgMjYuMjN6Ii8+PC9zdmc+"},"displayName":"Gmail","typeVersion":2,"nodeCategories":[{"id":6,"name":"Communication"},{"id":28,"name":"HITL"}]},{"id":495,"icon":"file:googleDocs.svg","name":"n8n-nodes-base.googleDocs","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googledocs/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Miscellaneous"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\"]","defaults":{"name":"Google Docs"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSItMTggMCA5MCA4MCI+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iLjUiIHk9Ii41Ii8+PHN5bWJvbCBpZD0iYSIgb3ZlcmZsb3c9InZpc2libGUiPjxnIHN0cm9rZT0ibm9uZSI+PHBhdGggZmlsbD0iIzU0OGRmNiIgZD0ibTM2IDAgMjIgMjJ2NTNhNC45OSA0Ljk5IDAgMCAxLTUgNUg1YTQuOTkgNC45OSAwIDAgMS01LTVWNWE0Ljk5IDQuOTkgMCAwIDEgNS01eiIvPjxwYXRoIGQ9Ik0xNCA0MGgzMHYzSDE0em0wIDdoMzB2M0gxNHptMCA4aDMwdjNIMTR6bTAgN2gyMXYzSDE0eiIvPjxwYXRoIGZpbGw9IiNhYmQwZmIiIGQ9Im0zNiAwIDIyIDIySDQxYy0yLjc3IDAtNS0yLjQ4LTUtNS4yNXoiLz48cGF0aCBmaWxsPSIjM2U1YmI5IiBkPSJNNDAuNzUgMjIgNTggMjkuMTI1VjIyeiIvPjwvZz48L3N5bWJvbD48L3N2Zz4="},"displayName":"Google Docs","typeVersion":2,"nodeCategories":[{"id":11,"name":"Miscellaneous"}]},{"id":514,"icon":"fa:pause-circle","name":"n8n-nodes-base.wait","codex":{"data":{"alias":["pause","sleep","delay","timeout"],"resources":{"generic":[{"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/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.wait/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Flow"]}}},"group":"[\"organization\"]","defaults":{"name":"Wait","color":"#804050"},"iconData":{"icon":"pause-circle","type":"icon"},"displayName":"Wait","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":535,"icon":"file:webhook.svg","name":"n8n-nodes-base.respondToWebhook","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.respondtowebhook/"}]},"categories":["Core Nodes","Utility"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"transform\"]","defaults":{"name":"Respond to Webhook"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"},"displayName":"Respond to Webhook","typeVersion":2,"nodeCategories":[{"id":7,"name":"Utility"},{"id":9,"name":"Core Nodes"}]},{"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":1250,"icon":"file:openAi.svg","name":"@n8n/n8n-nodes-langchain.openAi","codex":{"data":{"alias":["LangChain","ChatGPT","Sora","DallE","whisper","audio","transcribe","tts","assistant"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-langchain.openai/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Agents","Miscellaneous","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"OpenAI"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTM2Ljg2NzEgMTYuMzcxOEMzNy43NzQ2IDEzLjY0OCAzNy40NjIxIDEwLjY2NDIgMzYuMDEwOCA4LjE4NjYxQzMzLjgyODIgNC4zODY1MyAyOS40NDA3IDIuNDMxNDkgMjUuMTU1NiAzLjM1MTUxQzIzLjI0OTMgMS4yMDM5NiAyMC41MTA1IC0wLjAxNzMxNDggMTcuNjM5MiAwLjAwMDE4NTUzM0MxMy4yNTkxIC0wLjAwOTgxNDY4IDkuMzcyNzMgMi44MTAyNSA4LjAyNTIgNi45Nzc4M0M1LjIxMTM5IDcuNTU0MSAyLjc4MjU4IDkuMzE1MzggMS4zNjEzIDExLjgxMTdDLTAuODM3NDkzIDE1LjYwMTggLTAuMzM2MjMyIDIwLjM3OTQgMi42MDEzMyAyMy42Mjk0QzEuNjkzODEgMjYuMzUzMiAyLjAwNjMyIDI5LjMzNzEgMy40NTc2IDMxLjgxNDZDNS42NDAxNSAzNS42MTQ3IDEwLjAyNzcgMzcuNTY5NyAxNC4zMTI4IDM2LjY0OTdDMTYuMjE3OSAzOC43OTczIDE4Ljk1NzkgNDAuMDE4NSAyMS44MjkyIDM5Ljk5OThDMjYuMjExOCA0MC4wMTEgMzAuMDk5NCAzNy4xODg1IDMxLjQ0NjkgMzMuMDE3MUMzNC4yNjA4IDMyLjQ0MDkgMzYuNjg5NiAzMC42Nzk2IDM4LjExMDggMjguMTgzM0M0MC4zMDcxIDI0LjM5MzIgMzkuODA0NiAxOS42MTk0IDM2Ljg2ODMgMTYuMzY5M0wzNi44NjcxIDE2LjM3MThaTTIxLjgzMTcgMzcuMzg2QzIwLjA3OCAzNy4zODg1IDE4LjM3OTIgMzYuNzc0NyAxNy4wMzI5IDM1LjY1MDlDMTcuMDk0MSAzNS42MTg1IDE3LjIwMDQgMzUuNTU5NyAxNy4yNjkxIDM1LjUxNzJMMjUuMjM0MyAzMC45MTcxQzI1LjY0MTggMzAuNjg1OCAyNS44OTE4IDMwLjI1MjEgMjUuODg5MyAyOS43ODMzVjE4LjU1NDNMMjkuMjU1NiAyMC40OTgxQzI5LjI5MTkgMjAuNTE1NiAyOS4zMTU3IDIwLjU1MDYgMjkuMzIwNyAyMC41OTA2VjI5Ljg4OTZDMjkuMzE1NyAzNC4wMjQ3IDI1Ljk2NjggMzcuMzc3MiAyMS44MzE3IDM3LjM4NlpNNS43MjY0IDMwLjUwNzFDNC44NDc2MyAyOC45ODk2IDQuNTMxMzcgMjcuMjEwOCA0LjgzMjYzIDI1LjQ4NDVDNC44OTEzOCAyNS41MTk1IDQuOTk1MTMgMjUuNTgzMiA1LjA2ODg4IDI1LjYyNTdMMTMuMDM0MSAzMC4yMjU4QzEzLjQzNzggMzAuNDYyMSAxMy45Mzc4IDMwLjQ2MjEgMTQuMzQyOCAzMC4yMjU4TDI0LjA2NjggMjQuNjEwN1YyOC40OTgzQzI0LjA2OTMgMjguNTM4MyAyNC4wNTA1IDI4LjU3NyAyNC4wMTkzIDI4LjYwMkwxNS45Njc5IDMzLjI1MDlDMTIuMzgxNSAzNS4zMTU5IDcuODAxNDQgMzQuMDg4NCA1LjcyNzY1IDMwLjUwNzFINS43MjY0Wk0zLjYzMDEgMTMuMTIwNUM0LjUwNTEyIDExLjYwMDQgNS44ODY0IDEwLjQzNzkgNy41MzE0NCA5LjgzNDE1QzcuNTMxNDQgOS45MDI5IDcuNTI3NjkgMTAuMDI0MSA3LjUyNzY5IDEwLjEwOTJWMTkuMzEwNkM3LjUyNTE5IDE5Ljc3ODEgNy43NzUxOSAyMC4yMTE5IDguMTgxNDUgMjAuNDQzMUwxNy45MDU0IDI2LjA1N0wxNC41MzkxIDI4LjAwMDhDMTQuNTA1MyAyOC4wMjMzIDE0LjQ2MjggMjguMDI3IDE0LjQyNTMgMjguMDEwOEw2LjM3MjY2IDIzLjM1ODJDMi43OTM4MyAyMS4yODU2IDEuNTY2MzEgMTYuNzA2OCAzLjYyODg1IDEzLjEyMTdMMy42MzAxIDEzLjEyMDVaTTMxLjI4ODIgMTkuNTU2OUwyMS41NjQyIDEzLjk0MTdMMjQuOTMwNiAxMS45OTkyQzI0Ljk2NDMgMTEuOTc2NyAyNS4wMDY4IDExLjk3MjkgMjUuMDQ0MyAxMS45ODkyTDMzLjA5NyAxNi42MzhDMzYuNjgyMSAxOC43MDkzIDM3LjkxMDggMjMuMjk1NyAzNS44Mzk1IDI2Ljg4MDhDMzQuOTYzMyAyOC4zOTgzIDMzLjU4MzIgMjkuNTYwOCAzMS45Mzk1IDMwLjE2NThWMjAuNjg5NEMzMS45NDMyIDIwLjIyMTkgMzEuNjk0NSAxOS43ODk0IDMxLjI4OTQgMTkuNTU2OUgzMS4yODgyWk0zNC42MzgzIDE0LjUxNDJDMzQuNTc5NSAxNC40NzggMzQuNDc1OCAxNC40MTU1IDM0LjQwMiAxNC4zNzNMMjYuNDM2OCA5Ljc3Mjg5QzI2LjAzMzEgOS41MzY2NCAyNS41MzMxIDkuNTM2NjQgMjUuMTI4MSA5Ljc3Mjg5TDE1LjQwNDEgMTUuMzg4VjExLjUwMDRDMTUuNDAxNiAxMS40NjA0IDE1LjQyMDQgMTEuNDIxNyAxNS40NTE2IDExLjM5NjdMMjMuNTAzIDYuNzUxNThDMjcuMDg5NCA0LjY4Mjc5IDMxLjY3NDUgNS45MTQwNiAzMy43NDIgOS41MDE2NEMzNC42MTU4IDExLjAxNjcgMzQuOTMyIDEyLjc5MDUgMzQuNjM1OCAxNC41MTQySDM0LjYzODNaTTEzLjU3NDEgMjEuNDQzMUwxMC4yMDY1IDE5LjQ5OTRDMTAuMTcwMiAxOS40ODE5IDEwLjE0NjUgMTkuNDQ2OCAxMC4xNDE1IDE5LjQwNjhWMTAuMTA3OUMxMC4xNDQgNS45Njc4MSAxMy41MDI4IDIuNjEyNzQgMTcuNjQyOSAyLjYxNTI0QzE5LjM5NDIgMi42MTUyNCAyMS4wODkyIDMuMjMwMjUgMjIuNDM1NSA0LjM1MDI4QzIyLjM3NDMgNC4zODI3OCAyMi4yNjkzIDQuNDQxNTMgMjIuMTk5MiA0LjQ4NDAzTDE0LjIzNDEgOS4wODQxM0MxMy44MjY2IDkuMzE1MzggMTMuNTc2NiA5Ljc0Nzg5IDEzLjU3OTEgMTAuMjE2N0wxMy41NzQxIDIxLjQ0MDZWMjEuNDQzMVpNMTUuNDAyOSAxNy41MDA2TDE5LjczNDIgMTQuOTk5M0wyNC4wNjU1IDE3LjQ5OTNWMjIuNTAwN0wxOS43MzQyIDI1LjAwMDdMMTUuNDAyOSAyMi41MDA3VjE3LjUwMDZaIiBmaWxsPSJibGFjayIvPgo8L3N2Zz4K"},"displayName":"OpenAI","typeVersion":2,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]}],"categories":[{"id":35,"name":"Document Extraction"},{"id":49,"name":"AI Summarization"}],"image":[]}}