Automatisierung von Slack-Benachrichtigungen für Tally-Formulare
Dies ist ein Lead Generation-Bereich Automatisierungsworkflow mit 11 Nodes. Hauptsächlich werden Set, Wait, Gmail, Webhook, Airtable und andere Nodes verwendet. Automatisierung von Tally-Formularen: Speicherung in Airtable, Benachrichtigung über Slack
- •Google-Konto + Gmail API-Anmeldedaten
- •HTTP Webhook-Endpunkt (wird von n8n automatisch generiert)
- •Airtable API Key
Kategorie
{
"id": "csdsQBzjewFU2R9L",
"meta": {
"instanceId": "e95c8554b03e2c16a5c8c44cc7d45f6192b966fba75d5438d1201989ceff13e2",
"templateCredsSetupCompleted": true
},
"name": "Automate a Tally Form slack",
"tags": [],
"nodes": [
{
"id": "209736b4-b77d-445f-a592-67408ad188d5",
"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": "7d8cefdb-3eaf-40b5-b837-429fd219daa8",
"name": "Warten",
"type": "n8n-nodes-base.wait",
"position": [
1960,
1060
],
"webhookId": "0401220d-037c-4e73-96ad-8ed99c768d6e",
"parameters": {},
"typeVersion": 1.1
},
{
"id": "62227d14-34a0-42f0-986f-cdf88720c60b",
"name": "Webhook-Trigger : Tally",
"type": "n8n-nodes-base.webhook",
"position": [
620,
1060
],
"webhookId": "20bc0a59-b424-454d-9d49-4504e6b29fa2",
"parameters": {
"path": "20bc0a59-b424-454d-9d49-4504e6b29fa2",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 2
},
{
"id": "6038f0a2-0787-4693-88b9-57313d81b526",
"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": "57f2a3bb-b87f-4137-ab7d-ba60f257d74d",
"name": "GMAIL : Nachricht senden",
"type": "n8n-nodes-base.gmail",
"position": [
2360,
1060
],
"webhookId": "b01196a3-c7e2-4933-b8ae-bb1e0820f703",
"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": "b3d40a1e-61cf-499f-9ec5-41f05e65237b",
"name": "Haftnotiz",
"type": "n8n-nodes-base.stickyNote",
"position": [
160,
620
],
"parameters": {
"width": 200,
"height": 400,
"content": "## 🎯 Workflow Goal\n\n**Still manually checking form responses in your inbox?**\n\n**What if every submission landed neatly in Airtable — and you got a clean Slack message instantly?**\n\nThat’s exactly what this workflow does.\nNo code, no delay — just a smooth automation:\n\n**Tally → Airtable → Slack**"
},
"typeVersion": 1
},
{
"id": "9eccf3c9-5d89-465e-8647-4b3f677b56d2",
"name": "Haftnotiz1",
"type": "n8n-nodes-base.stickyNote",
"position": [
560,
0
],
"parameters": {
"color": 3,
"height": 1220,
"content": "## 🧩 Step 1 – Connect Tally to n8n\n\n**Let’s start by connecting your Tally form to n8n using a webhook.**\n\nThis will trigger your workflow every time someone submits the form — no manual checking needed.\n\n### 🔧 What we’re setting up\n- A **Webhook** node that receives form responses from Tally.\n\n### ✅ How to set it up\n1. Add a **Webhook** node in n8n.\n2. Set the **HTTP Method** to `POST`.\n3. Copy the webhook URL.\n4. Go to your Tally form settings → **Integrations** → **Webhooks**.\n5. Paste your webhook URL and activate it.\n\nNow every new submission will ping n8n automatically.\n\n### 📦 Output\nThe full form response arrives in `{{$json.fields}}`, as an array of objects like:\n\n```json\n[\n {\n \"label\": \"Full Name\",\n \"value\": \"Jane Doe\"\n },\n {\n \"label\": \"Email\",\n \"value\": \"jane.doe@example.com\"\n }\n]"
},
"typeVersion": 1
},
{
"id": "4859c72a-fe22-4e94-b78e-b036cc398acb",
"name": "Haftnotiz2",
"type": "n8n-nodes-base.stickyNote",
"position": [
980,
160
],
"parameters": {
"color": 6,
"width": 280,
"height": 1060,
"content": "## 🛠 Step 2 – Clean the Tally response\n\n**Now that Tally sends raw data to n8n, we need to make it usable.**\n\nLet’s transform that messy `fields[]` array into a clean object that Airtable and Slack can read easily.\n\n### 🔧 What we’re setting up\n- A **Set** or **Function** node to restructure the data into readable fields.\n\n### ✅ How to set it up\n1. Add a **Function** node (or use **Set** if you don’t want to write code).\n2. Paste this code inside:\n\n```js\nconst out = {};\nfor (const field of $json.fields) {\n out[field.label] = field.value;\n}\nreturn [{ json: out }];\n\nThis turns the array into a simple object.\n\n📦 Output\nNow you can use the values easily:\n\n{{$json[\"Full Name\"]}}\n\n{{$json[\"Email\"]}}\n\n{{$json[\"Phone\"]}}\n\nSuper clean, super useful.\n\nyaml\nCopier\nModifier\n"
},
"typeVersion": 1
},
{
"id": "b635a05b-fd2c-46f7-a211-bf90ff379556",
"name": "Haftnotiz3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1520,
200
],
"parameters": {
"color": 2,
"width": 280,
"height": 1020,
"content": "## 🧱 Step 3 – Send the cleaned data to Airtable\n\n**Now that your Tally response is nice and tidy, it’s time to store it.**\n\nWe’re going to create a new record in your Airtable base using the structured data from Step 2.\n\n### 🔧 What we’re setting up\n- An **Airtable > Create Record** node that saves each submission as a new row.\n\n### ✅ How to set it up\n1. Add an **Airtable node** and choose the **“Create Record”** operation.\n2. Connect your Airtable account.\n3. Select the correct **Base** and **Table**.\n4. Map the cleaned fields to your Airtable columns:\n\n- Name → `{{$json[\"Full Name\"]}}`\n- Email → `{{$json[\"Email\"]}}`\n- Phone → `{{$json[\"Phone\"]}}`\n- Company → `{{$json[\"Company\"]}}`\n- Anything else you need\n\n### 📦 Output\nEach time someone fills out the form, a new Airtable row is created automatically."
},
"typeVersion": 1
},
{
"id": "125c7959-e049-478b-9f3d-b8de998a7754",
"name": "Haftnotiz4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1920,
320
],
"parameters": {
"color": 4,
"width": 600,
"height": 900,
"content": "## 📬 Step 4 – Send an automatic Slack message\n\n**After storing the data in Airtable, let’s notify your team — instantly.**\n\nWe’ll send a professional Slack message each time someone fills out your Tally form.\n\n### 🔧 What we’re setting up\n- A **Slack > Send a Message** node to post in your chosen channel or send a DM.\n\n### ✅ How to set it up\n1. Add a **Slack node** and choose the **“Send Message”** operation.\n2. Connect your Slack account.\n3. Pick the right **channel** or user.\n4. Customize the message using the cleaned data:\n\n```plaintext\n🎉 New form submission!\n\n👤 Name: {{$json[\"Full Name\"]}}\n📧 Email: {{$json[\"Email\"]}}\n📞 Phone: {{$json[\"Phone\"]}}\n🏢 Company: {{$json[\"Company\"]}}\n(Optional) Use Markdown formatting in your message for extra clarity.\n\n📦 Output\nYou’ll receive a neat Slack message every time — no inbox clutter, no delay.\n\nyaml\nCopier\nModifier\n"
},
"typeVersion": 1
},
{
"id": "ccfd0ac3-6a74-4efe-bf2f-e444a9d5f699",
"name": "Haftnotiz5",
"type": "n8n-nodes-base.stickyNote",
"position": [
2600,
880
],
"parameters": {
"width": 320,
"height": 340,
"content": "## ✅ Step 5 – Workflow complete\n\n**And that’s it!** You’ve just built a full automation that captures Tally form responses, cleans the data, stores it in Airtable, and sends a custom Slack message — all on autopilot.\n\nNo more copy-paste. No more missed submissions.\n\nNow every lead is organized, stored, and shared with your team… instantly.\n"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "0fe76154-7e4f-4ff0-bc97-7bcffb1f9a4b",
"connections": {
"7d8cefdb-3eaf-40b5-b837-429fd219daa8": {
"main": [
[
{
"node": "57f2a3bb-b87f-4137-ab7d-ba60f257d74d",
"type": "main",
"index": 0
}
]
]
},
"209736b4-b77d-445f-a592-67408ad188d5": {
"main": [
[
{
"node": "6038f0a2-0787-4693-88b9-57313d81b526",
"type": "main",
"index": 0
}
]
]
},
"Webhook : Tally": {
"main": [
[
{
"node": "209736b4-b77d-445f-a592-67408ad188d5",
"type": "main",
"index": 0
}
]
]
},
"6038f0a2-0787-4693-88b9-57313d81b526": {
"main": [
[
{
"node": "7d8cefdb-3eaf-40b5-b837-429fd219daa8",
"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