This workflow corresponds to n8n.io template #13456 — we link there as the canonical source.
This workflow follows the Airtable → Gmail recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"meta": {
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "5048b8bc-e508-4722-af5b-146ec0f9f057",
"name": "Search Airtable Contacts",
"type": "n8n-nodes-base.airtable",
"position": [
208,
0
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "app1bfDNQWWNpiwal",
"cachedResultUrl": "https://airtable.com/app1bfDNQWWNpiwal",
"cachedResultName": "Contacts"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblubuxXAzrkV59GY",
"cachedResultUrl": "https://airtable.com/app1bfDNQWWNpiwal/tblubuxXAzrkV59GY",
"cachedResultName": "Contacts"
},
"options": {
"fields": [
"Company Name",
"Name",
"Email"
]
},
"operation": "search",
"filterByFormula": "IS_SAME({Created}, TODAY(), 'day')"
},
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "1c2b77e7-6244-47e5-b0d9-7beb5e0655af",
"name": "Convert to HTML Table",
"type": "n8n-nodes-base.html",
"position": [
416,
0
],
"parameters": {
"options": {},
"operation": "convertToHtmlTable"
},
"typeVersion": 1.2
},
{
"id": "f0be4258-8972-46cf-842c-891618c32b6a",
"name": "Send Daily Contacts Email",
"type": "n8n-nodes-base.gmail",
"position": [
624,
0
],
"parameters": {
"sendTo": "john.doe@example.com",
"message": "=<h3> New Contacts Today</h3>\n\n{{ $json.table }}",
"options": {},
"subject": "New Contacts Today"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.2
},
{
"id": "35fa79cd-3699-47e0-bc01-79b59d469eab",
"name": "Daily Evening Schedule",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
0,
0
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 23
}
]
}
},
"typeVersion": 1.3
},
{
"id": "doc-note-1771263655470",
"name": "Workflow Description",
"type": "n8n-nodes-base.stickyNote",
"position": [
-700,
-150
],
"parameters": {
"width": 600,
"height": 817,
"content": "## Workflow Overview\n\nThis automation sends you a daily email summary of all new contacts added to your Airtable base. Every evening, it searches for contacts created that day, formats them into a clean HTML table, and delivers them directly to your inbox\u2014keeping you updated without any manual effort.\n\n### First Setup\n\n**Airtable Connection:**\n1. Create a Personal Access Token at [airtable.com/create/tokens](https://airtable.com/create/tokens)\n2. Add these scopes: `data.records:read`, `data.records:write`, and `schema.bases:read`\n3. Grant access to your bases and paste the token into n8n credentials\n\n**Gmail Connection:**\n- Connect your Gmail account through n8n's OAuth2 authentication\n\n### Configuration\n\n- **Schedule**: The trigger is set to run daily at 11 PM. Adjust the time in the Schedule Trigger node to match your preference\n- **Airtable Base & Table**: Update the Search records node to point to your own Airtable base and contacts table\n- **Email Recipient**: Change the recipient email address in the Gmail node to your own\n- **Data Fields**: Customize which contact fields appear in the report by modifying the Output Fields in the Airtable node"
},
"typeVersion": 1
},
{
"id": "contact-note-1771263708643",
"name": "Creator Contact Info",
"type": "n8n-nodes-base.stickyNote",
"position": [
-700,
-610
],
"parameters": {
"color": 5,
"width": 600,
"height": 440,
"content": "# Contact Us:\n## Milan @ SmoothWork - [Book a Free Consulting Call](https://smoothwork.ai/book-a-call/)\n\n\n\n### We help businesses eliminate busywork by building compact business tools tailored to your process.\n### Contact us for customizing this, or building similar automations.\n\n\ud83d\udce7 hello@smoothwork.ai\n\u25b6\ufe0f [Check us on YouTube](https://www.youtube.com/@vasarmilan)\n\ud83d\udcde [Book a Free Consulting Call](https://smoothwork.ai/book-a-call/)\n\ud83d\udcbc [Add me on Linkedin](https://www.linkedin.com/in/mil%C3%A1n-v%C3%A1s%C3%A1rhelyi-3a9985123/)\n"
},
"typeVersion": 1
},
{
"id": "video-note-1771324743906",
"name": "Video Walkthrough",
"type": "n8n-nodes-base.stickyNote",
"position": [
-90,
-610
],
"parameters": {
"width": 420,
"height": 340,
"content": "# Video Walkthrough\n[](https://youtu.be/lQh1fuIrBN8)"
},
"typeVersion": 1
}
],
"connections": {
"Convert to HTML Table": {
"main": [
[
{
"node": "Send Daily Contacts Email",
"type": "main",
"index": 0
}
]
]
},
"Daily Evening Schedule": {
"main": [
[
{
"node": "Search Airtable Contacts",
"type": "main",
"index": 0
}
]
]
},
"Search Airtable Contacts": {
"main": [
[
{
"node": "Convert to HTML Table",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
airtableTokenApigmailOAuth2
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
"## Video Introduction [](https://youtu.be/lQh1fuIrBN8)
Source: https://n8n.io/workflows/13456/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Code. Uses scheduleTrigger, airtable, html, gmail. Scheduled trigger; 13 nodes.
This workflow will collect order data as it is produced, then send a summary email of all orders at the end of every day, formatted in a table. It receives new orders via webhook and stores in Airtabl
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 manual
Enhance your hiring pipeline by automating interview management post-screening. This workflow runs every 5 minutes to scan upcoming Google Calendar events, filter relevant interviews, send timely emai
Still manually copy-pasting your Tally form responses?