Automate quote request processing with Tally, Airtable, Slack, and Gmail
Ready for 3.0Ready for 3.0. This template uses no nodes that n8n 3.0 removes. No removed nodes, versions or helpers found. Static check, last run 2026-10-19.
Nodes used (6)
- Wait
n8n-nodes-base.wait - Webhook
n8n-nodes-base.webhook - Gmail
n8n-nodes-base.gmail - Edit Fields (Set)
n8n-nodes-base.set - Airtable
n8n-nodes-base.airtable - Slack
n8n-nodes-base.slack
What it does
What if your quote requests managed themselves? Every quote request is a potential deal — but only if it's handled quickly, properly, and without things falling through the cracks. What if instead of copy-pasting emails and pinging teammates manually, your entire process just... ran itself? This automation makes it happen: it captures form submissions, notifies your sales team on Slack, stores leads in Airtable, and sends an email confirmation to the client — all in one seamless n8n flow. --- ⚙️ Tools used Tally – to collect client quote requests n8n – to automate everything, no code needed Airtable – to store leads and track status Slack – to instantly notify your sales team Gmail – to confirm the request with the client --- 🧩 Flow structure overview 1. Trigger from a Tally form using a webhook 2. Extract and format the data 3. Create a new record in Airtable 4. Send a message to Slack 5. Wait 5 minutes 6. Send an email confirmation via Gmail --- 📥 Step 1 – Webhook (Tally) This node listens for incoming quote requests from the Tally form. HTTP Method: POST Path: /Request a Quote Authentication: None Respond: Immediately The data arrives as an array inside body.data.fields. Each field has a label and a value that we’ll need to map manually. --- 🧹 Step 2 – Edit Fields (Set) This step extracts usable values from the raw form data. Example mapping: Name = {{ $json.body.data.fields0.label }} Email Address = {{ $json.body.data.fields1.value }} Type of Service Needed = {{ $json.body.data.fields2.value }} Estimated Budget = {{ $json.body.data.fields3.value }} Preferred Timeline = {{ $json.body.data.fields4.value }} Additional Details or Questions = {{ $json.body.data.fields5.value }} --- 📊 Step 3 – Create record in Airtable We send the cleaned fields into a database (CRM) in Airtable. Operation: Create Base & Table: Request a Quote - Airtable Base Mapping: Manual field-to-column matching Each quote submission becomes a new record with all project details. --- 📣 Step 4 – Send a message to Slack This node notifies your sales team immediately in a Slack channel. Message format: :new: New quote request received! 👤 Name: {{ $json.fields.Name }} 📧 Email: {{ $json.fields.Email }} 💼 Service: {{ $json.fields"Type of Service" }} 💰 Budget: {{ $json.fields"Estimated Budget (€)" }} ⏱️ Timeline: {{ $json.fields"Preferred Timeline" }} 📝 Notes: {{ $json.fields"Additional Details" }} --- ⏳ Step 5 – Wait 5 minutes This node simply delays the email by 5 minutes. Why? To give a human salesperson time to reach out manually before the automated confirmation goes out. It adds a personal buffer. --- 📧 Step 6 – Send confirmation via Gmail To: {{ \$('Edit Fields').item.json\"Email Address" }} Subject: Thanks for your quote request 🙌 Email Type: HTML Message body: Hi {{ $('Edit Fields').item.json.Name }}, Thanks a lot for your quote request — we’ve received your information! Our team will get back to you within the next 24 hours to discuss your project. Talk soon, — The WebExperts Team --- ✅ Final result With this automation in place: The client feels acknowledged and taken seriously Your team gets notified in real time You store everything in a clean, structured database All this without writing a single line of backend code. It’s fast, scalable, and business-ready.