AutomationFlowsData & Sheets › Sebastian

Sebastian

Sebastian. Uses googleSheets, googleSheetsTrigger, httpRequest. Event-driven trigger; 13 nodes.

Event trigger★★★★☆ complexity13 nodesGoogle SheetsGoogle Sheets TriggerHTTP Request
Data & Sheets Trigger: Event Nodes: 13 Complexity: ★★★★☆ Added:

This workflow follows the Google Sheets → Googlesheetstrigger 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
{
  "active": true,
  "connections": {
    "Split In Batches": {
      "main": [
        [
          {
            "node": "Nome e telefone para validar",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Cadastrando na Audi\u00eancia": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Nome e telefone para validar": {
      "main": [
        [
          {
            "node": "Formatando Nome e Telefone",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Formatando Nome e Telefone": {
      "main": [
        [
          {
            "node": "Cadastrando na Audi\u00eancia",
            "type": "main",
            "index": 0
          },
          {
            "node": "Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait": {
      "main": [
        [
          {
            "node": "Split In Batches",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "telefone vazio": {
      "main": [
        [
          {
            "node": "Split In Batches",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook": {
      "main": [
        [
          {
            "node": "Google Sheets1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets Trigger": {
      "main": [
        [
          {
            "node": "telefone vazio",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "enviar fluxo": {
      "main": [
        []
      ]
    }
  },
  "createdAt": "2023-12-05T23:14:31.367Z",
  "id": "4FZXeczPXpD1WPDZ",
  "meta": null,
  "name": "Sebastian",
  "nodes": [
    {
      "parameters": {
        "documentId": {
          "__rl": true,
          "value": "https://docs.google.com/spreadsheets/d/1KQv8Vi4voiUpuIVjmvqm1pgG4Kh7ccoucEdJSSrepGI/edit#gid=482129188",
          "mode": "url",
          "__regex": "https:\\/\\/(?:drive|docs)\\.google\\.com(?:\\/.*|)\\/d\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
        },
        "sheetName": {
          "__rl": true,
          "value": "https://docs.google.com/spreadsheets/d/1KQv8Vi4voiUpuIVjmvqm1pgG4Kh7ccoucEdJSSrepGI/edit#gid=482129188",
          "mode": "url",
          "__regex": "https:\\/\\/docs\\.google\\.com/spreadsheets\\/d\\/[0-9a-zA-Z\\-_]+\\/edit\\#gid=([0-9]+)"
        },
        "filtersUI": {
          "values": [
            {
              "lookupColumn": "TELEFONE FORMATADO",
              "lookupValue": "={{ $json.body.telefone }}"
            }
          ]
        },
        "options": {}
      },
      "id": "d012b1f1-848c-4e3d-a8a8-5d36e121dd29",
      "name": "Google Sheets1",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4,
      "position": [
        720,
        1100
      ],
      "retryOnFail": true,
      "waitBetweenTries": 3000,
      "maxTries": 5,
      "alwaysOutputData": true,
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "documentId": {
          "__rl": true,
          "value": "1KQv8Vi4voiUpuIVjmvqm1pgG4Kh7ccoucEdJSSrepGI",
          "mode": "list",
          "cachedResultName": "BOT-SEBASTIAN",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1KQv8Vi4voiUpuIVjmvqm1pgG4Kh7ccoucEdJSSrepGI/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": 482129188,
          "mode": "list",
          "cachedResultName": "n8n",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1KQv8Vi4voiUpuIVjmvqm1pgG4Kh7ccoucEdJSSrepGI/edit#gid=482129188"
        },
        "options": {
          "columnsToWatch": [
            "NOME"
          ]
        }
      },
      "id": "a3e2a573-46d3-4318-ba97-71e61c056d60",
      "name": "Google Sheets Trigger",
      "type": "n8n-nodes-base.googleSheetsTrigger",
      "typeVersion": 1,
      "position": [
        520,
        640
      ],
      "credentials": {
        "googleSheetsTriggerOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "batchSize": 1,
        "options": {}
      },
      "id": "8fcfdcf7-b230-4d49-bc93-4cfb8502dc32",
      "name": "Split In Batches",
      "type": "n8n-nodes-base.splitInBatches",
      "typeVersion": 2,
      "position": [
        1040,
        660
      ]
    },
    {
      "parameters": {
        "operation": "update",
        "documentId": {
          "__rl": true,
          "value": "https://docs.google.com/spreadsheets/d/1KQv8Vi4voiUpuIVjmvqm1pgG4Kh7ccoucEdJSSrepGI/edit#gid=482129188",
          "mode": "url",
          "__regex": "https:\\/\\/(?:drive|docs)\\.google\\.com(?:\\/.*|)\\/d\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
        },
        "sheetName": {
          "__rl": true,
          "value": "https://docs.google.com/spreadsheets/d/1KQv8Vi4voiUpuIVjmvqm1pgG4Kh7ccoucEdJSSrepGI/edit#gid=482129188",
          "mode": "url",
          "__regex": "https:\\/\\/docs\\.google\\.com/spreadsheets\\/d\\/[0-9a-zA-Z\\-_]+\\/edit\\#gid=([0-9]+)"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "TELEFONE": "={{ $('Split In Batches').item.json.TELEFONE }}",
            "TELEFONE FORMATADO": "={{ $json.whatsapp }}"
          },
          "matchingColumns": [
            "TELEFONE"
          ],
          "schema": [
            {
              "id": "TELEFONE FORMATADO",
              "displayName": "TELEFONE FORMATADO",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "TELEFONE",
              "displayName": "TELEFONE",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "NOME",
              "displayName": "NOME",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": true
            }
          ]
        },
        "options": {
          "locationDefine": {
            "values": {
              "firstDataRow": "={{ $('Split In Batches').item.json.row_number }}"
            }
          }
        }
      },
      "id": "32e8c1ca-4ab7-4bb9-8d7e-89bacb17b9f0",
      "name": "Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4,
      "position": [
        1760,
        560
      ],
      "retryOnFail": true,
      "maxTries": 5,
      "waitBetweenTries": 5000,
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "authentication": "headerAuth",
        "requestMethod": "POST",
        "url": "https://conectawebhook.com.br/api/v1/webhook/subscriber/",
        "options": {},
        "bodyParametersUi": {
          "parameter": [
            {
              "name": "phone",
              "value": "={{ $json.whatsapp }}"
            },
            {
              "name": "first_name",
              "value": "={{ $json.Nome }}"
            },
            {
              "name": "last_name",
              "value": "={{ $json.Sobrenome }}"
            }
          ]
        }
      },
      "name": "Cadastrando na Audi\u00eancia",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 1,
      "position": [
        1760,
        760
      ],
      "id": "16ed68c1-58a5-4ada-bb9d-853231434903",
      "retryOnFail": true,
      "maxTries": 5,
      "waitBetweenTries": 5000,
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "keepOnlySet": true,
        "values": {
          "string": [
            {
              "name": "telefone",
              "value": "={{ $json.TELEFONE.toString() }}"
            },
            {
              "name": "nomeCompleto",
              "value": "={{ $json.NOME }}"
            }
          ]
        },
        "options": {}
      },
      "id": "cd43cc5f-fa3f-475a-8b1f-ea81c21710ca",
      "name": "Nome e telefone para validar",
      "type": "n8n-nodes-base.set",
      "position": [
        1280,
        660
      ],
      "typeVersion": 1
    },
    {
      "parameters": {
        "jsCode": "// Obter a string de nome completo do n\u00f3 anterior\nconst nomeCompleto = items[0].json.nomeCompleto;\n\n// Fun\u00e7\u00e3o para separar o nome completo em nome e sobrenome\nfunction separarNomeSobrenome(nomeCompleto) {\n  // Verificar se o nome completo \u00e9 uma string\n  if (typeof nomeCompleto !== 'string') {\n    throw new Error('O nome completo deve ser uma string.');\n  }\n\n  // Dividir o nome completo em palavras\n  const palavras = nomeCompleto.trim().split(' ');\n\n  // Verificar se h\u00e1 mais de uma palavra\n  if (palavras.length === 0) {\n    throw new Error('O nome completo deve conter pelo menos um nome.');\n  }\n\n  // Extrair o primeiro nome\n  const primeiroNome = palavras.shift();\n\n  // Extrair o sobrenome\n  const sobrenome = palavras.length > 0 ? palavras.join(' ') : '.';\n\n  // Formatar o nome e sobrenome com a primeira letra de cada palavra em mai\u00fascula\n  const nomeFormatado = formatarNome(primeiroNome);\n  const sobrenomeFormatado = formatarNome(sobrenome);\n\n  return {\n    nome: nomeFormatado,\n    sobrenome: sobrenomeFormatado\n  };\n}\n\nfunction formatarNome(nome) {\n  return nome\n    .toLowerCase()\n    .split(' ')\n    .map((palavra) => palavra.charAt(0).toUpperCase() + palavra.slice(1))\n    .join(' ');\n}\n\n// Separar o nome completo em nome e sobrenome\nconst resultado = separarNomeSobrenome(nomeCompleto);\n\nvar whatsapp = items[0].json.telefone.replace(/\\D/g, '');\nvar ddd = whatsapp.slice(2,4);\nvar ddi = whatsapp.charAt(0);\nvar ddx = whatsapp.slice(0,2);\nvar length = whatsapp.length;\nif (length >= 12){\n  if (ddi == '+'){\n    ddi = whatsapp.slice(0,3);\n    whatsapp = parseInt(whatsapp.slice(3)).toString();\n  } else {\n    if (ddx == '55'){\n      whatsapp = parseInt(whatsapp.slice(2)).toString();\n      ddi = \"+55\";\n    } else {\n      whatsapp = parseInt(whatsapp).toString();\n      ddi = 'n\u00e3o informado';\n    }\n  }\n} else {\n  whatsapp = parseInt(whatsapp).toString();\n  ddi = 'n\u00e3o informado';\n}\n\nddd = whatsapp.slice(0,2);\nwhatsapp = whatsapp.slice(2);\nif (ddd > 28){\n  whatsapp = whatsapp.slice(-8);\n} else {\n  whatsapp = '9'+whatsapp.slice(-8);\n}\nvar whatsapp = '+55'+ddd+whatsapp;\n\n// Armazenar o nome e sobrenome nos campos desejados\nreturn {\n  json: {\n    Nome: resultado.nome,\n    Sobrenome: resultado.sobrenome,\n    NomeCompleto: resultado.nome+' '+resultado.sobrenome,\n    whatsapp\n  }\n};\n"
      },
      "id": "6e755cfb-604b-493f-946d-1219fa14d0ec",
      "name": "Formatando Nome e Telefone",
      "type": "n8n-nodes-base.code",
      "typeVersion": 1,
      "position": [
        1480,
        660
      ]
    },
    {
      "parameters": {
        "authentication": "headerAuth",
        "requestMethod": "POST",
        "url": "=https://conectawebhook.com.br/api/v1/webhook/subscriber/{{ $json[\"id\"] }}/send_flow/",
        "options": {},
        "bodyParametersUi": {
          "parameter": [
            {
              "name": "flow",
              "value": "=206746"
            }
          ]
        }
      },
      "name": "enviar fluxo",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 1,
      "position": [
        2000,
        620
      ],
      "id": "fea4dd41-aaff-4465-b6d5-fb23537552fc",
      "retryOnFail": true,
      "maxTries": 5,
      "waitBetweenTries": 5000,
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "disabled": true
    },
    {
      "parameters": {
        "amount": 10,
        "unit": "seconds"
      },
      "id": "15ff5acb-161f-4ea2-9555-f376dcc78ae8",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "typeVersion": 1,
      "position": [
        2240,
        760
      ]
    },
    {
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{ $json['TELEFONE FORMATADO'] }}",
              "operation": "isEmpty"
            }
          ]
        }
      },
      "id": "0f079c9b-f879-42da-b41b-6481706ed98b",
      "name": "telefone vazio",
      "type": "n8n-nodes-base.if",
      "typeVersion": 1,
      "position": [
        760,
        640
      ]
    },
    {
      "parameters": {
        "operation": "delete",
        "documentId": {
          "__rl": true,
          "value": "https://docs.google.com/spreadsheets/d/1KQv8Vi4voiUpuIVjmvqm1pgG4Kh7ccoucEdJSSrepGI/edit#gid=482129188",
          "mode": "url",
          "__regex": "https:\\/\\/(?:drive|docs)\\.google\\.com(?:\\/.*|)\\/d\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
        },
        "sheetName": {
          "__rl": true,
          "value": "https://docs.google.com/spreadsheets/d/1KQv8Vi4voiUpuIVjmvqm1pgG4Kh7ccoucEdJSSrepGI/edit#gid=482129188",
          "mode": "url",
          "__regex": "https:\\/\\/docs\\.google\\.com/spreadsheets\\/d\\/[0-9a-zA-Z\\-_]+\\/edit\\#gid=([0-9]+)"
        },
        "startIndex": "={{ $json.row_number }}"
      },
      "id": "b9bf2be6-ff45-4330-8cbb-d43c0caf7ce8",
      "name": "Google Sheets2",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4,
      "position": [
        1080,
        1040
      ],
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "verificar-planilha-sebastian",
        "responseMode": "lastNode",
        "options": {}
      },
      "id": "6a4cf46e-8bdc-4169-afcb-ff894fc47eb7",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        520,
        1100
      ]
    },
    {
      "parameters": {
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "documentId": {
          "__rl": true,
          "value": "1KQv8Vi4voiUpuIVjmvqm1pgG4Kh7ccoucEdJSSrepGI",
          "mode": "list",
          "cachedResultName": "BOT-SEBASTIAN",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1KQv8Vi4voiUpuIVjmvqm1pgG4Kh7ccoucEdJSSrepGI/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": 482129188,
          "mode": "list",
          "cachedResultName": "n8n",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1KQv8Vi4voiUpuIVjmvqm1pgG4Kh7ccoucEdJSSrepGI/edit#gid=482129188"
        },
        "options": {
          "columnsToWatch": []
        }
      },
      "id": "d185a353-abdc-4b2d-b1f8-7fa9d4554da5",
      "name": "Google Sheets Trigger1",
      "type": "n8n-nodes-base.googleSheetsTrigger",
      "typeVersion": 1,
      "position": [
        220,
        860
      ],
      "credentials": {
        "googleSheetsTriggerOAuth2Api": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "settings": {
    "executionOrder": "v1"
  },
  "staticData": {
    "node:Google Sheets Trigger1": {
      "documentId": "1KQv8Vi4voiUpuIVjmvqm1pgG4Kh7ccoucEdJSSrepGI",
      "sheetId": 482129188,
      "lastRevision": 66502,
      "lastRevisionLink": "https://docs.google.com/spreadsheets/export?id=1KQv8Vi4voiUpuIVjmvqm1pgG4Kh7ccoucEdJSSrepGI&revision=66502&exportFormat=xlsx",
      "lastIndexChecked": 325
    },
    "node:Google Sheets Trigger": {
      "documentId": "1KQv8Vi4voiUpuIVjmvqm1pgG4Kh7ccoucEdJSSrepGI",
      "sheetId": 482129188,
      "lastRevision": 66501,
      "lastRevisionLink": "https://docs.google.com/spreadsheets/export?id=1KQv8Vi4voiUpuIVjmvqm1pgG4Kh7ccoucEdJSSrepGI&revision=66501&exportFormat=xlsx"
    }
  },
  "tags": [],
  "triggerCount": 3,
  "updatedAt": "2024-01-15T14:21:57.000Z",
  "versionId": "18fa0da5-7cc7-4aeb-96f7-926449599324"
}

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

Sebastian. Uses googleSheets, googleSheetsTrigger, httpRequest. Event-driven trigger; 13 nodes.

Source: https://github.com/KleyvisonVasconcelos/backup-n8n-maya/blob/388ad413f36f1ea2237fc95f9f958847cfca0dcf/workflows/Sebastian.json — original creator credit. Request a take-down →

More Data & Sheets workflows → · Browse all categories →

Related workflows

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

Data & Sheets

Stickynote Workflow. Uses googleTranslate, googleSheetsTrigger, googleDrive, httpRequest. Event-driven trigger; 22 nodes.

Google Translate, Google Sheets Trigger, Google Drive +2
Data & Sheets

Automate IT asset allocation for new hires with an intelligent, AI-powered workflow 🤖. This automation reads employee data from Google Sheets, determines role-based requirements, and intelligently ass

Google Sheets Trigger, Airtable, HTTP Request +2
Data & Sheets

This powerful no-code workflow automates plagiarism detection using Plagiarism Checker AI Powered. Users submit text through Google Sheets. The system checks for duplication using the API, sends a det

Google Sheets Trigger, HTTP Request, Email Send +1
Data & Sheets

This n8n workflow automates outbound phone calls to new leads using VAPI, with built-in timezone detection to ensure you're only calling during business hours.

HTTP Request, Google Sheets Trigger, Google Sheets
Data & Sheets

Julia. Uses googleSheetsTrigger, googleSheets, httpRequest. Event-driven trigger; 16 nodes.

Google Sheets Trigger, Google Sheets, HTTP Request