{
  "id": "zayYKWaU4C1b2a2C",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Gracewell Automated Registration Tracker Suite",
  "tags": [],
  "nodes": [
    {
      "id": "6129a28e-055e-4355-8b3d-412cd2b21baf",
      "name": "Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -496,
        -848
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-i55cyu2DKZ_alSlR3Bd7abHn_EfvTpg73hv2y3zb4o/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1-i55cyu2DKZ_alSlR3Bd7abHn_EfvTpg73hv2y3zb4o",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-i55cyu2DKZ_alSlR3Bd7abHn_EfvTpg73hv2y3zb4o/edit?usp=drivesdk",
          "cachedResultName": "B"
        },
        "combineFilters": "OR"
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "939ffb5e-d5ba-4ddd-a34a-b5db3f8be956",
      "name": "Google Sheets1",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -496,
        -656
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1113734691,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/10eIZzrzgRy8PKfyhhVc8eG8lFoAxEqE0h-IOnqHwdVE/edit#gid=1113734691",
          "cachedResultName": "Form Responses 1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "10eIZzrzgRy8PKfyhhVc8eG8lFoAxEqE0h-IOnqHwdVE",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/10eIZzrzgRy8PKfyhhVc8eG8lFoAxEqE0h-IOnqHwdVE/edit?usp=drivesdk",
          "cachedResultName": "n8n forms (Responses)"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "9019ab48-1b0e-497a-bba6-50727a8664c9",
      "name": "Code",
      "type": "n8n-nodes-base.code",
      "position": [
        -48,
        -752
      ],
      "parameters": {
        "jsCode": "//-------------------------------------------------------------\n// Gracewell - Form Tracking Dashboard (Workflow 1)\n// Author: Dr. Jeffin Gracewell \u2013 Simplified Version\n//-------------------------------------------------------------\n\n// Step 1 \u2013 Read data from Google Sheets\nconst studentSheet  = $items(\"Google Sheets\").map(i => i.json);\nconst responseSheet = $items(\"Google Sheets1\").map(i => i.json);\n\n// Step 2 \u2013 Normalize and Compare Register Numbers\nconst submittedRegs = responseSheet.map(r => String(r[\"Reg No\"]).trim().toLowerCase());\nconst completed   = [];\nconst incompleted = [];\n\nfor (const s of studentSheet) {\n  const reg = String(s[\"Register No.\"]).trim().toLowerCase();\n  if (submittedRegs.includes(reg)) {\n    const r = responseSheet.find(x => String(x[\"Reg No\"]).trim().toLowerCase() === reg);\n    completed.push({\n      \"Register No.\": s[\"Register No.\"],\n      \"Student Name\": s[\"Student Name\"],\n      \"Email Address\": r?.[\"Email Address\"] || \"\",\n      \"Timestamp\": r?.[\"Timestamp\"] || \"\",\n      \"Status\": \"\u2705 Completed\"\n    });\n  } else {\n    incompleted.push({\n      \"Register No.\": s[\"Register No.\"],\n      \"Student Name\": s[\"Student Name\"],\n      \"Status\": \"\u26a0\ufe0f Not Submitted\"\n    });\n  }\n}\n\n// Step 3 \u2013 Summary\nconst summary = {\n  total: studentSheet.length,\n  submitted: completed.length,\n  pending: incompleted.length,\n  completion: ((completed.length / Math.max(1, studentSheet.length)) * 100).toFixed(2) + \"%\",\n  updated: new Date().toLocaleString()\n};\n\n// Step 4 \u2013 HTML Dashboard\nconst completedRows = completed\n  .map(s => `<tr><td>${s[\"Register No.\"]}</td><td>${s[\"Student Name\"]}</td><td>\u2705</td></tr>`)\n  .join(\"\");\n\nconst pendingRows = incompleted\n  .map(s => `<tr><td>${s[\"Register No.\"]}</td><td>${s[\"Student Name\"]}</td><td>\u26a0\ufe0f</td></tr>`)\n  .join(\"\");\n\nconst html = `\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<title>Gracewell \u2013 Form Tracking Dashboard</title>\n<script src=\"https://cdn.jsdelivr.net/npm/sweetalert2@11\"></script>\n<style>\nbody{font-family:'Segoe UI',Arial;background:#f9fafb;text-align:center;padding:30px;}\nh1{color:#2563eb;margin-bottom:10px;}\ntable{border-collapse:collapse;margin:15px auto;width:90%;max-width:900px;background:#fff;\n      box-shadow:0 2px 6px rgba(0,0,0,0.1);}\nth,td{padding:8px 12px;border-bottom:1px solid #eee;text-align:left;}\nth{background:#eff6ff;color:#1e3a8a;}\nbutton{margin:10px 8px;padding:10px 22px;border:none;border-radius:6px;font-size:15px;cursor:pointer;}\n.send{background:#dc2626;color:#fff;}\n.ack{background:#16a34a;color:#fff;}\nfooter{margin-top:25px;color:#666;font-size:14px;}\n</style>\n</head>\n<body>\n\n<h1>\ud83d\udcca Gracewell Form Tracking Dashboard</h1>\n<p>Total <strong>${summary.total}</strong> | Submitted <strong>${summary.submitted}</strong> | Pending <strong>${summary.pending}</strong> | Completion <strong>${summary.completion}</strong></p>\n\n<button class=\"ack\"  onclick=\"acknowledge()\">\u2705 Send Acknowledgements</button>\n<button class=\"send\" onclick=\"remind()\">\u26a0\ufe0f Send Reminders</button>\n\n<section>\n  <h2 style=\"color:#16a34a;\">\u2705 Completed (${completed.length})</h2>\n  <table><tr><th>Reg No</th><th>Student Name</th><th>Status</th></tr>${completedRows}</table>\n</section>\n\n<section>\n  <h2 style=\"color:#dc2626;\">\u26a0\ufe0f Pending (${incompleted.length})</h2>\n  <table><tr><th>Reg No</th><th>Student Name</th><th>Status</th></tr>${pendingRows}</table>\n</section>\n\n<footer>\ud83d\udd52 Last Updated: ${summary.updated}</footer>\n\n<script>\nfunction remind(){\n  Swal.fire({\n    title:'Send Reminders?',\n    text:'${incompleted.length} pending students will receive reminder emails or WhatsApp messages.',\n    icon:'question',showCancelButton:true,\n    confirmButtonText:'Yes, Send'\n  }).then(r=>{\n    if(r.isConfirmed){\n      window.location.href='https://n8n.srv765546.hstgr.cloud/webhook/send-reminder';\n    }\n  });\n}\nfunction acknowledge(){\n  Swal.fire({\n    title:'Send Acknowledgements?',\n    text:'${completed.length} students will receive thank-you messages.',\n    icon:'question',showCancelButton:true,\n    confirmButtonText:'Yes, Send'\n  }).then(r=>{\n    if(r.isConfirmed){\n      window.location.href='https://n8n.srv765546.hstgr.cloud/webhook/send-acknowledgements';\n    }\n  });\n}\n</script>\n\n</body>\n</html>\n`;\n\n// Step 5 \u2013 Return\nreturn [{\n  json: { summary, completed, incompleted, html }\n}];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "751e83f2-92e9-4ca2-80fe-51926866f07e",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        -272,
        -752
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "advanced": true,
        "mergeByFields": {
          "values": [
            {
              "field1": "Register No.",
              "field2": "Reg No"
            }
          ]
        }
      },
      "typeVersion": 3.2
    },
    {
      "id": "ab22e315-f457-4c6a-b143-3e5795b25275",
      "name": "Respond to Webhook",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        176,
        -736
      ],
      "parameters": {
        "options": {
          "responseCode": 200,
          "responseHeaders": {
            "entries": [
              {
                "name": "Content-Type",
                "value": "text/html"
              }
            ]
          }
        },
        "respondWith": "text",
        "responseBody": "=={{ $json[\"html\"] }}"
      },
      "typeVersion": 1.4
    },
    {
      "id": "1d83a5bf-9c03-4c8b-8478-1ae605e24e3d",
      "name": "Webhook1",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -720,
        -752
      ],
      "parameters": {
        "path": "2235781f-4371-4f6e-8767-41c352ed171f",
        "options": {},
        "responseMode": "responseNode"
      },
      "typeVersion": 2.1
    },
    {
      "id": "54808873-11d8-44fa-8429-42cabbfa2b5c",
      "name": "Webhook - send-acknowledgements",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -240,
        -336
      ],
      "parameters": {
        "path": "send-acknowledgements",
        "options": {},
        "responseMode": "responseNode"
      },
      "typeVersion": 2.1
    },
    {
      "id": "b8895288-5239-43f4-95b3-48d208bab533",
      "name": "Google Sheets - Student List",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        32,
        -496
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-i55cyu2DKZ_alSlR3Bd7abHn_EfvTpg73hv2y3zb4o/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1-i55cyu2DKZ_alSlR3Bd7abHn_EfvTpg73hv2y3zb4o",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-i55cyu2DKZ_alSlR3Bd7abHn_EfvTpg73hv2y3zb4o/edit?usp=drivesdk",
          "cachedResultName": "B"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "410063fe-d634-4db6-b2c6-c31bc239fc57",
      "name": "Code - Prepare Messages",
      "type": "n8n-nodes-base.code",
      "position": [
        480,
        -400
      ],
      "parameters": {
        "jsCode": "//-------------------------------------------------------------\n// Gracewell Workflow 2: Send Acknowledgements (Enhanced & Stable)\n//-------------------------------------------------------------\n\n// --- Read data from both Sheets nodes ---\nconst students  = $items('Google Sheets - Student List').map(i => i.json);\nconst responses = $items('Google Sheets FormResponses').map(i => i.json);\n\n// --- Normalization helper ---\nconst normalize = v => (v ? String(v).trim().toLowerCase() : '');\n\n// --- Lists ---\nconst completed = [];\n\n// --- Match Register Numbers ---\nfor (const s of students) {\n  const reg = normalize(s['Register No.']);\n  const match = responses.find(r => normalize(r['Reg No']) === reg);\n\n  if (match) {\n    completed.push({\n      'Register No.': s['Register No.'],\n      'Student Name': s['Student Name'],\n      'Contact': s['Contact'] || '',               // \u2705 added\n      'Email Address': s['Email'] || match['Email Address'] || '',\n      'Timestamp': match['Timestamp'] || '',\n      'Status': '\u2705 Completed'\n    });\n  }\n}\n\n// --- Prepare Email Content ---\nconst subject = '\u2705 Thank You for Your Submission';\nconst bodyTemplate = `\nDear {{name}},<br><br>\nThank you for completing your form (Reg No: {{reg}}).<br>\nWe appreciate your prompt response.<br><br>\n\u2013 Gracewell Technologies Team\n`;\n\n// --- Helper for placeholder replacement ---\nfunction fill(template, s) {\n  return template\n    .replace(/\\{\\{\\s*name\\s*\\}\\}/gi, s['Student Name'])\n    .replace(/\\{\\{\\s*reg\\s*\\}\\}/gi, s['Register No.']);\n}\n\n// --- Handle case of no completed students ---\nif (completed.length === 0) {\n  return [{ json: { message: 'No completed students found' } }];\n}\n\n// --- Output: one JSON per student ---\nreturn completed.map(s => ({\n  json: {\n    'Register No.': s['Register No.'],\n    'Student Name': s['Student Name'],\n    'Contact': s['Contact'],\n    'Email Address': s['Email Address'],\n    'subject': subject,\n    'htmlBody': fill(bodyTemplate, s)\n  }\n}));\n"
      },
      "typeVersion": 2
    },
    {
      "id": "555aad64-769d-4e5a-95ae-65badd883d4d",
      "name": "Respond - Confirmation",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        928,
        -400
      ],
      "parameters": {
        "options": {
          "responseCode": 200,
          "responseHeaders": {
            "entries": [
              {
                "name": "Content-Type",
                "value": "text/html"
              }
            ]
          }
        },
        "respondWith": "text",
        "responseBody": "<html><body style=\"font-family:Segoe UI,Arial;text-align:center;padding:40px;\"><h2>\u2705 Acknowledgements Sent</h2><p>All completed students have received thank-you messages.</p><a href=\"https://n8n.srv765546.hstgr.cloud/webhook/form-dashboard\">\u2190 Back to Dashboard</a></body></html>"
      },
      "typeVersion": 1.4
    },
    {
      "id": "f7170ea9-81c5-4602-a9f6-e1d85830694e",
      "name": "Send a message",
      "type": "n8n-nodes-base.gmail",
      "position": [
        704,
        -400
      ],
      "parameters": {
        "sendTo": "={{$json[\"Email Address\"]}}",
        "message": "={{ $json.htmlBody }}",
        "options": {},
        "subject": "{{ $json.subject }}"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "7fa0622b-4f27-4eb2-96d3-1f6a8a96d983",
      "name": "Google Sheets FormResponses",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        32,
        -304
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1113734691,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/10eIZzrzgRy8PKfyhhVc8eG8lFoAxEqE0h-IOnqHwdVE/edit#gid=1113734691",
          "cachedResultName": "Form Responses 1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "10eIZzrzgRy8PKfyhhVc8eG8lFoAxEqE0h-IOnqHwdVE",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/10eIZzrzgRy8PKfyhhVc8eG8lFoAxEqE0h-IOnqHwdVE/edit?usp=drivesdk",
          "cachedResultName": "n8n forms (Responses)"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "384d999b-d603-4a1e-ad58-6a055a2b26c4",
      "name": "Merge1",
      "type": "n8n-nodes-base.merge",
      "position": [
        256,
        -400
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "1bf63625-8f0d-4f2c-a6ea-08dcb50dc1ad",
      "name": "Google Sheets - FormResponses",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        16,
        208
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1113734691,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/10eIZzrzgRy8PKfyhhVc8eG8lFoAxEqE0h-IOnqHwdVE/edit#gid=1113734691",
          "cachedResultName": "Form Responses 1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "10eIZzrzgRy8PKfyhhVc8eG8lFoAxEqE0h-IOnqHwdVE",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/10eIZzrzgRy8PKfyhhVc8eG8lFoAxEqE0h-IOnqHwdVE/edit?usp=drivesdk",
          "cachedResultName": "n8n forms (Responses)"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "199c5e4a-514f-4c51-8568-d5aec1c0c3ea",
      "name": "Webhook - send-acknowledgements1",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -208,
        112
      ],
      "parameters": {
        "path": "send-reminder",
        "options": {},
        "responseMode": "responseNode"
      },
      "typeVersion": 2.1
    },
    {
      "id": "cb8662bb-0224-43c5-9596-36428dbc539f",
      "name": "Google Sheets - Student List1",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        16,
        16
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-i55cyu2DKZ_alSlR3Bd7abHn_EfvTpg73hv2y3zb4o/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1-i55cyu2DKZ_alSlR3Bd7abHn_EfvTpg73hv2y3zb4o",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-i55cyu2DKZ_alSlR3Bd7abHn_EfvTpg73hv2y3zb4o/edit?usp=drivesdk",
          "cachedResultName": "B"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "693ec31d-f225-4533-800f-870cdc838c59",
      "name": "Code - Prepare Messages1",
      "type": "n8n-nodes-base.code",
      "position": [
        464,
        112
      ],
      "parameters": {
        "jsCode": "//-------------------------------------------------------------\n// Gracewell Workflow 3: Send Reminders (Pending Students)\n//-------------------------------------------------------------\n\n// --- Read data from both Sheets nodes ---\nconst students  = $items('Google Sheets - Student List1').map(i => i.json);\nconst responses = $items('Google Sheets - FormResponses').map(i => i.json);\n\n// --- Helper function to normalize Register Numbers ---\nconst normalize = v => (v ? String(v).trim().toLowerCase() : '');\n\n// --- Extract submitted register numbers ---\nconst submittedRegs = responses.map(r => normalize(r['Reg No']));\n\n// --- Identify pending students ---\nconst pending = [];\n\nfor (const s of students) {\n  const reg = normalize(s['Register No.']);\n  if (!submittedRegs.includes(reg)) {\n    pending.push({\n      'Register No.': s['Register No.'],\n      'Student Name': s['Student Name'],\n      'Contact': s['Contact'] || '',\n      'Email Address': s['Email'] || '',\n      'Status': '\u26a0\ufe0f Not Submitted'\n    });\n  }\n}\n\n// --- Stop execution if no pending students ---\nif (pending.length === 0) {\n  return [{ json: { message: 'All students have submitted. No reminders needed.' } }];\n}\n\n// --- Define email subject & body template ---\nconst subject = '\u26a0\ufe0f Reminder: Please Complete Your Form';\nconst bodyTemplate = `\nDear {{name}},<br><br>\nOur records show that you have not yet completed the required form (Reg No: {{reg}}).<br>\nKindly fill it at your earliest convenience.<br><br>\n\u2013 Gracewell AI\n`;\n\n// --- Helper to replace placeholders in the message ---\nfunction fill(template, s) {\n  return template\n    .replace(/\\{\\{\\s*name\\s*\\}\\}/gi, s['Student Name'])\n    .replace(/\\{\\{\\s*reg\\s*\\}\\}/gi, s['Register No.']);\n}\n\n// --- Prepare final output for each pending student ---\nreturn pending.map(s => ({\n  json: {\n    'Register No.': s['Register No.'],\n    'Student Name': s['Student Name'],\n    'Contact': s['Contact'],\n    'Email Address': s['Email Address'],\n    'subject': subject,\n    'htmlBody': fill(bodyTemplate, s)\n  }\n}));\n"
      },
      "typeVersion": 2
    },
    {
      "id": "f17a315f-b0f1-4c2a-b482-cb6ccc627140",
      "name": "Respond - Confirmation1",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        912,
        112
      ],
      "parameters": {
        "options": {
          "responseCode": 200,
          "responseHeaders": {
            "entries": [
              {
                "name": "Content-Type",
                "value": "text/html"
              }
            ]
          }
        },
        "respondWith": "text",
        "responseBody": "<html><body style=\"font-family:Segoe UI,Arial;text-align:center;padding:40px;\"><h2>\u2705 Acknowledgements Sent</h2><p>All completed students have received thank-you messages.</p><a href=\"https://n8n.srv765546.hstgr.cloud/webhook/form-dashboard\">\u2190 Back to Dashboard</a></body></html>"
      },
      "typeVersion": 1.4
    },
    {
      "id": "a6e673c1-677d-4657-b237-095960f5c0c1",
      "name": "Send a message1",
      "type": "n8n-nodes-base.gmail",
      "position": [
        688,
        112
      ],
      "parameters": {
        "sendTo": "={{$json[\"Email Address\"]}}",
        "message": "={{ $json.htmlBody }}",
        "options": {},
        "subject": "={{ $json.subject }}"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "f1e66b06-43e4-456f-b7e8-a7afb247b752",
      "name": "Merge2",
      "type": "n8n-nodes-base.merge",
      "position": [
        240,
        112
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "246db6a2-f974-48b9-85f9-c140a4b52ddf",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -880,
        -944
      ],
      "parameters": {
        "width": 1360,
        "height": 448,
        "content": "Gracewell Automated Registration Tracker Suite"
      },
      "typeVersion": 1
    },
    {
      "id": "64153acd-c102-46be-9e71-2154dcb560d8",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -384,
        -480
      ],
      "parameters": {
        "color": 4,
        "width": 1520,
        "height": 320,
        "content": " Workflow 2: Send Acknowledgements"
      },
      "typeVersion": 1
    },
    {
      "id": "7e4346b8-b5e8-4f96-a85b-02a4bab9d1af",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -288,
        -32
      ],
      "parameters": {
        "color": 6,
        "width": 1456,
        "height": 400,
        "content": " Workflow 3: Send Reminders"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "callerPolicy": "workflowsFromSameOwner",
    "availableInMCP": false,
    "executionOrder": "v1"
  },
  "versionId": "2a09ba1d-f4f1-4e71-b700-4bfb8edd3d1e",
  "connections": {
    "Code": {
      "main": [
        [
          {
            "node": "Respond to Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge1": {
      "main": [
        [
          {
            "node": "Code - Prepare Messages",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge2": {
      "main": [
        [
          {
            "node": "Code - Prepare Messages1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook1": {
      "main": [
        [
          {
            "node": "Google Sheets",
            "type": "main",
            "index": 0
          },
          {
            "node": "Google Sheets1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets1": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Send a message": {
      "main": [
        [
          {
            "node": "Respond - Confirmation",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send a message1": {
      "main": [
        [
          {
            "node": "Respond - Confirmation1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Respond to Webhook": {
      "main": [
        []
      ]
    },
    "Code - Prepare Messages": {
      "main": [
        [
          {
            "node": "Send a message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code - Prepare Messages1": {
      "main": [
        [
          {
            "node": "Send a message1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets FormResponses": {
      "main": [
        [
          {
            "node": "Merge1",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Google Sheets - Student List": {
      "main": [
        [
          {
            "node": "Merge1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets - FormResponses": {
      "main": [
        [
          {
            "node": "Merge2",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Google Sheets - Student List1": {
      "main": [
        [
          {
            "node": "Merge2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook - send-acknowledgements": {
      "main": [
        [
          {
            "node": "Google Sheets - Student List",
            "type": "main",
            "index": 0
          },
          {
            "node": "Google Sheets FormResponses",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook - send-acknowledgements1": {
      "main": [
        [
          {
            "node": "Google Sheets - Student List1",
            "type": "main",
            "index": 0
          },
          {
            "node": "Google Sheets - FormResponses",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}