{
  "workflow": {
    "id": 7766,
    "name": "Send automated recruitment rejection email at end-of-day (Google Sheets | Gmail)",
    "views": 327,
    "recentViews": 0,
    "totalViews": 327,
    "createdAt": "2025-08-23T11:21:11.807Z",
    "description": "# Send Automated Recruitment Rejection Emails with Google Sheets and Gmail at End-of-Day.\n\nAutomatically reads a “Candidate Status” tab in Google Sheets every day at 18:00 Asia/Kolkata, filters rows with exact (case-sensitive) rejection statuses and sends one personalized rejection email per candidate via SMTP (Gmail). It rate-limits sends, supports DRY\\_RUN previews and writes a timestamp back to `rejection_sent_at` to avoid duplicates.\n\n## Who’s it for\n\n* Recruiters needing consistent, respectful closure at day end.\n* Teams tracking hiring outcomes in Google Sheets.\n* Coordinators who prefer a scheduled, hands-off workflow with safeguards.\n\n## How it works\n\n1. **Cron (18:00 IST)** triggers daily\n2. **Google Sheets Read** → loads **Candidate Status** tab\n3. **Filter** → keep rows where `status` `REJECT_STATUS_CSV` (exact match), with valid `candidate_email` and empty `rejection_sent_at`\n4. **DRY\\RUN?** If true → output preview only; if false → proceed\n5. **Rate limit** → wait `RATE_LIMIT_SECONDS` (default 10s) between emails\n6. **SMTP (Gmail)** → send personalized email per row using templates\n7. **Mark as sent** → write current timestamp to `rejection_sent_at`\n\n## How to set up\n\n* **Sheet & Columns**: Create “Candidate Status” tab with:\n`candidate_name, candidate_email, role, status, recruiter_name, recruiter_email, company_name, interview_feedback (optional), template_variant (optional), language (optional), rejection_sent_at`\n* **Credentials**: Connect **Google Sheets (OAuth)** and **SMTP (Gmail)** in n8n (use App Password if 2FA)\n* **Config (Set node)**:\n\t* `SPREADSHEET_ID`\n\t* `SOURCE_SHEET` = `Candidate Status`\n\t* `TIMEZONE` = `Asia/Kolkata`\n\t* `REJECT_STATUS_CSV` = e.g., `Rejected`\n\t* `SMTP_FROM` = e.g., `careers@company.com`\n\t* `SUBJECT_TEMPLATE` = `Regarding your application for {{role}} at {{company_name}}`\n\t* `HTML_TEMPLATE` / `TEXT_TEMPLATE`\n\t* `RATE_LIMIT_SECONDS` = `10`\n\t* `INCLUDE_WEEKENDS` = `true`\n\t* `DRY_RUN` = `false`\n* **Activate**: Enable the workflow\n\n## Requirements\n\n* Google Sheet with the “Candidate Status” tab and columns above.\n* SMTP (Gmail) account for sending.\n* n8n (cloud or self-hosted) with Google Sheets + SMTP credentials.\n\n## How to customize\n\n* **Statuses**: `REJECT_STATUS_CSV` supports comma-separated exact values (e.g., `Rejected,Not Selected`)\n* **Templates**: Edit `SUBJECT_TEMPLATE`, `HTML_TEMPLATE`, `TEXT_TEMPLATE`\n\n* **Variables:** `{{candidate_name}}`, `{{role}}`, `{{company_name}}`, `{{recruiter_name}}`, and optional `{{feedback_text}}`/`{{feedback_html}}` from `interview_feedback`\n* **Schedule**: Change Cron time from 18:00 to your preferred hour\n* **Rate limit**: Tune `RATE_LIMIT_SECONDS` for SMTP policy\n* **Preview**: Set `DRY_RUN=true` for a safe, no-send preview\n\n## Add-ons\n\n* **Dynamic Reply-To** per `recruiter_email`\n* **Localization/Variants** via `language` or `template_variant` columns\n* **Daily summary** email: sent/skip/error counts\n* **Validation & logging**: log invalid emails to another tab\n* **Gmail API**: swap SMTP with Gmail nodes if preferred\n\n## Use Case Examples\n\n* **Daily round-up**: 18:00 IST closure emails for all candidates marked `Rejected` today\n* **Multi-brand hiring**: Switch `company_name` per row and personalize subject lines\n* **Compliance/logging**: DRY\\RUN each afternoon, review, then flip to live sends\n\n## Common troubleshooting\n\n* **No emails sent**: Ensure `status` exactly matches `REJECT_STATUS_CSV` (case-sensitive) and `candidate_email` is present\n* **Duplicates**: Verify `rejection_sent_at` is blank before run; workflow sets it after sending\n* **Blank variables**: Fill `candidate_name`, `role`, `company_name`, `recruiter_name` in the sheet\n* **SMTP errors**: Check credentials, sender permissions, and daily limits\n* **Timing**: Confirm workflow timezone `Asia/Kolkata` and Cron = 18:00\n\n### Need Help?\n\nWant us to tailor the template, add a summary report or wire up company-based variants? Contact our [n8n automation engineers](https://www.weblineindia.com/hire-n8n-developers/) at WeblineIndia and we’ll plug it in.",
    "workflow": {
      "id": "3bsNBJ5i1ylNYtKM",
      "meta": {
        "instanceId": "14e4c77104722ab186539dfea5182e419aecc83d85963fe13f6de862c875ebfa",
        "templateCredsSetupCompleted": true
      },
      "name": "Automated Recruitment Rejection Emails with Google Sheets and Gmail at End-of-Day",
      "tags": [],
      "nodes": [
        {
          "id": "afba507f-8023-4c22-af01-d040e266d257",
          "name": "Schedule Trigger",
          "type": "n8n-nodes-base.scheduleTrigger",
          "position": [
            0,
            0
          ],
          "parameters": {
            "rule": {
              "interval": [
                {
                  "field": "cronExpression",
                  "expression": "0 18 * * *"
                },
                {}
              ]
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "0f99da8f-7974-4fed-986c-e1985d4ad486",
          "name": "Set: Config",
          "type": "n8n-nodes-base.set",
          "position": [
            220,
            0
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "1e96273a-d891-44c4-b433-2a11840b8c63",
                  "name": "SPREADSHEET_ID",
                  "type": "string",
                  "value": "1n_AIqOd10Q0ErQZSO4q4LBMekwgsR4cP7EW2q9nEzdk"
                },
                {
                  "id": "0aae4a91-f153-4493-a9a8-9a2023e4f158",
                  "name": "SOURCE_SHEET",
                  "type": "string",
                  "value": "Candidate Status"
                },
                {
                  "id": "802cb08e-cfec-4a40-9236-afea62476136",
                  "name": "TIMEZONE",
                  "type": "string",
                  "value": "Asia/Kolkata"
                },
                {
                  "id": "708470ef-5283-4440-9db7-4bd9336ed468",
                  "name": "REJECT_STATUS_CSV",
                  "type": "string",
                  "value": "Rejected"
                },
                {
                  "id": "fbaed34b-a618-45ec-883c-7ee89dc2932f",
                  "name": "SMTP_FROM",
                  "type": "string",
                  "value": "user@example.com"
                },
                {
                  "id": "b3f745cb-b5d2-43e9-a7a1-803fc0646274",
                  "name": "SUBJECT_TEMPLATE",
                  "type": "string",
                  "value": "Regarding your application for {{role}} at {{company_name}}"
                },
                {
                  "id": "03bb79a9-6115-402d-a88a-de24bdaf6016",
                  "name": "HTML_TEMPLATE",
                  "type": "string",
                  "value": "<p>Dear {{candidate_name}},</p><p>Thank you for your interest in the {{role}} position at {{company_name}} and for taking the time to interview with our team.</p><p>After careful consideration, we have decided to move forward with another candidate for this role. This decision was not easy, as we were impressed by your qualifications and experience.</p>{{feedback_html}}<p>We encourage you to apply for future opportunities that align with your skills and interests. We will keep your resume on file for consideration.</p><p>Thank you again for your time and interest in {{company_name}}.</p><p>Best regards,<br>{{recruiter_name}}<br>{{company_name}} Recruiting Team</p>"
                },
                {
                  "id": "7fa7d589-8e71-4de4-80bc-fe8bd2c91f1f",
                  "name": "TEXT_TEMPLATE",
                  "type": "string",
                  "value": "Dear {{candidate_name}},\\n\\nThank you for your interest in the {{role}} position at {{company_name}} and for taking the time to interview with our team.\\n\\nAfter careful consideration, we have decided to move forward with another candidate for this role. This decision was not easy, as we were impressed by your qualifications and experience.\\n\\n{{feedback_text}}\\n\\nWe encourage you to apply for future opportunities that align with your skills and interests. We will keep your resume on file for consideration.\\n\\nThank you again for your time and interest in {{company_name}}.\\n\\nBest regards,\\n{{recruiter_name}}\\n{{company_name}} Recruiting Team"
                },
                {
                  "id": "881304fe-b862-4d6d-a4e5-8c774fcbb341",
                  "name": "RATE_LIMIT_SECONDS",
                  "type": "number",
                  "value": 10
                },
                {
                  "id": "4355e287-bbe4-4e82-a2bd-1cd086dc79db",
                  "name": "INCLUDE_WEEKENDS",
                  "type": "boolean",
                  "value": true
                },
                {
                  "id": "74a3dd62-e07d-4878-8ca6-ea6c5fc603d8",
                  "name": "DRY_RUN",
                  "type": "boolean",
                  "value": false
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "504591fe-f969-41cc-87a2-b472916b0d52",
          "name": "Check Weekend Policy",
          "type": "n8n-nodes-base.if",
          "position": [
            420,
            -20
          ],
          "parameters": {
            "options": {},
            "conditions": {
              "options": {
                "version": 2,
                "leftValue": "",
                "caseSensitive": true,
                "typeValidation": "strict"
              },
              "combinator": "or",
              "conditions": [
                {
                  "id": "3f4bd624-1242-4949-a6dc-f1916a35998c",
                  "operator": {
                    "type": "boolean",
                    "operation": "equals"
                  },
                  "leftValue": "={{ $json.INCLUDE_WEEKENDS }}",
                  "rightValue": true
                },
                {
                  "id": "11590e43-b563-4652-ba39-c554bbdde5c8",
                  "operator": {
                    "type": "boolean",
                    "operation": "equals"
                  },
                  "leftValue": "={{ [1, 2, 3, 4, 5].includes(new Date().getDay()) }}",
                  "rightValue": true
                }
              ]
            }
          },
          "typeVersion": 2.2
        },
        {
          "id": "da3d050e-cf10-474b-aced-685cdbff2eb8",
          "name": "Weekend Skip Message",
          "type": "n8n-nodes-base.set",
          "position": [
            640,
            80
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "957a03f9-9552-4023-af3b-a315f437ef92",
                  "name": "message",
                  "type": "string",
                  "value": "Skipping execution - Weekend and INCLUDE_WEEKENDS is false"
                },
                {
                  "id": "40645baf-356e-4a1f-964a-87248a29205b",
                  "name": "timestamp",
                  "type": "string",
                  "value": "={{ new Date().toISOString() }}"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "ee2c781f-9147-4361-aef7-ed2206f51274",
          "name": "Filter Candidates for Rejection",
          "type": "n8n-nodes-base.code",
          "position": [
            920,
            -140
          ],
          "parameters": {
            "jsCode": "// Get configuration from the Set node\nconst config = $('Set: Config').item.json;\nconst rejectStatuses = config.REJECT_STATUS_CSV.split(',').map(s => s.trim());\n\n// Filter candidates that need rejection emails\nconst candidatesToEmail = [];\nconst skippedCandidates = [];\n\nfor (const item of $input.all()) {\n  const data = item.json;\n  \n  // Skip if no candidate email\n  if (!data.candidate_email || data.candidate_email.trim() === '') {\n    skippedCandidates.push({ reason: 'No email', data });\n    continue;\n  }\n  \n  // Skip if rejection already sent\n  if (data.rejection_sent_at && data.rejection_sent_at.trim() !== '') {\n    skippedCandidates.push({ reason: 'Already sent', data });\n    continue;\n  }\n  \n  // Check if status matches rejection criteria (case-sensitive)\n  if (!rejectStatuses.includes(data.status)) {\n    skippedCandidates.push({ reason: 'Status not in reject list', data });\n    continue;\n  }\n  \n  // Skip if missing required fields\n  if (!data.candidate_name || !data.role || !data.company_name || !data.recruiter_name) {\n    skippedCandidates.push({ reason: 'Missing required fields', data });\n    continue;\n  }\n  \n  candidatesToEmail.push(data);\n}\n\nconsole.log(`Found ${candidatesToEmail.length} candidates to email`);\nconsole.log(`Skipped ${skippedCandidates.length} candidates`);\n\n// Return the filtered candidates\nreturn candidatesToEmail.map(candidate => ({ json: candidate }));"
          },
          "typeVersion": 2
        },
        {
          "id": "ad8780bc-7ff2-490c-9c28-437d70002d0d",
          "name": "Is Dry Run?",
          "type": "n8n-nodes-base.if",
          "position": [
            1360,
            -227.38767390945867
          ],
          "parameters": {
            "options": {},
            "conditions": {
              "options": {
                "version": 2,
                "leftValue": "",
                "caseSensitive": true,
                "typeValidation": "strict"
              },
              "combinator": "and",
              "conditions": [
                {
                  "id": "d47f5a55-07e4-4e27-96c5-ad18c94aa4f5",
                  "operator": {
                    "type": "boolean",
                    "operation": "equals"
                  },
                  "leftValue": "={{ $('Set: Config').item.json.DRY_RUN }}",
                  "rightValue": true
                }
              ]
            }
          },
          "typeVersion": 2.2
        },
        {
          "id": "7b40df04-318a-4a0f-884f-071ea173e7e0",
          "name": "Dry Run Preview",
          "type": "n8n-nodes-base.code",
          "position": [
            1580,
            -316.6968033946768
          ],
          "parameters": {
            "jsCode": "// Dry run preview\nconst config = $('Set: Config').item.json;\nconst candidates = $input.all();\n\nconsole.log('DRY RUN MODE - Preview of emails to be sent:');\nconsole.log('='.repeat(50));\n\nfor (let i = 0; i < candidates.length; i++) {\n  const candidate = candidates[i].json;\n  \n  // Process subject template\n  let subject = config.SUBJECT_TEMPLATE\n    .replace(/{{candidate_name}}/g, candidate.candidate_name || '')\n    .replace(/{{role}}/g, candidate.role || '')\n    .replace(/{{company_name}}/g, candidate.company_name || '')\n    .replace(/{{recruiter_name}}/g, candidate.recruiter_name || '');\n  \n  console.log(`${i + 1}. To: ${candidate.candidate_email}`);\n  console.log(`   Subject: ${subject}`);\n  console.log(`   Status: ${candidate.status}`);\n  console.log(`   Role: ${candidate.role}`);\n  console.log('');\n}\n\nconsole.log(`Total emails that would be sent: ${candidates.length}`);\nconsole.log('='.repeat(50));\n\nreturn [{ json: { \n  message: `DRY RUN: Would send ${candidates.length} rejection emails`, \n  candidates_count: candidates.length,\n  dry_run: true\n}}];"
          },
          "typeVersion": 2
        },
        {
          "id": "47770189-90de-4470-af74-a3a0ce25c842",
          "name": "Process Email Template",
          "type": "n8n-nodes-base.code",
          "position": [
            1580,
            -120
          ],
          "parameters": {
            "jsCode": "// Process email template for current candidate\nconst config = $('Set: Config').item.json;\nconst candidate = $json;\n\n// Process feedback if available\nlet feedbackHtml = '';\nlet feedbackText = '';\nif (candidate.interview_feedback && candidate.interview_feedback.trim() !== '') {\n  feedbackHtml = `<p><strong>Feedback:</strong> ${candidate.interview_feedback}</p>`;\n  feedbackText = `\\nFeedback: ${candidate.interview_feedback}\\n`;\n}\n\n// Process HTML template\nlet htmlBody = config.HTML_TEMPLATE\n  .replace(/{{candidate_name}}/g, candidate.candidate_name || '')\n  .replace(/{{role}}/g, candidate.role || '')\n  .replace(/{{company_name}}/g, candidate.company_name || '')\n  .replace(/{{recruiter_name}}/g, candidate.recruiter_name || '')\n  .replace(/{{feedback_html}}/g, feedbackHtml);\n\n// Process text template\nlet textBody = config.TEXT_TEMPLATE\n  .replace(/{{candidate_name}}/g, candidate.candidate_name || '')\n  .replace(/{{role}}/g, candidate.role || '')\n  .replace(/{{company_name}}/g, candidate.company_name || '')\n  .replace(/{{recruiter_name}}/g, candidate.recruiter_name || '')\n  .replace(/{{feedback_text}}/g, feedbackText);\n\n// Process subject template\nlet subject = config.SUBJECT_TEMPLATE\n  .replace(/{{candidate_name}}/g, candidate.candidate_name || '')\n  .replace(/{{role}}/g, candidate.role || '')\n  .replace(/{{company_name}}/g, candidate.company_name || '')\n  .replace(/{{recruiter_name}}/g, candidate.recruiter_name || '');\n\nreturn {\n  json: {\n    ...candidate,\n    email_subject: subject,\n    email_html: htmlBody,\n    email_text: textBody,\n    smtp_from: config.SMTP_FROM\n  }\n};"
          },
          "typeVersion": 2
        },
        {
          "id": "03cba26e-e096-4e03-9b51-2337da836e1e",
          "name": "Has Candidates to Email?",
          "type": "n8n-nodes-base.if",
          "position": [
            1140,
            -140
          ],
          "parameters": {
            "options": {},
            "conditions": {
              "options": {
                "version": 2,
                "leftValue": "",
                "caseSensitive": true,
                "typeValidation": "strict"
              },
              "combinator": "and",
              "conditions": [
                {
                  "id": "30b45fed-d929-4718-ac41-21a96c295295",
                  "operator": {
                    "type": "object",
                    "operation": "notEmpty",
                    "singleValue": true
                  },
                  "leftValue": "={{ $json }}",
                  "rightValue": ""
                }
              ]
            }
          },
          "typeVersion": 2.2
        },
        {
          "id": "62b25b62-a7fb-4f89-9929-52f0bd95eb82",
          "name": "No Candidates Message",
          "type": "n8n-nodes-base.set",
          "position": [
            1380,
            60
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "d879c53b-b757-48a8-bc98-12ab841d83a8",
                  "name": "message",
                  "type": "string",
                  "value": "No candidates found for rejection emails today"
                },
                {
                  "id": "ef1e7563-4483-44a8-b8fd-cf2b25f82e8a",
                  "name": "timestamp",
                  "type": "string",
                  "value": "={{ new Date().toISOString() }}"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "71d973fc-3439-4141-8d15-92a3809ea4ca",
          "name": "Rate Limit Wait",
          "type": "n8n-nodes-base.wait",
          "position": [
            1800,
            -120
          ],
          "webhookId": "c8f42998-bd55-4ed5-8ffc-28139dc519f4",
          "parameters": {
            "amount": "={{ $('Set: Config').first().json.RATE_LIMIT_SECONDS }}\n"
          },
          "typeVersion": 1.1
        },
        {
          "id": "502e0718-c576-4200-9e70-813dc8f00ee1",
          "name": "Log Success",
          "type": "n8n-nodes-base.set",
          "position": [
            2400,
            -120
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "0b708662-5515-443b-9cdc-42c9552f07ad",
                  "name": "message",
                  "type": "string",
                  "value": "=Rejection email sent successfully to {{ $json.candidate_email }}"
                },
                {
                  "id": "47d6070a-3cf4-4693-b807-fadc4203e41b",
                  "name": "candidate_name",
                  "type": "string",
                  "value": "={{ $json.candidate_name }}"
                },
                {
                  "id": "d34acf55-9411-4ee0-96c9-f764dbeabcbc",
                  "name": "sent_at",
                  "type": "string",
                  "value": "={{ new Date().toISOString() }}"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "926bc390-d721-4b13-add3-7bc508a8f0ba",
          "name": "Mark as Sent in Sheet",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            2220,
            -120
          ],
          "parameters": {
            "columns": {
              "value": {
                "rejection_sent_at": "={{ new Date().toISOString() }}"
              },
              "schema": [
                {
                  "id": "candidate_name",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "candidate_name",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "candidate_email",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "candidate_email",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "role",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "role",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "status",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "status",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "recruiter_name",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "recruiter_name",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "rejection_sent_at",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "rejection_sent_at",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "row_number",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "readOnly": true,
                  "required": false,
                  "displayName": "row_number",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                }
              ],
              "mappingMode": "defineBelow",
              "matchingColumns": [
                "candidate_email"
              ],
              "attemptToConvertTypes": false,
              "convertFieldsToString": false
            },
            "options": {},
            "operation": "update",
            "sheetName": {
              "__rl": true,
              "mode": "name",
              "value": "Candidate Status"
            },
            "documentId": {
              "__rl": true,
              "mode": "id",
              "value": "1n_AIqOd10Q0ErQZSO4q4LBMekwgsR4cP7EW2q9nEzdk"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.6
        },
        {
          "id": "52bba329-067e-46a5-aef4-7f28558b16ac",
          "name": "Send Rejection Email1",
          "type": "n8n-nodes-base.gmail",
          "position": [
            2020,
            -120
          ],
          "webhookId": "462efaac-082a-4b99-b9a9-c3e04c06572b",
          "parameters": {
            "sendTo": "={{$json.candidate_email}}",
            "message": "={{$json.email_html}}",
            "options": {},
            "subject": "={{$json.email_subject}}"
          },
          "credentials": {
            "gmailOAuth2": {
              "id": "credential-id",
              "name": "gmailOAuth2 Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "958eb49a-a567-4608-be1f-52b5291bdbf6",
          "name": "Fetch Candidate Data",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            700,
            -140
          ],
          "parameters": {
            "options": {},
            "sheetName": {
              "__rl": true,
              "mode": "name",
              "value": "Candidate Status"
            },
            "documentId": {
              "__rl": true,
              "mode": "id",
              "value": "1n_AIqOd10Q0ErQZSO4q4LBMekwgsR4cP7EW2q9nEzdk"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.6,
          "alwaysOutputData": true
        }
      ],
      "active": false,
      "pinData": {},
      "settings": {
        "executionOrder": "v1"
      },
      "versionId": "77ed4c82-e3b6-4b6e-b67f-b6cd686f3fcc",
      "connections": {
        "Is Dry Run?": {
          "main": [
            [
              {
                "node": "Dry Run Preview",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Process Email Template",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Set: Config": {
          "main": [
            [
              {
                "node": "Check Weekend Policy",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Rate Limit Wait": {
          "main": [
            [
              {
                "node": "Send Rejection Email1",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Schedule Trigger": {
          "main": [
            [
              {
                "node": "Set: Config",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Check Weekend Policy": {
          "main": [
            [
              {
                "node": "Fetch Candidate Data",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Weekend Skip Message",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Fetch Candidate Data": {
          "main": [
            [
              {
                "node": "Filter Candidates for Rejection",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Mark as Sent in Sheet": {
          "main": [
            [
              {
                "node": "Log Success",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Send Rejection Email1": {
          "main": [
            [
              {
                "node": "Mark as Sent in Sheet",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Process Email Template": {
          "main": [
            [
              {
                "node": "Rate Limit Wait",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Has Candidates to Email?": {
          "main": [
            [
              {
                "node": "Is Dry Run?",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "No Candidates Message",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Filter Candidates for Rejection": {
          "main": [
            [
              {
                "node": "Has Candidates to Email?",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 29,
    "workflowInfo": {
      "nodeCount": 15,
      "nodeTypes": {
        "n8n-nodes-base.if": {
          "count": 3
        },
        "n8n-nodes-base.set": {
          "count": 4
        },
        "n8n-nodes-base.code": {
          "count": 3
        },
        "n8n-nodes-base.wait": {
          "count": 1
        },
        "n8n-nodes-base.gmail": {
          "count": 1
        },
        "n8n-nodes-base.googleSheets": {
          "count": 2
        },
        "n8n-nodes-base.scheduleTrigger": {
          "count": 1
        }
      }
    },
    "status": "published",
    "user": {
      "name": "WeblineIndia",
      "username": "weblineindia",
      "bio": "A Leading Software Engineering, Consulting & Outsourcing Services Company in USA & India serving Clients Globally since 1999.",
      "verified": true,
      "links": [
        "https://www.weblineindia.com/"
      ],
      "avatar": "https://gravatar.com/avatar/a229d43aefca4588581583c58bb37b4773aebbdf4c1fef86a08bb1d38eae91fa?r=pg&d=retro&size=200"
    },
    "nodes": [
      {
        "id": 18,
        "icon": "file:googleSheets.svg",
        "name": "n8n-nodes-base.googleSheets",
        "codex": {
          "data": {
            "alias": [
              "CSV",
              "Sheet",
              "Spreadsheet",
              "GS"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/love-at-first-sight-ricardos-n8n-journey/",
                  "icon": "❤️",
                  "label": "Love at first sight: Ricardo’s n8n journey"
                },
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/",
                  "icon": "🧾",
                  "label": "Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/",
                  "icon": "🎫",
                  "label": "Supercharging your conference registration process with n8n"
                },
                {
                  "url": "https://n8n.io/blog/creating-triggers-for-n8n-workflows-using-polling/",
                  "icon": "⏲",
                  "label": "Creating triggers for n8n workflows using polling"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/",
                  "icon": "📈",
                  "label": "Migrating Community Metrics to Orbit using n8n"
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/your-business-doesnt-need-you-to-operate/",
                  "icon": " 🖥️",
                  "label": "Hey founders! Your business doesn't need you to operate"
                },
                {
                  "url": "https://n8n.io/blog/how-honest-burgers-use-automation-to-save-100k-per-year/",
                  "icon": "🍔",
                  "label": "How Honest Burgers Use Automation to Save $100k per year"
                },
                {
                  "url": "https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/",
                  "icon": "💻",
                  "label": "How a digital strategist uses n8n for online marketing"
                },
                {
                  "url": "https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/",
                  "icon": "🧠",
                  "label": "Why this Product Manager loves workflow automation with n8n"
                },
                {
                  "url": "https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/",
                  "icon": "🙌",
                  "label": "Sending Automated Congratulations with Google Sheets, Twilio, and n8n "
                },
                {
                  "url": "https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/",
                  "icon": "📈",
                  "label": "How a Membership Development Manager automates his work and investments"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"
                }
              ]
            },
            "categories": [
              "Data & Storage",
              "Productivity"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"input\",\"output\"]",
        "defaults": {
          "name": "Google Sheets"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNS42OSAxIDUyIDE3LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0OC4yOTMgNjBIMTIuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDkgNTYuMzEyVjQuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTIuNzA3IDF6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM1LjY5IDEgNTIgMTcuMjI1SDM5LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzkuMjExIDE3LjIyNSA1MiAyMi40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTIwLjEyIDMxLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMS42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzEuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNC42OSAwIDUxIDE2LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0Ny4yOTMgNTlIMTEuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDggNTUuMzEyVjMuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTEuNzA3IDB6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM0LjY5IDAgNTEgMTYuMjI1SDM4LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzguMjExIDE2LjIyNSA1MSAyMS40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE5LjEyIDMwLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMC42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzAuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjwvZz48L3N2Zz4="
        },
        "displayName": "Google Sheets",
        "typeVersion": 5,
        "nodeCategories": [
          {
            "id": 3,
            "name": "Data & Storage"
          },
          {
            "id": 4,
            "name": "Productivity"
          }
        ]
      },
      {
        "id": 20,
        "icon": "fa:map-signs",
        "name": "n8n-nodes-base.if",
        "codex": {
          "data": {
            "alias": [
              "Router",
              "Filter",
              "Condition",
              "Logic",
              "Boolean",
              "Branch"
            ],
            "details": "The IF node can be used to implement binary conditional logic in your workflow. You can set up one-to-many conditions to evaluate each item of data being inputted into the node. That data will either evaluate to TRUE or FALSE and route out of the node accordingly.\n\nThis node has multiple types of conditions: Bool, String, Number, and Date & Time.",
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/",
                  "icon": "🏭",
                  "label": "Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"
                },
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/",
                  "icon": "🤬",
                  "label": "Create a toxic language detector for Telegram in 4 step"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/",
                  "icon": "🔗",
                  "label": "How to build a low-code, self-hosted URL shortener in 3 steps"
                },
                {
                  "url": "https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/",
                  "icon": "⚙️",
                  "label": "Automate your data processing pipeline in 9 steps"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/",
                  "icon": "🏷️",
                  "label": "How to automatically manage contributions to open-source projects"
                },
                {
                  "url": "https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/",
                  "icon": " 🕸️",
                  "label": "How uProc scraped a multi-page website with a low-code workflow"
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automations for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/",
                  "icon": "🧠",
                  "label": "Why this Product Manager loves workflow automation with n8n"
                },
                {
                  "url": "https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/",
                  "icon": "🙌",
                  "label": "Sending Automated Congratulations with Google Sheets, Twilio, and n8n "
                },
                {
                  "url": "https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/",
                  "icon": "🎡",
                  "label": "How to set up a no-code CI/CD pipeline with GitHub and TravisCI"
                },
                {
                  "url": "https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/",
                  "icon": "🎖",
                  "label": "Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.if/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Flow"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "If",
          "color": "#408000"
        },
        "iconData": {
          "icon": "map-signs",
          "type": "icon"
        },
        "displayName": "If",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 38,
        "icon": "fa:pen",
        "name": "n8n-nodes-base.set",
        "codex": {
          "data": {
            "alias": [
              "Set",
              "JS",
              "JSON",
              "Filter",
              "Transform",
              "Map"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/",
                  "icon": "🏭",
                  "label": "Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"
                },
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/",
                  "icon": "📈",
                  "label": "Automatically pulling and visualizing data with n8n"
                },
                {
                  "url": "https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/",
                  "icon": "📡",
                  "label": "Database Monitoring and Alerting with n8n"
                },
                {
                  "url": "https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/",
                  "icon": "🧾",
                  "label": "Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/",
                  "icon": "🔗",
                  "label": "How to build a low-code, self-hosted URL shortener in 3 steps"
                },
                {
                  "url": "https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/",
                  "icon": "⚙️",
                  "label": "Automate your data processing pipeline in 9 steps"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/",
                  "icon": " 🕸️",
                  "label": "How uProc scraped a multi-page website with a low-code workflow"
                },
                {
                  "url": "https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/",
                  "icon": "📱",
                  "label": "Building an expense tracking app in 10 minutes"
                },
                {
                  "url": "https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/",
                  "icon": "📹",
                  "label": "The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automations for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/",
                  "icon": "🧰",
                  "label": "Learn to Build Powerful API Endpoints Using Webhooks"
                },
                {
                  "url": "https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/",
                  "icon": "📈",
                  "label": "How a Membership Development Manager automates his work and investments"
                },
                {
                  "url": "https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/",
                  "icon": "📈",
                  "label": "A low-code bitcoin ticker built with QuestDB and n8n.io"
                },
                {
                  "url": "https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/",
                  "icon": "🎡",
                  "label": "How to set up a no-code CI/CD pipeline with GitHub and TravisCI"
                },
                {
                  "url": "https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/",
                  "icon": "🎖",
                  "label": "Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"
                },
                {
                  "url": "https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/",
                  "icon": "🛵",
                  "label": "How Goomer automated their operations with over 200 n8n workflows"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Edit Fields"
        },
        "iconData": {
          "icon": "pen",
          "type": "icon"
        },
        "displayName": "Edit Fields (Set)",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 356,
        "icon": "file:gmail.svg",
        "name": "n8n-nodes-base.gmail",
        "codex": {
          "data": {
            "alias": [
              "email",
              "human",
              "form",
              "wait",
              "hitl",
              "approval"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/",
                  "icon": "🎫",
                  "label": "Supercharging your conference registration process with n8n"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/your-business-doesnt-need-you-to-operate/",
                  "icon": " 🖥️",
                  "label": "Hey founders! Your business doesn't need you to operate"
                },
                {
                  "url": "https://n8n.io/blog/using-automation-to-boost-productivity-in-the-workplace/",
                  "icon": "💪",
                  "label": "Using Automation to Boost Productivity in the Workplace"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.gmail/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"
                }
              ]
            },
            "categories": [
              "Communication",
              "HITL"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "HITL": [
                "Human in the Loop"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Gmail"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTYiIGhlaWdodD0iMTkzIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+PHBhdGggZmlsbD0iIzQyODVGNCIgZD0iTTU4LjE4MiAxOTIuMDVWOTMuMTRMMjcuNTA3IDY1LjA3NyAwIDQ5LjUwNHYxMjUuMDkxYzAgOS42NTggNy44MjUgMTcuNDU1IDE3LjQ1NSAxNy40NTV6Ii8+PHBhdGggZmlsbD0iIzM0QTg1MyIgZD0iTTE5Ny44MTggMTkyLjA1aDQwLjcyN2M5LjY1OSAwIDE3LjQ1NS03LjgyNiAxNy40NTUtMTcuNDU1VjQ5LjUwNWwtMzEuMTU2IDE3LjgzNy0yNy4wMjYgMjUuNzk4eiIvPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Im01OC4xODIgOTMuMTQtNC4xNzQtMzguNjQ3IDQuMTc0LTM2Ljk4OUwxMjggNjkuODY4bDY5LjgxOC01Mi4zNjQgNC42NyAzNC45OTItNC42NyA0MC42NDRMMTI4IDE0NS41MDR6Ii8+PHBhdGggZmlsbD0iI0ZCQkMwNCIgZD0iTTE5Ny44MTggMTcuNTA0VjkzLjE0TDI1NiA0OS41MDRWMjYuMjMxYzAtMjEuNTg1LTI0LjY0LTMzLjg5LTQxLjg5LTIwLjk0NXoiLz48cGF0aCBmaWxsPSIjQzUyMjFGIiBkPSJtMCA0OS41MDQgMjYuNzU5IDIwLjA3TDU4LjE4MiA5My4xNFYxNy41MDRMNDEuODkgNS4yODZDMjQuNjEtNy42NiAwIDQuNjQ2IDAgMjYuMjN6Ii8+PC9zdmc+"
        },
        "displayName": "Gmail",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 28,
            "name": "HITL"
          }
        ]
      },
      {
        "id": 514,
        "icon": "fa:pause-circle",
        "name": "n8n-nodes-base.wait",
        "codex": {
          "data": {
            "alias": [
              "pause",
              "sleep",
              "delay",
              "timeout"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.wait/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers",
                "Flow"
              ]
            }
          }
        },
        "group": "[\"organization\"]",
        "defaults": {
          "name": "Wait",
          "color": "#804050"
        },
        "iconData": {
          "icon": "pause-circle",
          "type": "icon"
        },
        "displayName": "Wait",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 834,
        "icon": "file:code.svg",
        "name": "n8n-nodes-base.code",
        "codex": {
          "data": {
            "alias": [
              "cpde",
              "Javascript",
              "JS",
              "Python",
              "Script",
              "Custom Code",
              "Function"
            ],
            "details": "The Code node allows you to execute JavaScript in your workflow.",
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"
                }
              ]
            },
            "categories": [
              "Development",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers",
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Code"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="
        },
        "displayName": "Code",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 5,
            "name": "Development"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 839,
        "icon": "fa:clock",
        "name": "n8n-nodes-base.scheduleTrigger",
        "codex": {
          "data": {
            "alias": [
              "Time",
              "Scheduler",
              "Polling",
              "Cron",
              "Interval"
            ],
            "resources": {
              "generic": [],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"trigger\",\"schedule\"]",
        "defaults": {
          "name": "Schedule Trigger",
          "color": "#31C49F"
        },
        "iconData": {
          "icon": "clock",
          "type": "icon"
        },
        "displayName": "Schedule Trigger",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 17,
        "name": "HR"
      },
      {
        "id": 51,
        "name": "Multimodal AI"
      }
    ],
    "image": []
  }
}