AutomationFlowsAI & RAG › Send AI Sales Proposals and Stripe Payment Links After Calendly Calls

Send AI Sales Proposals and Stripe Payment Links After Calendly Calls

ByChris Zhang @clissz on n8n.io

Categories: Sales Automation, AI Proposals, Revenue Ops

Event trigger★★★★☆ complexityAI-powered13 nodesOpenAIHTTP RequestGoogle DriveGoogle SlidesGoogle SheetsCalendly TriggerGmail
AI & RAG Trigger: Event Nodes: 13 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #12530 — we link there as the canonical source.

This workflow follows the Gmail → Google Drive recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "uV1XEoE02jdq0MY8",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Meeting \u2192 Proposal \u2192 Payment  \u2192 Follow-up Automation",
  "tags": [
    {
      "id": "bGvGlHhpYV7IuxyV",
      "name": "N8N Business Ops",
      "createdAt": "2026-01-07T01:47:17.299Z",
      "updatedAt": "2026-01-07T01:47:17.299Z"
    }
  ],
  "nodes": [
    {
      "id": "0c841e52-79ce-42cc-9d37-77c54bcd3ab1",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -304,
        -384
      ],
      "parameters": {
        "width": 436,
        "height": 776,
        "content": "#  Meeting \u2192 Proposal \u2192 Payment  \u2192 Follow-up Automation\n\nAutomatically turn booked calls into proposals, Stripe payment links, and follow-up emails.\n\nThis workflow handles everything *after* a sales call so momentum doesn\u2019t die.\n\n## What it does\n- Triggers from **Calendly**\n- Looks up the lead in **Google Sheets CRM**\n- Generates a **custom AI proposal**\n- Creates a **Google Slides deck**\n- Creates a **Stripe checkout link**\n- Sends a **personalized follow-up email**\n\nAll in one flow. No manual steps.\n\n## Tools\nn8n \u00b7 OpenAI \u00b7 Google Sheets \u00b7 Google Slides \u00b7 Stripe \u00b7 Email \u00b7 Calendly / Forms\n\n## Best for\nAgencies, consultants, freelancers, and service businesses selling repeatable offers.\n\n**Booked call \u2192 proposal \u2192 payment \u2192 done.**"
      },
      "typeVersion": 1
    },
    {
      "id": "7d368a55-6911-4492-8aab-df11ee7dd8fa",
      "name": "Generate Proposal Copy1",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        736,
        80
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-5-mini",
          "cachedResultName": "GPT-5-MINI"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "You are a senior automation consultant writing concise, high-conviction proposals\nfor sophisticated founders.\n\nYou think in systems, tradeoffs, and leverage \u2014 not marketing fluff.\n\nYour job is to:\n- Interpret messy business inputs\n- Compress them into clear problems, solutions, and execution plans\n- Output structured content that sounds confident, grounded, and practical\n\nYou never invent capabilities that are not implied by the input.\nYou never exaggerate outcomes.\nYou prefer clarity over persuasion."
            },
            {
              "content": "Your task is to generate a proposal using structured form input.\n\nContext:\nWe are an automation / no-code agency building systems around growth,\nrevenue operations, and internal efficiency.\n\nThe proposal is sent immediately after form submission.\nAssume the reader is intelligent, busy, and skeptical.\n\nYou MUST return a single valid JSON object matching the schema below.\nDo not include commentary, markdown, or extra text.\n\nTone rules:\n- Spartan\n- Casual but professional\n- Direct\n- No buzzwords\n- No hype\n\nContent rules:\n- Every field must be filled\n- Fields containing \"Description\" must be \u2264 14 words\n- descriptionName must be lowercase\n- Do not repeat the same idea across multiple fields\n- If input is vague, make the safest reasonable assumption\n- If timelines are unclear, default to conservative execution\n\nUse this format:\n\n{\n  \"proposalTitle\": \"\",\n  \"descriptionName\": \"\",\n  \"oneParagraphProblemSummary\": \"\",\n  \"solutionHeadingOne\": \"\",\n  \"solutionDescriptionOne\": \"\",\n  \"solutionHeadingTwo\": \"\",\n  \"solutionDescriptionTwo\": \"\",\n  \"solutionHeadingThree\": \"\",\n  \"solutionDescriptionThree\":\"\",\n  \"shortScopeTitleOne\": \"\",\n  \"shortScopeTitleTwo\": \"\",\n  \"shortScopeTitleThree\": \"\",\n  \"shortScopeDescriptionOne\": \"\",\n  \"shortScopeDescriptionTwo\": \"\",\n  \"shortScopeDescriptionThree\": \"\",\n  \"milestoneOneDay\": \"\",\n  \"milestoneTwoDay\": \"\",\n  \"milestoneThreeDay\": \"\",\n  \"milestoneFourDay\": \"\",\n  \"milestoneDescriptionOne\": \"\",\n  \"milestoneDescriptionTwo\": \"\",\n  \"milestoneDescriptionThree\": \"\",\n  \"milestoneDescriptionFour\": \"\"\n}"
            },
            {
              "content": "{\n  \"companyName\": \"Acme Analytics LLC\",\n  \"problem\": \"Manual lead routing and proposal follow-ups take too much time\",\n  \"solution\": \"Automate intake \u2192 proposal \u2192 payment using n8n, Stripe, and email\",\n  \"scope\": \"Lead intake, proposal generation, Stripe checkout automation\",\n  \"currentDate\": \"Jan 6 2026\",\n  \"howSoon\": \"Within 2 weeks\",\n  \"depositCost\": \"2500\"\n}"
            },
            {
              "role": "assistant",
              "content": "{\n  \"proposalTitle\": \"Automation System for Acme Analytics\",\n  \"descriptionName\": \"a streamlined intake-to-payment automation system\",\n  \"oneParagraphProblemSummary\": \"Today, Acme Analytics relies on manual processes to route leads, generate proposals, and follow up on payments. This creates delays, missed opportunities, and unnecessary operational overhead. As lead volume increases, these manual steps become harder to manage and harder to scale. The goal is to replace these handoffs with a clean, automated flow that moves prospects from intake to payment without friction.\",\n  \"solutionHeadingOne\": \"Automated Lead Intake\",\n  \"solutionDescriptionOne\": \"Leads are captured, enriched, and routed automatically without manual review.\",\n  \"solutionHeadingTwo\": \"Instant Proposal Generation\",\n  \"solutionDescriptionTwo\": \"Proposals are generated instantly using structured inputs and templates.\",\n  \"solutionHeadingThree\": \"Integrated Stripe Checkout\",\n  \"solutionDescriptionThree\": \"Clients receive a payment link immediately after proposal delivery.\",\n  \"shortScopeTitleOne\": \"Centralized lead intake workflow\",\n  \"shortScopeTitleTwo\": \"Dynamic proposal generation system\",\n  \"shortScopeTitleThree\": \"Stripe checkout automation\",\n  \"shortScopeDescriptionOne\": \"Standardizes inbound leads across all sources.\",\n  \"shortScopeDescriptionTwo\": \"Generates consistent proposals with zero manual work.\",\n  \"shortScopeDescriptionThree\": \"Collects deposits automatically via Stripe.\",\n  \"milestoneOneDay\": \"January 10, 2026\",\n  \"milestoneTwoDay\": \"January 16, 2026\",\n  \"milestoneThreeDay\": \"January 20, 2026\",\n  \"milestoneFourDay\": \"January 24, 2026\",\n  \"milestoneDescriptionOne\": \"Lead intake schema finalized and automated.\",\n  \"milestoneDescriptionTwo\": \"Proposal generation workflow built and tested.\",\n  \"milestoneDescriptionThree\": \"Stripe checkout fully integrated and validated.\",\n  \"milestoneDescriptionFour\": \"End-to-end testing, iteration, and handoff completed.\"\n}"
            },
            {
              "content": "={\n  \"companyName\":\"{{ $json['Company Legal Name'] }}\",\n  \"problem\": \"{{ $json.Problem }}\",\n  \"solution\": \"{{ $json.Solution}}\",\n  \"scope\": \"{{ $json.Scope }}\",\n  \"currentDate\":\"{{ $now.toLocaleString({ dateStyle: 'medium' }) }}\",\n  \"howSoon\": \"{{ $json['How soon?'] }}\",\n  \"depositCost\": \"{{ $json.Cost }}\",\n}"
            }
          ]
        },
        "jsonOutput": true
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.6
    },
    {
      "id": "11ef1ca8-5923-4a70-a122-0cc22e307ded",
      "name": "Create Stripe Payment Link",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1520,
        80
      ],
      "parameters": {
        "url": "https://api.stripe.com/v1/checkout/sessions",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "form-urlencoded",
        "sendHeaders": true,
        "authentication": "predefinedCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "mode",
              "value": "=payment"
            },
            {
              "name": "success_url",
              "value": "=https://www.google.com/success"
            },
            {
              "name": "cancel_url",
              "value": "=https://www.google.com/cancel"
            },
            {
              "name": "line_items[0][price_data][unit_amount]",
              "value": "=10000"
            },
            {
              "name": "line_items[0][price_data][product_data][name]",
              "value": "=Service Package"
            },
            {
              "name": "metadata[leadId]",
              "value": "=12345"
            },
            {
              "name": "line_items[0][quantity]",
              "value": "1"
            },
            {
              "name": "line_items[0][price_data][currency]",
              "value": "usd"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/x-www-form-urlencoded"
            }
          ]
        },
        "nodeCredentialType": "stripeApi"
      },
      "credentials": {
        "stripeApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.3
    },
    {
      "id": "4aa7a19d-61bf-48b4-b90a-7702f78ea1a1",
      "name": "Create Proposal Template",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1072,
        80
      ],
      "parameters": {
        "name": "={{ $json.message.content.proposalTitle }}",
        "fileId": {
          "__rl": true,
          "mode": "list",
          "value": "1yHlq0o1hAwJkPxq70XraTEYtpoD-2U9sZm1dKyWj3EM",
          "cachedResultUrl": "https://docs.google.com/presentation/d/1yHlq0o1hAwJkPxq70XraTEYtpoD-2U9sZm1dKyWj3EM/edit?usp=drivesdk",
          "cachedResultName": "Copy of OMG |  N8N | Proposal Template - 2025-04"
        },
        "options": {
          "copyRequiresWriterPermission": false
        },
        "operation": "copy"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "abd7e1a5-f7e7-4d90-84b3-9236eab3efac",
      "name": "Customize Proposal",
      "type": "n8n-nodes-base.googleSlides",
      "position": [
        1280,
        80
      ],
      "parameters": {
        "textUi": {
          "textValues": [
            {
              "text": "{{proposalTitle}}",
              "replaceText": "={{ $('Generate Proposal Copy1').item.json.message.content.proposalTitle }}"
            },
            {
              "text": "{{descriptionName}}",
              "replaceText": "={{ $('Generate Proposal Copy1').item.json.message.content.descriptionName }}"
            },
            {
              "text": "{{oneParagraphProblemSummary}}",
              "replaceText": "={{ $('Generate Proposal Copy1').item.json.message.content.oneParagraphProblemSummary }}"
            },
            {
              "text": "{{solutionHeadingOne}}",
              "replaceText": "={{ $('Generate Proposal Copy1').item.json.message.content.solutionHeadingOne }}"
            },
            {
              "text": "{{solutionHeadingTwo}}",
              "replaceText": "={{ $('Generate Proposal Copy1').item.json.message.content.solutionHeadingTwo }}"
            },
            {
              "text": "{{solutionHeadingThree}}",
              "replaceText": "={{ $('Generate Proposal Copy1').item.json.message.content.solutionHeadingThree }}"
            },
            {
              "text": "{{solutionDescriptionOne}}",
              "replaceText": "={{ $('Generate Proposal Copy1').item.json.message.content.solutionDescriptionOne }}"
            },
            {
              "text": "{{solutionDescriptionTwo}}",
              "replaceText": "={{ $('Generate Proposal Copy1').item.json.message.content.solutionDescriptionTwo }}"
            },
            {
              "text": "{{solutionDescriptionThree}}",
              "replaceText": "={{ $('Generate Proposal Copy1').item.json.message.content.solutionDescriptionThree }}"
            },
            {
              "text": "{{shortScopeTitleOne}}",
              "replaceText": "={{ $('Generate Proposal Copy1').item.json.message.content.shortScopeTitleOne }}"
            },
            {
              "text": "{{shortScopeTitleTwo}}",
              "replaceText": "={{ $('Generate Proposal Copy1').item.json.message.content.shortScopeTitleTwo }}"
            },
            {
              "text": "{{shortScopeTitleThree}}",
              "replaceText": "={{ $('Generate Proposal Copy1').item.json.message.content.shortScopeTitleThree }}"
            },
            {
              "text": "{{shortScopeDescriptionOne}}",
              "replaceText": "={{ $('Generate Proposal Copy1').item.json.message.content.shortScopeDescriptionOne }}"
            },
            {
              "text": "{{shortScopeDescriptionTwo}}",
              "replaceText": "={{ $('Generate Proposal Copy1').item.json.message.content.shortScopeDescriptionTwo }}"
            },
            {
              "text": "{{shortScopeDescriptionThree}}",
              "replaceText": "={{ $('Generate Proposal Copy1').item.json.message.content.shortScopeDescriptionThree }}"
            },
            {
              "text": "{{milestoneOneDay}}",
              "replaceText": "={{ $('Generate Proposal Copy1').item.json.message.content.milestoneOneDay }}"
            },
            {
              "text": "{{milestoneTwoDay}}",
              "replaceText": "={{ $('Generate Proposal Copy1').item.json.message.content.milestoneTwoDay }}"
            },
            {
              "text": "{{milestoneThreeDay}}",
              "replaceText": "={{ $('Generate Proposal Copy1').item.json.message.content.milestoneThreeDay }}"
            },
            {
              "text": "{{milestoneFourDay}}",
              "replaceText": "={{ $('Generate Proposal Copy1').item.json.message.content.milestoneFourDay }}"
            },
            {
              "text": "{{milestoneDescriptionOne}}",
              "replaceText": "={{ $('Generate Proposal Copy1').item.json.message.content.milestoneDescriptionOne }}"
            },
            {
              "text": "{{milestoneDescriptionTwo}}",
              "replaceText": "={{ $('Generate Proposal Copy1').item.json.message.content.milestoneDescriptionTwo }}"
            },
            {
              "text": "{{milestoneDescriptionThree}}",
              "replaceText": "={{ $('Generate Proposal Copy1').item.json.message.content.milestoneDescriptionThree }}"
            },
            {
              "text": "{{milestoneDescriptionFour}}",
              "replaceText": "={{ $('Generate Proposal Copy1').item.json.message.content.milestoneDescriptionFour }}"
            },
            {
              "text": "{{cost}}",
              "replaceText": "$1,850"
            }
          ]
        },
        "options": {},
        "operation": "replaceText",
        "presentationId": "={{ $json.id }}"
      },
      "credentials": {
        "googleSlidesOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "9cdfe15e-3a22-4d49-bffd-b06865875817",
      "name": "Find Client Details From CRM",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        496,
        80
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupValue": "={{ $json.payload.email }}",
              "lookupColumn": "Email"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ROLrrdi9qCrbt80dpn27UrnXydCRH_oGKbW61_G_liw/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1ROLrrdi9qCrbt80dpn27UrnXydCRH_oGKbW61_G_liw",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ROLrrdi9qCrbt80dpn27UrnXydCRH_oGKbW61_G_liw/edit?usp=drivesdk",
          "cachedResultName": "CRM"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "09148f34-4911-48b6-91f9-885311080180",
      "name": "Calendly Trigger Booked Meeting",
      "type": "n8n-nodes-base.calendlyTrigger",
      "position": [
        240,
        80
      ],
      "parameters": {
        "events": [
          "invitee.created"
        ],
        "authentication": "oAuth2"
      },
      "credentials": {
        "calendlyOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "259ef317-37ed-4969-a159-26812c0f808f",
      "name": "Email Follow-up",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1744,
        80
      ],
      "parameters": {
        "sendTo": "={{ $('Find Client Details From CRM').item.json.Email }}",
        "message": "=Hey {{ $('Find Client Details From CRM').item.json['Person Name'] }},\n\nGreat chatting earlier. I put together a proposal that reflects what we discussed and how this could work in practice.\n\nProposal:\nhttps://docs.google.com/presentation/d/{{ $('Create Proposal Template').item.json.id }}/edit\n\nIf everything looks good, you can also secure the spot and kick things off here: {{ $json.url }}\n\nHappy to tweak anything if needed.\n\nThanks,  \nCliss",
        "options": {
          "appendAttribution": false
        },
        "subject": "Re: Proposal for ",
        "emailType": "text"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "33e6f5de-69db-4fed-8c36-47e9bc1945d9",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        208,
        -128
      ],
      "parameters": {
        "width": 432,
        "height": 384,
        "content": "## Trigger & lead context\n\n\u2022 Starts when a meeting is booked (Calendly)\n\u2022 Looks up lead details in a CRM (Google Sheets)\n\u2022 Normalizes inputs for downstream automation\n\nThis section prepares clean, structured data for proposal generation."
      },
      "typeVersion": 1
    },
    {
      "id": "01019fb0-c53c-466c-838e-2b268fa38cc1",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        688,
        -128
      ],
      "parameters": {
        "width": 720,
        "height": 384,
        "content": "## Proposal generation & document creation\n\n\u2022 Uses AI to generate structured proposal content\n\u2022 Copies a Google Slides template\n\u2022 Injects generated content into the deck\n\nOutput: a client-ready proposal link with no manual editing."
      },
      "typeVersion": 1
    },
    {
      "id": "b9a02e7e-7422-49fa-be7a-97d6f64a949d",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1472,
        -128
      ],
      "parameters": {
        "width": 400,
        "height": 384,
        "content": "## Payment & follow-up\n\n\u2022 Creates a Stripe Checkout session\n\u2022 Sends a personalized follow-up email\n\u2022 Includes proposal link and payment link\n\nThis closes the loop from call \u2192 proposal \u2192 payment."
      },
      "typeVersion": 1
    },
    {
      "id": "a1e39aaf-83b9-4b0b-8ee0-0ba9d5f6173a",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1584,
        -384
      ],
      "parameters": {
        "width": 288,
        "height": 224,
        "content": "## \u26a1 BUSINESS IMPACT\n\nThis workflow:\n\t\u2022\tRemoves manual proposal writing\n\t\u2022\tEliminates follow-up delays\n\t\u2022\tStandardizes your close process\n\t\u2022\tSpeeds up payment collection\n\nBooked call \u2192 proposal \u2192 payment \u2192 done."
      },
      "typeVersion": 1
    },
    {
      "id": "02e13acd-d390-4164-ae77-141d3254a03d",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        240,
        -384
      ],
      "parameters": {
        "width": 640,
        "content": "## \ud83e\udde9 CUSTOMIZATION NOTES\n\t\u2022\tSwap Google Sheets for Airtable, HubSpot, or Notion\n\t\u2022\tAdjust proposal tone entirely via prompt\n\t\u2022\tExtend Stripe metadata for analytics\n\t\u2022\tAdd reminders or follow-ups easily"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "availableInMCP": false,
    "executionOrder": "v1"
  },
  "versionId": "53f67c4c-13ec-438c-95fa-a5eeafe1a843",
  "connections": {
    "Customize Proposal": {
      "main": [
        [
          {
            "node": "Create Stripe Payment Link",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Proposal Copy1": {
      "main": [
        [
          {
            "node": "Create Proposal Template",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Proposal Template": {
      "main": [
        [
          {
            "node": "Customize Proposal",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Stripe Payment Link": {
      "main": [
        [
          {
            "node": "Email Follow-up",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Find Client Details From CRM": {
      "main": [
        [
          {
            "node": "Generate Proposal Copy1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Calendly Trigger Booked Meeting": {
      "main": [
        [
          {
            "node": "Find Client Details From CRM",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Categories: Sales Automation, AI Proposals, Revenue Ops

Source: https://n8n.io/workflows/12530/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

What it is An automated LinkedIn content system that takes a simple form (idea + optional file), generates LinkedIn posts with OpenAI, stores them in Notion, builds Google Slides carousels, and auto-p

Form Trigger, OpenAI, Notion +6
AI & RAG

An n8n-based automation that generates client proposals from a form, lets you review everything in one place, and sends the proposal only when you approve it.

Form Trigger, Google Sheets Trigger, OpenAI +4
AI & RAG

Overview

Gmail Trigger, Google Drive, OpenAI +4
AI & RAG

💥 Automate YouTube thumbnail creation from video links -vide. Uses telegramTrigger, httpRequest, googleDrive, gmail. Event-driven trigger; 25 nodes.

Telegram Trigger, HTTP Request, Google Drive +6
AI & RAG

💥 Automate YouTube thumbnail creation from video links -vide. Uses telegramTrigger, httpRequest, googleDrive, gmail. Event-driven trigger; 25 nodes.

Telegram Trigger, HTTP Request, Google Drive +6