Automatisierte Tally-Formularverarbeitung

Fortgeschritten

Dies ist ein Lead Generation-Bereich Automatisierungsworkflow mit 11 Nodes. Hauptsächlich werden Set, Wait, Gmail, Webhook, Airtable und andere Nodes verwendet. Automatisierung von Gmail-Antworten auf automatisierte Tally-Formulareingaben in Airtable

Voraussetzungen
  • Google-Konto + Gmail API-Anmeldedaten
  • HTTP Webhook-Endpunkt (wird von n8n automatisch generiert)
  • Airtable API Key
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
  "id": "5ecs295v3ZaiY8HM",
  "meta": {
    "instanceId": "e95c8554b03e2c16a5c8c44cc7d45f6192b966fba75d5438d1201989ceff13e2",
    "templateCredsSetupCompleted": true
  },
  "name": "Automate a Tally Form",
  "tags": [],
  "nodes": [
    {
      "id": "de34d97a-e3e8-4be7-9a2b-c77222eeb2ca",
      "name": "Felder bearbeiten",
      "type": "n8n-nodes-base.set",
      "position": [
        1060,
        1060
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "0186e9c9-424c-4ad8-8382-1614cf48c9d1",
              "name": "full_name",
              "type": "string",
              "value": "={{ $json.body.data.fields[0].value }}"
            },
            {
              "id": "e5559efc-1458-48e6-a207-f7fea896e930",
              "name": "company_name",
              "type": "string",
              "value": "={{ $json.body.data.fields[1].value }}"
            },
            {
              "id": "bbc04ed4-a8f7-4778-bfdc-038c637320fa",
              "name": "job_title",
              "type": "string",
              "value": "={{ $json.body.data.fields[2].value }}"
            },
            {
              "id": "8175addd-ef95-45f9-b307-b218d6ede2be",
              "name": "email",
              "type": "string",
              "value": "={{ $json.body.data.fields[3].value }}"
            },
            {
              "id": "f017c0bd-bd5d-4a5e-967f-bb27c514f5ee",
              "name": "phone_number",
              "type": "string",
              "value": "={{ $json.body.data.fields[4].value }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "635a0ccc-dd60-4e24-aaff-50dda69e9705",
      "name": "Warten",
      "type": "n8n-nodes-base.wait",
      "position": [
        1960,
        1060
      ],
      "webhookId": "f647bd2e-8bdd-49ab-8eba-8a1db07bc2e8",
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "8592b7dc-baa5-4306-9ffa-f341ade8e434",
      "name": "Webhook-Trigger : Tally",
      "type": "n8n-nodes-base.webhook",
      "position": [
        620,
        1060
      ],
      "webhookId": "e92bb825-14ff-43e0-bd7c-24504d4acb56",
      "parameters": {
        "path": "formulaire-tally",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 2
    },
    {
      "id": "316dcbae-3957-4109-a984-cbf068529c74",
      "name": "Airtable : Datensatz erstellen",
      "type": "n8n-nodes-base.airtable",
      "position": [
        1600,
        1060
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appPk6zfIQ1EbBq43",
          "cachedResultUrl": "https://airtable.com/appPk6zfIQ1EbBq43",
          "cachedResultName": "Client Requests"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tblLkuoQ9AYsAQ0io",
          "cachedResultUrl": "https://airtable.com/appPk6zfIQ1EbBq43/tblLkuoQ9AYsAQ0io",
          "cachedResultName": "Client Requests"
        },
        "columns": {
          "value": {
            "Email": "={{ $json.email }}",
            "Full Name": "={{ $json.full_name }}",
            "Job Title": "={{ $json.job_title }}",
            "Company Name": "={{ $json.company_name }}",
            "Phone Number": "={{ $json.phone_number }}"
          },
          "schema": [
            {
              "id": "Full Name",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Full Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company Name",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Company Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Job Title",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Job Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Email",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Phone Number",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Phone Number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Submission Date",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "Submission Date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "create"
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "fbET2GdSoJjK5Idu",
          "name": "Airtable Personal Access Token account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "9fc0fee1-0896-4d3b-bb97-30c6bc8e9493",
      "name": "GMAIL : Nachricht senden",
      "type": "n8n-nodes-base.gmail",
      "position": [
        2360,
        1060
      ],
      "webhookId": "52b3183a-ee31-49ed-8711-d822c07ea3aa",
      "parameters": {
        "sendTo": "={{ $json.fields.Email }}",
        "message": "=<p>Hi {{ $json.fields['Full Name'] }},</p>\n\n<p>Thanks for reaching out! We’ve received your request and our team will get back to you as soon as possible.</p>\n\n<p><strong>Here’s a quick summary:</strong></p>\n<ul>\n\n <li><strong>Company:</strong>{{ $json.fields['Company Name'] }} </li>\n  <li><strong>Job Title:</strong> {{ $json.fields['Job Title'] }}</li>\n\n<p>We’ll be in touch very soon!</p>\n<p>— The Team</p>\n\n",
        "options": {},
        "subject": "Thanks for reaching out!"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "FKD43HaVeVoUXOi0",
          "name": "Gmail account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "531b37a5-ab97-401f-b8c1-71b076319121",
      "name": "Notiz",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        160,
        620
      ],
      "parameters": {
        "width": 200,
        "height": 340,
        "content": "**Still manually copy-pasting your Tally form responses?**\n\nWhat if every submission went straight into Airtable — and the user got an automatic email right after?\n\nThat’s exactly what this workflow does.\nNo code, no headache — just a simple and fast automation:\n\n**Tally → Airtable → Gmail.**\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "90a2d5a9-1138-468e-b5be-1f98b0a027eb",
      "name": "Notiz1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        560,
        1240
      ],
      "parameters": {
        "color": 3,
        "height": 1460,
        "content": "## STEP 1 — Capture Tally Form Responses\n\n### Goal\nTrigger the workflow automatically every time someone submits your Tally form.\n\n### What we're setting up\nA webhook that catches form responses and kicks off the rest of the flow.\n\n### Steps to follow\nAdd a Webhook node\n\nParameter :\tValue\nMethod :\tPOST\nPath :\tformulaire-tally\nAuthentication : None\nRespond : Immediately\n\n\nSave the workflow\n→ This will generate a URL like:\n\n*https://your-workspace.n8n.cloud/webhook-test/formulaire-tally*\n*\n💡 Use the Test URL first (found under Parameters > Test URL)\n\nHead over to Tally\nGo to your form → Form Settings > Integrations > Webhooks\nPaste the Test URL into the Webhook field\nEnable the webhook ✅\n\nSubmit a test entry\n→ Tally won’t send anything until a real submission is made.\nThis step is required for n8n to capture the structure.\n\n### Expected output\n![AutomateTallyFormn8netape1.png](6)\nn8n receives a JSON object containing:\n\nGeneral info (IDs, timestamps, etc.)\n\nA fields[] array with all the form inputs (name, email, etc.)\n\nEach field is nicely structured with a label, key, type, and most importantly, a value.\n\nPerfect foundation for the next step: data cleanup."
      },
      "typeVersion": 1
    },
    {
      "id": "28b97f32-e5ac-4368-a644-663ce1f0fce7",
      "name": "Notiz2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        960,
        1240
      ],
      "parameters": {
        "color": 6,
        "width": 300,
        "height": 1160,
        "content": "## STEP 2 — Clean and Structure the Form Data (Set node)\n\n### Goal\n\nTake the raw data sent by Tally and turn it into clean, readable JSON that's easy to use in the rest of the workflow.\n\nTally sends the responses inside a big array called field.\n\nCan you grab a field directly with something like {{$json[\"fields\"][3][\"value\"]}}? Yes.\n\nBut a good workflow is like a sock drawer — when everything’s folded and labeled, life’s just easier.\n\nSo we’re going to clean it up using a Set node.\n\n### Steps to follow\n\nAdd a Set node right after the Webhook.\n\nEnable the “Keep only set” option.\n\nDefine the following fields in the Set node:\n\nField name:\tExpression\nfull_name:\t{{$json[\"fields\"][0][\"value\"]}}\ncompany_name:\t{{$json[\"fields\"][1][\"value\"]}}\njob_title:\t{{$json[\"fields\"][2][\"value\"]}}\nemail:\t{{$json[\"fields\"][3][\"value\"]}}\nphone_number:\t{{$json[\"fields\"][4][\"value\"] ?? \"\"}}\nsubmission_date:\t{{$now.toISOString()}}\n\n⚠️ The order of fields[] depends on your Tally form. If you change the question order, make sure to update these indexes accordingly.\n\n### Expected output\n\nYou’ll get a clean, structured JSON like this:\n\nNow your data is clear, labeled, and ready for the rest of your workflow."
      },
      "typeVersion": 1
    },
    {
      "id": "6bd0534c-1b1f-43ae-927a-b976d7a8de7e",
      "name": "Notiz3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1540,
        1220
      ],
      "parameters": {
        "color": 2,
        "width": 280,
        "height": 1500,
        "content": "## STEP 3 — Save Data in Airtable\n\nEvery time someone submits your Tally form, their info is automatically added to an Airtable base. No more copy-pasting — everything lands right where it should.\n\n## Steps to follow\n1. Create your Airtable base\nStart by creating a base named Leads (or whatever you prefer), with a table called Form Submissions.\n\nAdd the following columns in this exact order so everything maps correctly later:\n\n### Generate an Airtable token\nSo n8n can send data into your base:\n\nGo to 👉 [ https://airtable.com/create/tokens](https://airtable.com/create/tokens\n)\n\nClick Create token\n\nGive it a name (e.g. Tally Automation)\n\nCheck the following permissions:\n\ndata.records:read\n\ndata.records:write\n\nschema.bases:read\n\nUnder Base access, either choose your base manually or select “All current and future bases”\n\nClick Create token and copy the generated key\n\n### Add configure the Airtable node in n8n\n\nNode: Airtable\n\nOperation: Create\n\nAuthentication: Personal Access Token\n\nPaste your token\n\nn8n will suggest your base and table (or you can manually grab the IDs from the URL:\nhttps://airtable.com/appXXXXXXXX/tblYYYYYYYY/...)\n\nMap your fields\nInside the Airtable node, add the following field mappings:\n\nEvery new Tally form submission automatically creates a new row in your Airtable base."
      },
      "typeVersion": 1
    },
    {
      "id": "0ecbb548-23dd-4f81-9ba7-b60da12227d9",
      "name": "Notiz4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1980,
        1240
      ],
      "parameters": {
        "color": 4,
        "width": 520,
        "height": 900,
        "content": "## STEP 4 — Send an Automatic Confirmation Email\n\n### Goal\n\nSend a professional email as soon as a form is completed\n\n### Steps to follow\n\n1. Add a Wait node\n\nYou don’t want the email to go out instantly — it feels cold and robotic.\n→ Add a Wait node right after Airtable.\n\nMode: Wait for a period of time\n\nDelay: 5 to 10 minutes\n\nUnit: Minutes\n\n2. Add a Gmail > Send Email node\nAuthentication: OAuth2\n\nConnect a Gmail account (business or test)\n⚠️ No API keys here — Gmail requires OAuth.\n\n3. Configure the Send Email node\n\n![AutomateTallyFormn8netape11.png](15)\n\nField\tValue\n\nCredential to connect with Gmail account via OAuth2\n\nResource :\tMessage\nOperation :\tSend\nTo :\t{{ $json.fields[\"Email\"] }}\nSubject : Thanks for reaching out!\nEmail Type : HTML\nMessage: (but do the mapping correctly using the Input so that lead receives its name correctly )"
      },
      "typeVersion": 1
    },
    {
      "id": "27ecea70-1450-40a4-9adc-b71c3916d403",
      "name": "Notiz5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2580,
        1020
      ],
      "parameters": {
        "width": 320,
        "height": 200,
        "content": "## End of the Workflow\n\nAnd that’s it — your automation is live!\n\nYour lead fills out the Tally form → the info goes to Airtable → they get a clean, professional email without you doing a thing."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "734ed2ae-e251-4b36-a008-4f8f1703fe45",
  "connections": {
    "635a0ccc-dd60-4e24-aaff-50dda69e9705": {
      "main": [
        [
          {
            "node": "9fc0fee1-0896-4d3b-bb97-30c6bc8e9493",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "de34d97a-e3e8-4be7-9a2b-c77222eeb2ca": {
      "main": [
        [
          {
            "node": "316dcbae-3957-4109-a984-cbf068529c74",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook : Tally": {
      "main": [
        [
          {
            "node": "de34d97a-e3e8-4be7-9a2b-c77222eeb2ca",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "316dcbae-3957-4109-a984-cbf068529c74": {
      "main": [
        [
          {
            "node": "635a0ccc-dd60-4e24-aaff-50dda69e9705",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Häufig gestellte Fragen

Wie verwende ich diesen Workflow?

Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.

Für welche Szenarien ist dieser Workflow geeignet?

Fortgeschritten - Lead-Generierung

Ist es kostenpflichtig?

Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.

Workflow-Informationen
Schwierigkeitsgrad
Fortgeschritten
Anzahl der Nodes11
Kategorie1
Node-Typen6
Schwierigkeitsbeschreibung

Für erfahrene Benutzer, mittelkomplexe Workflows mit 6-15 Nodes

Autor
Baptiste Fort

Baptiste Fort

@baptistefort

👋 I'm Baptiste Fort. What if automating was simply our way of taking back control in a world that's moving too fast? I build workflows that are simple, useful — sometimes invisible lol. Automation isn’t cheating. It’s just being one step ahead.

Externe Links
Auf n8n.io ansehen

Diesen Workflow teilen

Kategorien

Kategorien: 34