AutomationFlowsMarketing & Ads › Ch1

Ch1

ch1. Uses formTrigger, googleSheets, gmail. Event-driven trigger; 8 nodes.

Event trigger★★★★☆ complexity8 nodesForm TriggerGoogle SheetsGmail
Marketing & Ads Trigger: Event Nodes: 8 Complexity: ★★★★☆ Added:

This workflow follows the Form Trigger → Gmail 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
{
  "name": "ch1",
  "nodes": [
    {
      "parameters": {
        "formTitle": "test form",
        "formDescription": "this is a form for testing",
        "formFields": {
          "values": [
            {
              "fieldLabel": "first name"
            },
            {
              "fieldLabel": "last name"
            },
            {
              "fieldLabel": "email"
            },
            {
              "fieldLabel": "budget",
              "fieldType": "dropdown",
              "fieldOptions": {
                "values": [
                  {
                    "option": "0-100"
                  },
                  {
                    "option": "200-1000"
                  },
                  {
                    "option": "1000+"
                  }
                ]
              }
            },
            {
              "fieldLabel": "message"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.formTrigger",
      "typeVersion": 2.6,
      "position": [
        -400,
        0
      ],
      "id": "e8006d01-bd31-4e3d-8813-e74a2ce2d7c4",
      "name": "On form submission"
    },
    {
      "parameters": {
        "operation": "appendOrUpdate",
        "documentId": {
          "__rl": true,
          "value": "YOUR_GOOGLE_SHEET_ID",
          "mode": "list",
          "cachedResultName": "learning n8n",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEET_ID"
        },
        "sheetName": {
          "__rl": true,
          "value": "gid=0",
          "mode": "list",
          "cachedResultName": "Sheet1",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/SHEET_NAME"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "first name": "={{ $json['first name'] }}",
            "last name": "={{ $json['last name'] }}",
            "email": "={{ $json.email }}",
            "budget": "={{ $json.budget }}",
            "message": "={{ $json.message }}",
            "date": "={{ $json.submittedAt }}",
            "rejected": "={{ $if($json.budget===\"1000+\",\"FALSE\",\"TRUE\") }}"
          },
          "matchingColumns": [
            "email"
          ],
          "schema": [
            {
              "id": "first name",
              "displayName": "first name",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "last name",
              "displayName": "last name",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "email",
              "displayName": "email",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "budget",
              "displayName": "budget",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "message",
              "displayName": "message",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "date",
              "displayName": "date",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "rejected",
              "displayName": "rejected",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.7,
      "position": [
        -192,
        0
      ],
      "id": "4e7693e2-c905-4e4c-9c85-b65e54cb450d",
      "name": "Append or update row in sheet",
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 3
          },
          "conditions": [
            {
              "id": "5bfa99a2-50ef-4f0e-9d24-9ab759c0d48c",
              "leftValue": "={{ $('On form submission').item.json.budget }}",
              "rightValue": "0-100",
              "operator": {
                "type": "string",
                "operation": "notEquals"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.filter",
      "typeVersion": 2.3,
      "position": [
        16,
        0
      ],
      "id": "cc59f61c-acc2-49a9-8aac-1efd0d1f2d46",
      "name": "Filter"
    },
    {
      "parameters": {
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 3
                },
                "conditions": [
                  {
                    "leftValue": "={{ $('On form submission').item.json.budget }}",
                    "rightValue": "1000+",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "id": "7bdc59b8-1fd5-4171-99bc-9abe1a40e5b9"
                  }
                ],
                "combinator": "and"
              }
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 3
                },
                "conditions": [
                  {
                    "id": "887657e0-19b0-4e01-9c58-7339ef81e039",
                    "leftValue": "={{ $('On form submission').item.json.budget }}",
                    "rightValue": "200-1000",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ],
                "combinator": "and"
              }
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.switch",
      "typeVersion": 3.4,
      "position": [
        224,
        0
      ],
      "id": "e73144fb-4ac0-4277-8bc8-44333a001ff3",
      "name": "Switch"
    },
    {
      "parameters": {
        "sendTo": "={{ $('On form submission').item.json.email }}",
        "subject": "Do not reply",
        "emailType": "text",
        "message": "=Hi  {{ $('On form submission').item.json['first name'] }},\n\nI will get back to you by this week. Thanks for your interest in our company.",
        "options": {
          "appendAttribution": false
        }
      },
      "type": "n8n-nodes-base.gmail",
      "typeVersion": 2.2,
      "position": [
        432,
        -96
      ],
      "id": "9017eec9-be35-4123-829d-f5877f9513e3",
      "name": "Send a message",
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "sendTo": "={{ $('On form submission').item.json.email }}",
        "subject": "Do not reply",
        "emailType": "text",
        "message": "=Hi  {{ $('On form submission').item.json['first name'] }},\n\nThanks for your interest. Please book a time in my calendar and we can have a call. \nlink: https://calendly.com/your-name",
        "options": {}
      },
      "type": "n8n-nodes-base.gmail",
      "typeVersion": 2.2,
      "position": [
        432,
        80
      ],
      "id": "fd79672b-65fd-408c-8d30-18d8ea29bfa8",
      "name": "Send a message1",
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {},
      "type": "n8n-nodes-base.merge",
      "typeVersion": 3.2,
      "position": [
        704,
        -16
      ],
      "id": "0b94e97e-22f1-4c0a-83d3-1d4c51e470d2",
      "name": "Merge",
      "disabled": true
    },
    {
      "parameters": {
        "sendTo": "=your-email@example.com",
        "subject": "Do not reply",
        "emailType": "text",
        "message": "=you got a new lead!\nname: {{ $('Append or update row in sheet').item.json['first name'] }}\neamil: {{ $('Append or update row in sheet').item.json.email }}\nbudget: {{ $('Append or update row in sheet').item.json.budget }}",
        "options": {
          "appendAttribution": false
        }
      },
      "type": "n8n-nodes-base.gmail",
      "typeVersion": 2.2,
      "position": [
        1008,
        -16
      ],
      "id": "407758a4-4e26-4124-b114-e6a0e7f9bfce",
      "name": "Send a message2",
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "On form submission": {
      "main": [
        [
          {
            "node": "Append or update row in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Append or update row in sheet": {
      "main": [
        [
          {
            "node": "Filter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter": {
      "main": [
        [
          {
            "node": "Switch",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Switch": {
      "main": [
        [
          {
            "node": "Send a message",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Send a message1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send a message": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send a message1": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "Send a message2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1",
    "binaryMode": "separate",
    "availableInMCP": false
  },
  "versionId": "2135fd20-87ba-4fda-9af3-f1f1dfd82585",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodeGroups": [],
  "id": "RUYD9Dx4J6kfazGI",
  "tags": []
}

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

ch1. Uses formTrigger, googleSheets, gmail. Event-driven trigger; 8 nodes.

Source: https://github.com/silyones/Budget-Based-Lead-Routing-Automation-n8n-/blob/master/workflow.json — original creator credit. Request a take-down →

More Marketing & Ads workflows → · Browse all categories →

Related workflows

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

Marketing & Ads

This n8n workflow monitors Reddit for posts relevant to a specific business or industry, identifies potential leads, and delivers them directly to your inbox.

OpenRouter Chat, HTTP Request Tool, Output Parser Structured +5
Marketing & Ads

Run professional email campaigns with A/B testing, Google Sheets tracking, and Slack analytics. FEATURES:

Google Sheets, Slack, Gmail +1
Marketing & Ads

This workflow allows you to send multi-step email campaigns using n8n, Gmail and Google Sheets.

Google Sheets, Gmail, Execute Workflow Trigger
Marketing & Ads

Google Maps Lead Generation with Email Discovery. Uses @hasdata/n8n-nodes-hasdata, googleSheets, formTrigger. Event-driven trigger; 25 nodes.

@Hasdata/N8N Nodes Hasdata, Google Sheets, Form Trigger
Marketing & Ads

This workflow automates sales contact follow-ups and engagement tracking by integrating HighLevel CRM, Gmail, Slack, and Google Sheets. It fetches all contacts from HighLevel, filters inactive contact

High Level, Google Sheets, Gmail +1