{
  "workflow": {
    "id": 7295,
    "name": "Launch AWS EC2 instances from Google Sheets using Terraform",
    "views": 651,
    "recentViews": 0,
    "totalViews": 651,
    "createdAt": "2025-08-12T14:00:33.829Z",
    "description": "This automated n8n workflow enables launching AWS EC2 instances directly from a Google Sheets document. Users can specify instance details (e.g., region, instance type, key pair) in a Google Sheet, triggering the workflow to create EC2 instances via the AWS API. The workflow updates the sheet with instance information and sends confirmation emails.\n\n## Fundamental Aspects\n- **Google Sheets Trigger**: Initiates the workflow when a new row is added or updated in the Google Sheet.\n- **Extract Instance Details**: Parses region, instance type, key pair name, and instance name from the sheet.\n- **Validate Inputs**: Checks for required fields and valid AWS configurations.\n- **Launch EC2 Instance**: Uses the AWS EC2 API to launch the specified instance.\n- **Update Google Sheet**: Adds instance ID and status to the sheet.\n- **Send Confirmation Email**: Notifies the user via email with instance details.\n\n## Setup Instructions\n- **Import the Workflow into n8n**: Download the workflow JSON and import it via the n8n interface.\n- **Configure API Credentials**:\n  - Set up Google Sheets API credentials with appropriate permissions.\n  - Configure AWS IAM credentials with EC2 launch permissions.\n  - Configure SMTP credentials for email notifications.\n- **Prepare Google Sheet**: Create a sheet with columns for region, instance type, key pair name, instance name, instance ID, and status.\n- **Run the Workflow**: Activate the Google Sheets trigger and test by adding a row with instance details.\n- **Verify Responses**: Check the Google Sheet for updated instance IDs and emails for confirmation.\n- **Adjust Parameters**: Fine-tune AWS region settings or email templates as needed.\n\n## Technical Dependencies\n- **Google Sheets API**: For reading and writing data.\n- **AWS EC2 API**: For launching and managing instances.\n- **SMTP Service**: For sending confirmation emails.\n- **n8n**: For workflow automation and integration.\n\n## Customization Possibilities\n- **Add Instance Types**: Support additional EC2 instance types.\n- **Enhance Validation**: Add checks for AWS limits or quotas.\n- **Support Tags**: Include custom tags for launched instances.\n- **Add Logging**: Integrate with a logging service for workflow tracking.\n- **Customize Emails**: Adjust email content or add attachments.",
    "workflow": {
      "id": "5T0q54z7XbP4rDKb",
      "meta": {
        "instanceId": "dd69efaf8212c74ad206700d104739d3329588a6f3f8381a46a481f34c9cc281",
        "templateCredsSetupCompleted": true
      },
      "name": "Launch AWS EC2 Instances from Google Sheets",
      "tags": [],
      "nodes": [
        {
          "id": "7b6273c0-bbfc-4f5d-aecb-288b154300cc",
          "name": "Workflow Overview",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            920,
            -860
          ],
          "parameters": {
            "width": 420,
            "height": 300,
            "content": "## 🚀 AWS EC2 Auto Launcher\n\n### Features:\n• Reads launch requests from Google Sheets\n• Launches EC2 instances via AWS API\n• Updates status in spreadsheet\n• Sends detailed confirmation emails\n• Error handling with notifications\n• Scheduled or manual execution\n\n### Triggers: Daily at 9 AM or Manual"
          },
          "typeVersion": 1
        },
        {
          "id": "b6c7b146-2815-4669-bdf0-f0cad7b7a0d7",
          "name": "Sticky Note",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -240,
            -980
          ],
          "parameters": {
            "color": 5,
            "width": 580,
            "height": 1140,
            "content": "### **`main.tf`**\n\n```hcl\n# Configure AWS provider\nprovider \"aws\" {\n  region  = var.aws_region\n  profile = var.aws_profile\n}\n\n# Create EC2 instance\nresource \"aws_instance\" \"example\" {\n  ami           = var.ami_id\n  instance_type = var.instance_type\n  key_name      = var.key_name\n\n  tags = {\n    Name = var.instance_name\n  }\n}\n\n# Output EC2 public IP\noutput \"ec2_public_ip\" {\n  value = aws_instance.example.public_ip\n}\n```\n\n---\n\n### **`variables.tf`**\n\n```hcl\nvariable \"aws_region\" {\n  description = \"AWS region to deploy in\"\n  type        = string\n}\n\nvariable \"aws_profile\" {\n  description = \"AWS CLI profile to use\"\n  type        = string\n  default     = \"default\"\n}\n\nvariable \"ami_id\" {\n  description = \"AMI ID for EC2 instance\"\n  type        = string\n}\n\nvariable \"instance_type\" {\n  description = \"EC2 instance type\"\n  type        = string\n  default     = \"t2.micro\"\n}\n\nvariable \"key_name\" {\n  description = \"SSH key pair name\"\n  type        = string\n}\n\nvariable \"instance_name\" {\n  description = \"EC2 instance Name tag\"\n  type        = string\n}\n```\n\n---\n\n"
          },
          "typeVersion": 1
        },
        {
          "id": "70087b97-5a6c-4a47-9c28-906f731d97ae",
          "name": "Sticky Note1",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            380,
            -860
          ],
          "parameters": {
            "color": 3,
            "width": 460,
            "height": 220,
            "content": "\n### **`terraform.tfvars`** (example values)\n\n```hcl\naws_region     = \"us-east-1\"\nami_id         = \"ami-0c55b159cbfafe1f0\"\ninstance_type  = \"t2.micro\"\nkey_name       = \"my-keypair\"\ninstance_name  = \"MyTerraformEC2\"\n```\n\n"
          },
          "typeVersion": 1
        },
        {
          "id": "55d7ea64-2ad7-4359-ba3c-0a589d29ce9c",
          "name": "Google Sheets Trigger",
          "type": "n8n-nodes-base.scheduleTrigger",
          "position": [
            500,
            -480
          ],
          "parameters": {
            "rule": {
              "interval": [
                {
                  "triggerAtHour": 10
                }
              ]
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "ef286e0d-08f4-429c-b701-448406fb950d",
          "name": "Extract Instance Details",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            720,
            -480
          ],
          "parameters": {
            "options": {},
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": "Launch_Requests",
              "cachedResultName": "Launch Requests"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "YOUR_EC2_SHEET_ID",
              "cachedResultName": "EC2 Launch Requests"
            },
            "authentication": "serviceAccount"
          },
          "credentials": {
            "googleApi": {
              "id": "credential-id",
              "name": "googleApi Credential"
            }
          },
          "typeVersion": 4.6
        },
        {
          "id": "b74895b0-b01a-4675-9af0-8cd256016576",
          "name": "Launch EC2 Instance",
          "type": "n8n-nodes-base.ssh",
          "position": [
            940,
            -480
          ],
          "parameters": {
            "command": "=# Variables\nSERVER_USER=\"{{ $json.server_user }}\"\nSERVER_IP=\"{{ $json.server_ip }}\"\nWORKSPACE_NAME=\"{{ $json.workspace_name }}\"\nPWD=\"{{ $json.pwd }}\"\n\n# SSH and run Terraform commands\necho \"$PWD\" | ssh ${SERVER_USER}@${SERVER_IP} \"\n    cd /path/to/terraform/project &&\n    terraform workspace new ${WORKSPACE_NAME} || terraform workspace select ${WORKSPACE_NAME} &&\n    terraform init &&\n    terraform plan -out=tfplan &&\n    terraform apply -auto-approve tfplan\n\"",
            "authentication": "privateKey"
          },
          "credentials": {
            "sshPrivateKey": {
              "id": "credential-id",
              "name": "sshPrivateKey Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "ee365181-a63b-4216-990b-ac2c5d721ea8",
          "name": "Update Google Sheet",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            1160,
            -480
          ],
          "parameters": {
            "columns": {
              "value": {
                "ami_id": "={{ $json.ami_id }}",
                "region": "={{ $json.region }}",
                "key_pair": "={{ $json.key_pair }}",
                "public_ip": "={{ $json.public_ip }}",
                "timestamp": "={{ $now.toISO() }}",
                "private_ip": "={{ $json.private_ip }}",
                "instance_id": "={{ $json.instance_id }}",
                "project_name": "={{ $json.project_name }}",
                "instance_name": "={{ $json.instance_name }}",
                "instance_type": "={{ $json.instance_type }}",
                "launch_status": "={{ $json.launch_status }}",
                "instance_state": "={{ $json.instance_state }}",
                "reservation_id": "={{ $json.reservation_id }}",
                "security_group": "={{ $json.security_group }}",
                "requester_email": "={{ $json.requester_email }}",
                "availability_zone": "={{ $json.availability_zone }}"
              },
              "schema": [
                {
                  "id": "timestamp",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Launch Timestamp",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "instance_name",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Instance Name",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "instance_id",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Instance ID",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "instance_type",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Instance Type",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "ami_id",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "AMI ID",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "region",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Region",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "availability_zone",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Availability Zone",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "private_ip",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Private IP",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "public_ip",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Public IP",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "instance_state",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Instance State",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "key_pair",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Key Pair",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "security_group",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Security Group",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "project_name",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Project Name",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "requester_email",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Requester Email",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "launch_status",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Launch Status",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "reservation_id",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Reservation ID",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                }
              ],
              "mappingMode": "defineBelow"
            },
            "options": {},
            "operation": "append",
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": "Launched_Instances",
              "cachedResultName": "Launched Instances"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "YOUR_EC2_SHEET_ID",
              "cachedResultName": "EC2 Launch Requests"
            },
            "authentication": "serviceAccount"
          },
          "credentials": {
            "googleApi": {
              "id": "credential-id",
              "name": "googleApi Credential"
            }
          },
          "typeVersion": 4.6
        },
        {
          "id": "61b4af75-72fd-4da6-a2ca-e3e9a16d928e",
          "name": "Send Confirmation Email",
          "type": "n8n-nodes-base.gmail",
          "position": [
            1380,
            -480
          ],
          "webhookId": "949ecb7a-7e69-4348-adae-6299098bd08c",
          "parameters": {
            "sendTo": "={{ $json.requester_email }}",
            "message": "=<h2>🚀 EC2 Instance Launch Confirmation</h2><br><br><strong>Great news!</strong> Your EC2 instance has been launched successfully.<br><br><div style=\"background-color: #f8f9fa; padding: 20px; border-radius: 8px; border-left: 4px solid #28a745;\"><h3>📋 Instance Details</h3><p><strong>Instance Name:</strong> {{ $json.instance_name }}<br><strong>Instance ID:</strong> <code>{{ $json.instance_id }}</code><br><strong>Instance Type:</strong> {{ $json.instance_type }}<br><strong>AMI ID:</strong> {{ $json.ami_id }}<br><strong>Region:</strong> {{ $json.region }}<br><strong>Availability Zone:</strong> {{ $json.availability_zone }}<br><strong>Current State:</strong> {{ $json.instance_state }}<br><strong>Key Pair:</strong> {{ $json.key_pair }}<br><strong>Security Group:</strong> {{ $json.security_group }}</p></div><br><div style=\"background-color: #e3f2fd; padding: 20px; border-radius: 8px; border-left: 4px solid #2196f3;\"><h3>🌐 Network Information</h3><p><strong>Private IP:</strong> {{ $json.private_ip }}<br><strong>Public IP:</strong> {{ $json.public_ip || 'Not assigned yet' }}</p></div><br><div style=\"background-color: #fff3e0; padding: 20px; border-radius: 8px; border-left: 4px solid #ff9800;\"><h3>📊 Additional Info</h3><p><strong>Launch Time:</strong> {{ $json.launch_time_aws }}<br><strong>Project:</strong> {{ $json.project_name }}<br><strong>Reservation ID:</strong> {{ $json.reservation_id }}<br><strong>Platform:</strong> {{ $json.platform }}<br><strong>Architecture:</strong> {{ $json.architecture }}</p></div><br><div style=\"background-color: #ffebee; padding: 15px; border-radius: 8px; border: 1px solid #f44336;\"><h4>⚠️ Important Notes</h4><ul><li>It may take a few minutes for the instance to be fully available</li><li>Public IP will be assigned once the instance is running</li><li>Remember to terminate the instance when no longer needed to avoid charges</li><li>You can connect using your key pair: <code>{{ $json.key_pair }}</code></li></ul></div><br><h3>🔗 AWS Console Link</h3><p><a href=\"https://{{ $json.region }}.console.aws.amazon.com/ec2/v2/home?region={{ $json.region }}#InstanceDetails:instanceId={{ $json.instance_id }}\" style=\"background-color: #007bff; color: white; padding: 10px 20px; text-decoration: none; border-radius: 5px;\">View in AWS Console</a></p><br><p>If you have any questions or need assistance, please contact the infrastructure team.</p><br><p><em>This instance was launched automatically via n8n workflow.</em></p>",
            "options": {
              "ccList": "user@example.com"
            },
            "subject": "✅ AWS EC2 Instance Launched Successfully - {{ $json.instance_name }}"
          },
          "credentials": {
            "gmailOAuth2": {
              "id": "credential-id",
              "name": "gmailOAuth2 Credential"
            }
          },
          "typeVersion": 2.1
        }
      ],
      "active": false,
      "pinData": {},
      "settings": {
        "executionOrder": "v1"
      },
      "versionId": "843e8aef-5fe8-413e-9a16-7c42b7575f7f",
      "connections": {
        "Launch EC2 Instance": {
          "main": [
            [
              {
                "node": "Update Google Sheet",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Update Google Sheet": {
          "main": [
            [
              {
                "node": "Send Confirmation Email",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Google Sheets Trigger": {
          "main": [
            [
              {
                "node": "Extract Instance Details",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Extract Instance Details": {
          "main": [
            [
              {
                "node": "Launch EC2 Instance",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 29,
    "workflowInfo": {
      "nodeCount": 8,
      "nodeTypes": {
        "n8n-nodes-base.ssh": {
          "count": 1
        },
        "n8n-nodes-base.gmail": {
          "count": 1
        },
        "n8n-nodes-base.stickyNote": {
          "count": 3
        },
        "n8n-nodes-base.googleSheets": {
          "count": 2
        },
        "n8n-nodes-base.scheduleTrigger": {
          "count": 1
        }
      }
    },
    "status": "published",
    "user": {
      "name": "Oneclick AI Squad",
      "username": "oneclick-ai",
      "bio": "The AI Squad Initiative is a pioneering effort to build, automate and scale AI-powered workflows using n8n.io. Our mission is to help individuals and businesses integrate AI agents seamlessly into their daily operations  from automating tasks and enhancing productivity to creating innovative, intelligent solutions. We design modular, reusable AI workflow templates that empower creators, developers and teams to supercharge their automation with minimal effort and maximum impact.",
      "verified": true,
      "links": [
        "https://www.oneclickitsolution.com/"
      ],
      "avatar": "https://gravatar.com/avatar/848fca91367142f65f9e5c55d64e5c9952b160d7b060d103b52aa343c6bc7b3d?r=pg&d=retro&size=200"
    },
    "nodes": [
      {
        "id": 18,
        "icon": "file:googleSheets.svg",
        "name": "n8n-nodes-base.googleSheets",
        "codex": {
          "data": {
            "alias": [
              "CSV",
              "Sheet",
              "Spreadsheet",
              "GS"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/love-at-first-sight-ricardos-n8n-journey/",
                  "icon": "❤️",
                  "label": "Love at first sight: Ricardo’s n8n journey"
                },
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/",
                  "icon": "🧾",
                  "label": "Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/",
                  "icon": "🎫",
                  "label": "Supercharging your conference registration process with n8n"
                },
                {
                  "url": "https://n8n.io/blog/creating-triggers-for-n8n-workflows-using-polling/",
                  "icon": "⏲",
                  "label": "Creating triggers for n8n workflows using polling"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/",
                  "icon": "📈",
                  "label": "Migrating Community Metrics to Orbit using n8n"
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/your-business-doesnt-need-you-to-operate/",
                  "icon": " 🖥️",
                  "label": "Hey founders! Your business doesn't need you to operate"
                },
                {
                  "url": "https://n8n.io/blog/how-honest-burgers-use-automation-to-save-100k-per-year/",
                  "icon": "🍔",
                  "label": "How Honest Burgers Use Automation to Save $100k per year"
                },
                {
                  "url": "https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/",
                  "icon": "💻",
                  "label": "How a digital strategist uses n8n for online marketing"
                },
                {
                  "url": "https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/",
                  "icon": "🧠",
                  "label": "Why this Product Manager loves workflow automation with n8n"
                },
                {
                  "url": "https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/",
                  "icon": "🙌",
                  "label": "Sending Automated Congratulations with Google Sheets, Twilio, and n8n "
                },
                {
                  "url": "https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/",
                  "icon": "📈",
                  "label": "How a Membership Development Manager automates his work and investments"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"
                }
              ]
            },
            "categories": [
              "Data & Storage",
              "Productivity"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"input\",\"output\"]",
        "defaults": {
          "name": "Google Sheets"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNS42OSAxIDUyIDE3LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0OC4yOTMgNjBIMTIuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDkgNTYuMzEyVjQuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTIuNzA3IDF6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM1LjY5IDEgNTIgMTcuMjI1SDM5LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzkuMjExIDE3LjIyNSA1MiAyMi40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTIwLjEyIDMxLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMS42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzEuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNC42OSAwIDUxIDE2LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0Ny4yOTMgNTlIMTEuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDggNTUuMzEyVjMuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTEuNzA3IDB6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM0LjY5IDAgNTEgMTYuMjI1SDM4LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzguMjExIDE2LjIyNSA1MSAyMS40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE5LjEyIDMwLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMC42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzAuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjwvZz48L3N2Zz4="
        },
        "displayName": "Google Sheets",
        "typeVersion": 5,
        "nodeCategories": [
          {
            "id": 3,
            "name": "Data & Storage"
          },
          {
            "id": 4,
            "name": "Productivity"
          }
        ]
      },
      {
        "id": 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": 490,
        "icon": "fa:terminal",
        "name": "n8n-nodes-base.ssh",
        "codex": {
          "data": {
            "alias": [
              "remote"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.ssh/"
                }
              ]
            },
            "categories": [
              "Core Nodes",
              "Development"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": [
              "Helpers"
            ]
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "SSH",
          "color": "#000000"
        },
        "iconData": {
          "icon": "terminal",
          "type": "icon"
        },
        "displayName": "SSH",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 5,
            "name": "Development"
          },
          {
            "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": 839,
        "icon": "fa:clock",
        "name": "n8n-nodes-base.scheduleTrigger",
        "codex": {
          "data": {
            "alias": [
              "Time",
              "Scheduler",
              "Polling",
              "Cron",
              "Interval"
            ],
            "resources": {
              "generic": [],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"trigger\",\"schedule\"]",
        "defaults": {
          "name": "Schedule Trigger",
          "color": "#31C49F"
        },
        "iconData": {
          "icon": "clock",
          "type": "icon"
        },
        "displayName": "Schedule Trigger",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 16,
        "name": "DevOps"
      },
      {
        "id": 51,
        "name": "Multimodal AI"
      }
    ],
    "image": []
  }
}