Car Access Report Generator
This n8n workflow acts as an automated assistant that creates and delivers a daily schedule reports. It runs 3 times a day to ensure the team always has the most up-to-date information for tomorrow.
How it works
Auto-Run: The n8n Schedule Trigger starts the process automatically three times throughout the day.
Smart Pickup: It looks through your Google Sheets and pulls only the specific data needed for tomorrow's schedule based on the date.
Auto-Formatting: The workflow automatically cleans up the data and fixes the row heights so the Excel file looks neat and professional.
Instant Delivery: It converts the data into an Excel file and sends it out as an email attachment immediately.
Shared 1/19/2026
2 views
Visual Workflow
JSON Code
{
"id": "LpwJGfTVUh7py8nn",
"meta": {
"instanceId": "162eec3732de59437b64feac9b77d3c4c84098988ae869a1ee7e056d40699a32",
"templateCredsSetupCompleted": true
},
"name": "Car Access Report Generation",
"tags": [
{
"id": "X5BCFOxeieTgaYAc",
"name": "James",
"createdAt": "2025-12-29T03:39:06.049Z",
"updatedAt": "2025-12-29T03:39:06.049Z"
}
],
"nodes": [
{
"id": "3ef6f018-742e-4e73-968f-dabfeb78ed0b",
"name": "On form submission",
"type": "n8n-nodes-base.formTrigger",
"position": [
32,
-80
],
"webhookId": "7a900410-55f6-4b7b-a59d-8e483b2bb9e4",
"parameters": {
"options": {},
"formTitle": "Car Access Report Generation",
"formFields": {
"values": [
{
"fieldName": "tmpStartDate",
"fieldType": "date",
"fieldLabel": "Start Date",
"requiredField": true
},
{
"fieldName": "tmpEndDate",
"fieldType": "date",
"fieldLabel": "End Date",
"requiredField": true
}
]
},
"formDescription": "Car Access Report Generation"
},
"typeVersion": 2.4
},
{
"id": "b31700b3-1c6e-42c5-9a0d-ac0e0e23c680",
"name": "Aggregate",
"type": "n8n-nodes-base.aggregate",
"position": [
3072,
-304
],
"parameters": {
"options": {
"includeBinaries": true
},
"aggregate": "aggregateAllItemData"
},
"typeVersion": 1
},
{
"id": "781c1c00-3b86-4f8c-9f34-ffa6e6a5dd67",
"name": "Edit Fields1",
"type": "n8n-nodes-base.set",
"position": [
240,
-80
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "ef136455-3157-45b9-a22d-133fce09c647",
"name": "=StartDate",
"type": "string",
"value": "={{ $json.tmpStartDate }}"
},
{
"id": "922cba4b-1755-4814-8a37-9fc9988a3f47",
"name": "EndDate",
"type": "string",
"value": "={{ $json.tmpEndDate }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "bc62a295-a0f3-4a1e-a06c-395ef81ed905",
"name": "Define DateRange",
"type": "n8n-nodes-base.set",
"position": [
496,
-288
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "id-1",
"name": "recipientEmail",
"type": "string",
"value": ""
},
{
"id": "id-2",
"name": "excelSheetId",
"type": "string",
"value": ""
},
{
"id": "1bd907c2-83bf-4d9b-bfaa-aa3512abf764",
"name": "StartDate",
"type": "string",
"value": "={{ $json.StartDate }}"
},
{
"id": "d7045431-b191-4fc0-aad9-068342916701",
"name": "EndDate",
"type": "string",
"value": "={{ $json.EndDate }}"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "0d966fe4-c33b-4d09-ba53-737ecbdbe146",
"name": "Find GID",
"type": "n8n-nodes-base.httpRequest",
"position": [
688,
-288
],
"parameters": {
"url": "=https://sheets.googleapis.com/v4/spreadsheets/{{ $('Define DateRange').item.json.excelSheetId }}?fields=sheets.properties",
"options": {},
"authentication": "predefinedCredentialType",
"nodeCredentialType": "googleDriveOAuth2Api"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "hHIsmwm92QVZzX2j",
"name": "Google Drive account"
}
},
"typeVersion": 4.3
},
{
"id": "29eeeabe-f932-478b-8280-6dbe8e7c7e31",
"name": "Split sheets",
"type": "n8n-nodes-base.splitOut",
"position": [
864,
-288
],
"parameters": {
"options": {},
"fieldToSplitOut": "sheets"
},
"typeVersion": 1
},
{
"id": "1dcbf08f-1d01-47b4-b69b-6334885f4208",
"name": "Filter sheets with range",
"type": "n8n-nodes-base.filter",
"notes": "Error- no Car Access Schedule found ",
"position": [
1040,
-288
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "0c029302-1ade-4422-a5ff-d02b170a9c71",
"operator": {
"type": "dateTime",
"operation": "afterOrEquals"
},
"leftValue": "={{ DateTime.fromFormat($json.properties.title, \"dd/MM/yy\").toISODate() }}",
"rightValue": "={{ $('Define DateRange').item.json.StartDate }}"
},
{
"id": "97a3628c-cc00-4ad7-860b-883a7764899d",
"operator": {
"type": "dateTime",
"operation": "beforeOrEquals"
},
"leftValue": "={{ DateTime.fromFormat($json.properties.title, \"dd/MM/yy\").toISODate() }}",
"rightValue": "={{ $('Define DateRange').item.json.EndDate }}"
}
]
}
},
"notesInFlow": false,
"typeVersion": 2.3,
"alwaysOutputData": true
},
{
"id": "276f6cee-98fa-4279-a58a-1895af67b9bd",
"name": "Check Filter",
"type": "n8n-nodes-base.if",
"position": [
1216,
-288
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "d169966b-5d95-46c7-ae09-901f9a5d9866",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $json.length === 0 || Object.keys($json).length === 0 }}",
"rightValue": "found"
}
]
}
},
"typeVersion": 2.3
},
{
"id": "58e6addc-cdec-4441-af14-f2cab3995205",
"name": "check >1 pdf",
"type": "n8n-nodes-base.if",
"position": [
2864,
-288
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "39318b1c-4ffa-46ff-a4ff-7be0acc5f1cc",
"operator": {
"type": "number",
"operation": "gt"
},
"leftValue": "={{ $input.all().length }}",
"rightValue": 1
}
]
}
},
"typeVersion": 2.3
},
{
"id": "584ada0a-90b4-4e34-8558-b1c1cb251ad0",
"name": "Send email with 1 day",
"type": "n8n-nodes-base.gmail",
"position": [
3072,
-96
],
"webhookId": "4cbc84fd-17a9-4593-99f6-a25f6e0e36ba",
"parameters": {
"sendTo": "={{ $('Define DateRange').first().json.recipientEmail }}",
"message": "=",
"options": {
"attachmentsUi": {
"attachmentsBinary": [
{}
]
},
"appendAttribution": false
},
"subject": "={{ $json.sheetName.split('/').slice(0, 2).join('/') }} Car Access Schedule",
"emailType": "text"
},
"credentials": {
"gmailOAuth2": {
"id": "dJo9eZG5DYh8NPRm",
"name": "jamesloworkingpc"
}
},
"typeVersion": 2.2
},
{
"id": "97eb65c7-a1d2-4541-b475-ff9971434b80",
"name": "Send email with many days",
"type": "n8n-nodes-base.gmail",
"position": [
3264,
-304
],
"webhookId": "4cbc84fd-17a9-4593-99f6-a25f6e0e36ba",
"parameters": {
"sendTo": "={{ $('Define DateRange').first().json.recipientEmail }}",
"message": "=",
"options": {
"attachmentsUi": {
"attachmentsBinary": [
{
"property": "={{ Object.keys($binary).join(',') }}"
}
]
},
"appendAttribution": false
},
"subject": "=",
"emailType": "text"
},
"credentials": {
"gmailOAuth2": {
"id": "dJo9eZG5DYh8NPRm",
"name": "jamesloworkingpc"
}
},
"typeVersion": 2.2
},
{
"id": "6f817005-646d-4782-96ac-5b92e619fefd",
"name": "Download Excel Request",
"type": "n8n-nodes-base.httpRequest",
"position": [
2496,
-288
],
"parameters": {
"url": "=https://docs.google.com/spreadsheets/d/{{ $('Define DateRange').first().json.excelSheetId }}/export?format=xlsx&gid={{ $json.sheetId }}",
"options": {
"response": {
"response": {
"responseFormat": "file"
}
}
},
"authentication": "predefinedCredentialType",
"nodeCredentialType": "googleDriveOAuth2Api"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "hHIsmwm92QVZzX2j",
"name": "Google Drive account"
}
},
"typeVersion": 4.3
},
{
"id": "d7902b24-4fbd-440b-8700-d7f88c1ebf82",
"name": "Rename attachment",
"type": "n8n-nodes-base.code",
"position": [
2688,
-288
],
"parameters": {
"jsCode": "// 1. Get all items from the Filter node to have a list of titles\nconst allFilterItems = $(\"Filter sheets with range\").all();\n\n// 2. n8n processes items one by one. This loop handles each PDF.\nfor (let i = 0; i < $input.all().length; i++) {\n const item = $input.all()[i];\n \n // 3. Get the correct title based on the current item index\n // (e.g., the 1st PDF gets the 1st Title from the filter)\n const titleFromFilter = allFilterItems[i].json.properties.title;\n\n if (titleFromFilter && item.binary && item.binary.data) {\n // 4. Create the new name (e.g., \"13/12/25\" -> \"13_12_25\")\n const cleanDate = titleFromFilter.toString().replaceAll('/', '_');\n const newFileName = `Car Access - ${cleanDate}.xlsx`;\n\n // 5. Overwrite the \"25.pdf\" name with our new name\n item.binary.data.fileName = newFileName;\n }\n}\n\nreturn $input.all();"
},
"typeVersion": 2
},
{
"id": "323ec5ef-91b2-4c5a-aca9-554777329e00",
"name": "Check max linebreaks",
"type": "n8n-nodes-base.code",
"position": [
1792,
-288
],
"parameters": {
"jsCode": "// Get all items from the previous node\nconst allItems = $input.all();\n\nconst PIXELS_PER_LINE = 18; // Standard Google/Excel row height\nconst MIN_HEIGHT = 21;\n\n// Process each row\nconst results = allItems.map((item, index) => {\n let maxLinesInRow = 1;\n\n // Check every column/property in this specific row\n for (const key in item.json) {\n const value = item.json[key];\n \n // Only check if the value is a string\n if (typeof value === 'string') {\n // Count line breaks by splitting by newline character \\n\n const lineCount = value.split('\\n').length;\n if (lineCount > maxLinesInRow) {\n maxLinesInRow = lineCount;\n }\n }\n }\n\n return {\n json: {\n // Direct mapping from your input format\n sourceSheetId: item.json.source_SheetId,\n rowInSheetIndex: item.json.row_number,\n \n // Keep your existing calculation logic\n pixelSize: Math.max(MIN_HEIGHT, maxLinesInRow * PIXELS_PER_LINE),\n maxLinesFound: maxLinesInRow,\n \n // Optional: If you want to keep the original columns (LG1, LG2, etc.) \n // uncomment the line below:\n // ...item.json \n }\n };\n});\n\nreturn results;\n"
},
"typeVersion": 2
},
{
"id": "ff1940aa-9c01-4470-bcad-7a939aadac75",
"name": "Set row height based on max linebreaks",
"type": "n8n-nodes-base.httpRequest",
"position": [
2128,
-288
],
"parameters": {
"url": "=https://sheets.googleapis.com/v4/spreadsheets/{{ $('Define DateRange').item.json.excelSheetId }}:batchUpdate",
"body": "={{\nJSON.stringify({\n \"requests\": $input.all().map(item => ({\n \"updateDimensionProperties\": {\n \"range\": {\n \"sheetId\": item.json.sourceSheetId,\n \"dimension\": \"ROWS\",\n \"startIndex\": item.json.rowInSheetIndex - 1, // Subtract 1 if rowInSheetIndex 1 = Row 1\n \"endIndex\": item.json.rowInSheetIndex\n },\n \"properties\": {\n \"pixelSize\": item.json.pixelSize\n },\n \"fields\": \"pixelSize\"\n }\n }))\n})\n}}\n",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "raw",
"authentication": "predefinedCredentialType",
"rawContentType": "application/json",
"nodeCredentialType": "googleDriveOAuth2Api"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "1ycq7GJDCbuEoeJs",
"name": "jamesloworkingpc"
}
},
"typeVersion": 4.3
},
{
"id": "6319fb6b-825c-442b-8442-75086312a480",
"name": "Get row(s) in sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
1616,
-64
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "id",
"value": "={{ $('Check Filter').item.json.properties.sheetId }}"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Define DateRange').item.json.excelSheetId }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "CTySR2lDcMeRXD48",
"name": "jamesloworkingpc"
}
},
"typeVersion": 4.7
},
{
"id": "c7a530a3-0907-4d7c-8e18-324d8db20670",
"name": "Mon-Thur, pm",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
32,
-288
],
"parameters": {
"rule": {
"interval": [
{
"field": "weeks",
"triggerAtDay": [
1,
2,
3,
4
],
"triggerAtHour": 15
},
{
"field": "weeks",
"triggerAtDay": [
1,
2,
3,
4
],
"triggerAtHour": 20
}
]
}
},
"typeVersion": 1.3
},
{
"id": "f622b019-a964-4557-9963-dd9968c89d41",
"name": "Fri, pm",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
32,
-672
],
"parameters": {
"rule": {
"interval": [
{
"field": "weeks",
"triggerAtDay": [
5
],
"triggerAtHour": 15
},
{
"field": "weeks",
"triggerAtDay": [
5
],
"triggerAtHour": 20
}
]
}
},
"typeVersion": 1.3
},
{
"id": "1e991ff6-aab1-4fd3-a474-a980ce7ee966",
"name": "Mon-Fri, am",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
32,
-480
],
"parameters": {
"rule": {
"interval": [
{
"field": "weeks",
"triggerAtDay": [
1,
2,
3,
4,
5
],
"triggerAtHour": 8,
"triggerAtMinute": 15
}
]
}
},
"typeVersion": 1.3
},
{
"id": "4225b545-f16b-41c6-b1db-cbeb9516e84c",
"name": "today-today",
"type": "n8n-nodes-base.set",
"position": [
240,
-480
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "ef136455-3157-45b9-a22d-133fce09c647",
"name": "=StartDate",
"type": "string",
"value": "={{ $today.toFormat('yyyy-MM-dd') }}"
},
{
"id": "922cba4b-1755-4814-8a37-9fc9988a3f47",
"name": "EndDate",
"type": "string",
"value": "={{ $today.toFormat('yyyy-MM-dd') }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "bd96395a-6b1e-48e2-ac99-c58fe6812fbb",
"name": "tmr-Mon",
"type": "n8n-nodes-base.set",
"position": [
240,
-672
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "ef136455-3157-45b9-a22d-133fce09c647",
"name": "=StartDate",
"type": "string",
"value": "={{ $today.plus({ days: 1 }).toFormat('yyyy-MM-dd') }}"
},
{
"id": "922cba4b-1755-4814-8a37-9fc9988a3f47",
"name": "EndDate",
"type": "string",
"value": "={{ $today.plus({ days: 3 }).toFormat('yyyy-MM-dd') }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "c37356fa-abfb-491b-9e38-c0cd0b4df37d",
"name": "tmr-tmr",
"type": "n8n-nodes-base.set",
"position": [
240,
-288
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "ef136455-3157-45b9-a22d-133fce09c647",
"name": "=StartDate",
"type": "string",
"value": "={{ $today.plus({ days: 1 }).toFormat('yyyy-MM-dd') }}"
},
{
"id": "922cba4b-1755-4814-8a37-9fc9988a3f47",
"name": "EndDate",
"type": "string",
"value": "={{ $today.plus({ days: 1 }).toFormat('yyyy-MM-dd') }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "fad63e5f-c178-43c4-80ed-8824adcc5029",
"name": "Get Filter sheets Count",
"type": "n8n-nodes-base.code",
"position": [
2320,
-288
],
"parameters": {
"jsCode": "// Retrieve all items from the specific node by name\nconst items = $(\"Filter sheets with range\").all();\n\n// Map them into the standard n8n output format\nreturn items.map(item => {\n return {\n json: {\n sheetId: item.json.properties.sheetId,\n // You can add other fields here if needed\n sheetName: item.json.properties.title \n }\n };\n});\n"
},
"typeVersion": 2
},
{
"id": "4d5de0fe-3d0f-46d0-9da6-f0504752d098",
"name": "Filter useless pixelSize",
"type": "n8n-nodes-base.filter",
"position": [
1952,
-288
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "2e62e224-d306-47a8-9664-3d9468f4b54e",
"operator": {
"type": "number",
"operation": "gte"
},
"leftValue": "={{ $json.pixelSize }}",
"rightValue": 30
}
]
}
},
"typeVersion": 2.3
},
{
"id": "8893cb69-d802-44dd-a3b8-af055d65af5a",
"name": "Add source_SheetId",
"type": "n8n-nodes-base.set",
"position": [
1616,
-288
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "9665afe4-ab92-49fa-89bc-5249541e7e1d",
"name": "source_SheetId",
"type": "string",
"value": "={{ $(\"Filter sheets with range\").item.json.properties.sheetId }}"
},
{
"id": "96609d3b-6e0f-4bb9-8f6a-394517486ed8",
"name": "row_number",
"type": "number",
"value": "={{ $json.row_number }}"
},
{
"id": "2245af5d-e48b-4ab6-a072-0042955ee85d",
"name": "col_2",
"type": "string",
"value": "={{ $json.col_2 }}"
},
{
"id": "25112010-56be-4143-91cd-25c00c575bdf",
"name": "col_3",
"type": "string",
"value": "={{ $json.col_3 }}"
},
{
"id": "7476f5b7-42bf-4964-96a8-79d09cf65e07",
"name": "col_4",
"type": "string",
"value": "={{ $json.col_4 }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "c3423968-fe17-4676-8dca-29334d8bbb23",
"name": "Loop Over Items",
"type": "n8n-nodes-base.splitInBatches",
"position": [
1424,
-208
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "4be3f3fc-f54a-45ac-ada1-0c8934636140",
"name": "Replace Me",
"type": "n8n-nodes-base.noOp",
"position": [
1792,
-64
],
"parameters": {},
"typeVersion": 1
},
{
"id": "de429901-001a-423f-a4e5-a1f971ffb7b1",
"name": "Filter",
"type": "n8n-nodes-base.filter",
"position": [
1040,
-480
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"id": "3ae7c9bb-3cc6-455d-9ed0-23ee16570865",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.properties.title }}",
"rightValue": "={{ $today.minus({days: 1}).toFormat('dd/MM/yy') }}"
},
{
"id": "96780c21-a80e-4b39-9311-8bc6cf2e9335",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.properties.title }}",
"rightValue": "={{ $today.minus({days: 2}).toFormat('dd/MM/yy') }}"
},
{
"id": "fa680423-0be7-4174-8773-4f5177ab5e8b",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.properties.title }}",
"rightValue": "={{ $today.minus({days: 3}).toFormat('dd/MM/yy') }}"
}
]
}
},
"typeVersion": 2.3
},
{
"id": "7ede27ed-1aa2-4fbc-b135-efb36e651dcd",
"name": "Hide outdated sheet",
"type": "n8n-nodes-base.httpRequest",
"position": [
1216,
-480
],
"parameters": {
"url": "=https://sheets.googleapis.com/v4/spreadsheets/{{ $('Define DateRange').item.json.excelSheetId.trim() }}:batchUpdate",
"method": "POST",
"options": {},
"jsonBody": "={\n \"requests\": [\n {\n \"updateSheetProperties\": {\n \"properties\": {\n \"sheetId\": {{ $json.properties.sheetId }},\n \"hidden\": true\n },\n \"fields\": \"hidden\"\n }\n }\n ]\n}\n",
"sendBody": true,
"specifyBody": "json",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "googleSheetsOAuth2Api"
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "CTySR2lDcMeRXD48",
"name": "jamesloworkingpc"
}
},
"typeVersion": 4.3
},
{
"id": "ea1080fa-0a63-4323-bb31-86123d863852",
"name": "All Emails",
"type": "n8n-nodes-base.set",
"position": [
496,
-32
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "id-1",
"name": "recipientEmail",
"type": "string",
"value": ""
},
{
"id": "id-2",
"name": "excelSheetId",
"type": "string",
"value": "1rlYiIBD5gymXyzQR5lEC-gvtzXH0NE9ld9BS_yQifxk"
},
{
"id": "1bd907c2-83bf-4d9b-bfaa-aa3512abf764",
"name": "StartDate",
"type": "string",
"value": "={{ $json.StartDate }}"
},
{
"id": "d7045431-b191-4fc0-aad9-068342916701",
"name": "EndDate",
"type": "string",
"value": "={{ $json.EndDate }}"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "bffb447d-64bd-482a-b22c-01bb981a1251",
"name": "Send Warning, no Schedule found",
"type": "n8n-nodes-base.gmail",
"position": [
1424,
-416
],
"webhookId": "4cbc84fd-17a9-4593-99f6-a25f6e0e36ba",
"parameters": {
"sendTo": "={{ $('Define DateRange').item.json.recipientEmail }}",
"message": "=no Car Access Schedule found ({{ $('Define DateRange').item.json.StartDate.split('-').reverse().slice(0, 2).join('/') }}-{{ $('Define DateRange').item.json.EndDate.split('-').reverse().slice(0, 2).join('/') }})",
"options": {
"appendAttribution": false
},
"subject": "=no Car Access Schedule found ({{ $('Define DateRange').item.json.StartDate.split('-').reverse().slice(0, 2).join('/') }}-{{ $('Define DateRange').item.json.EndDate.split('-').reverse().slice(0, 2).join('/') }})",
"emailType": "text"
},
"credentials": {
"gmailOAuth2": {
"id": "dJo9eZG5DYh8NPRm",
"name": "jamesloworkingpc"
}
},
"typeVersion": 2.2
}
],
"active": true,
"pinData": {},
"settings": {
"availableInMCP": false,
"executionOrder": "v1"
},
"versionId": "edbef68a-6296-4418-adfe-11a7029a2af7",
"connections": {
"Filter": {
"main": [
[
{
"node": "Hide outdated sheet",
"type": "main",
"index": 0
}
]
]
},
"Fri, pm": {
"main": [
[
{
"node": "tmr-Mon",
"type": "main",
"index": 0
}
]
]
},
"tmr-Mon": {
"main": [
[
{
"node": "Define DateRange",
"type": "main",
"index": 0
}
]
]
},
"tmr-tmr": {
"main": [
[
{
"node": "Define DateRange",
"type": "main",
"index": 0
}
]
]
},
"Find GID": {
"main": [
[
{
"node": "Split sheets",
"type": "main",
"index": 0
}
]
]
},
"Aggregate": {
"main": [
[
{
"node": "Send email with many days",
"type": "main",
"index": 0
}
]
]
},
"Replace Me": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Mon-Fri, am": {
"main": [
[
{
"node": "today-today",
"type": "main",
"index": 0
}
]
]
},
"today-today": {
"main": [
[
{
"node": "Define DateRange",
"type": "main",
"index": 0
}
]
]
},
"Check Filter": {
"main": [
[
{
"node": "Send Warning, no Schedule found",
"type": "main",
"index": 0
}
],
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields1": {
"main": [
[
{
"node": "Define DateRange",
"type": "main",
"index": 0
}
]
]
},
"Mon-Thur, pm": {
"main": [
[
{
"node": "tmr-tmr",
"type": "main",
"index": 0
}
]
]
},
"Split sheets": {
"main": [
[
{
"node": "Filter sheets with range",
"type": "main",
"index": 0
},
{
"node": "Filter",
"type": "main",
"index": 0
}
]
]
},
"check >1 pdf": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
],
[
{
"node": "Send email with 1 day",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items": {
"main": [
[
{
"node": "Add source_SheetId",
"type": "main",
"index": 0
}
],
[
{
"node": "Get row(s) in sheet",
"type": "main",
"index": 0
}
]
]
},
"Define DateRange": {
"main": [
[
{
"node": "Find GID",
"type": "main",
"index": 0
}
]
]
},
"Rename attachment": {
"main": [
[
{
"node": "check >1 pdf",
"type": "main",
"index": 0
}
]
]
},
"Add source_SheetId": {
"main": [
[
{
"node": "Check max linebreaks",
"type": "main",
"index": 0
}
]
]
},
"On form submission": {
"main": [
[
{
"node": "Edit Fields1",
"type": "main",
"index": 0
}
]
]
},
"Get row(s) in sheet": {
"main": [
[
{
"node": "Replace Me",
"type": "main",
"index": 0
}
]
]
},
"Check max linebreaks": {
"main": [
[
{
"node": "Filter useless pixelSize",
"type": "main",
"index": 0
}
]
]
},
"Download Excel Request": {
"main": [
[
{
"node": "Rename attachment",
"type": "main",
"index": 0
}
]
]
},
"Get Filter sheets Count": {
"main": [
[
{
"node": "Download Excel Request",
"type": "main",
"index": 0
}
]
]
},
"Filter sheets with range": {
"main": [
[
{
"node": "Check Filter",
"type": "main",
"index": 0
}
]
]
},
"Filter useless pixelSize": {
"main": [
[
{
"node": "Set row height based on max linebreaks",
"type": "main",
"index": 0
}
]
]
},
"Set row height based on max linebreaks": {
"main": [
[
{
"node": "Get Filter sheets Count",
"type": "main",
"index": 0
}
]
]
}
}
}