Notificaciones de Slack para formularios de Tally automatizados
Este es unLead Generationflujo de automatización del dominio deautomatización que contiene 11 nodos.Utiliza principalmente nodos como Set, Wait, Gmail, Webhook, Airtable. Automatización de formularios de Tally: almacenamiento con Airtable, notificaciones por Slack
- •Cuenta de Google y credenciales de API de Gmail
- •Punto final de HTTP Webhook (n8n generará automáticamente)
- •Clave de API de Airtable
Categoría
{
"id": "csdsQBzjewFU2R9L",
"meta": {
"instanceId": "e95c8554b03e2c16a5c8c44cc7d45f6192b966fba75d5438d1201989ceff13e2",
"templateCredsSetupCompleted": true
},
"name": "Automate a Tally Form slack",
"tags": [],
"nodes": [
{
"id": "209736b4-b77d-445f-a592-67408ad188d5",
"name": "Editar campos",
"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": "Esperar",
"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": "Disparador Webhook : 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 : Crear un registro",
"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 : Enviar un mensaje",
"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": "Nota adhesiva",
"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": "Nota adhesiva1",
"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": "Nota adhesiva2",
"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": "Nota adhesiva3",
"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": "Nota adhesiva4",
"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": "Nota adhesiva5",
"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
}
]
]
}
}
}¿Cómo usar este flujo de trabajo?
Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.
¿En qué escenarios es adecuado este flujo de trabajo?
Intermedio - Generación de leads
¿Es de pago?
Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.
Flujos de trabajo relacionados recomendados
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.
Compartir este flujo de trabajo