Automatisierte Tally-Formularverarbeitung
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
- •Google-Konto + Gmail API-Anmeldedaten
- •HTTP Webhook-Endpunkt (wird von n8n automatisch generiert)
- •Airtable API Key
Kategorie
{
"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\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\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
}
]
]
}
}
}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.
Verwandte Workflows
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.
Diesen Workflow teilen