AutomationFlowsData & Sheets › Auto Reminder

Auto Reminder

Auto-Reminder. Uses supabase. Scheduled trigger; 28 nodes.

Cron / scheduled trigger★★★★☆ complexity28 nodesSupabase
Data & Sheets Trigger: Cron / scheduled Nodes: 28 Complexity: ★★★★☆ Added:

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "nodes": [
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "minutes",
              "minutesInterval": 15
            }
          ]
        }
      },
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [
        -1840,
        112
      ],
      "id": "d0b9d934-1dc9-4749-b936-eef9fb04343d",
      "name": "Schedule Trigger"
    },
    {
      "parameters": {
        "operation": "getTimeBetweenDates",
        "startDate": "={{ new Date() }}",
        "endDate": "={{ new Date($('getAppointments').item.json.startTime) }}",
        "units": [
          "day",
          "hour"
        ],
        "outputFieldName": "startTimeDifference",
        "options": {}
      },
      "type": "n8n-nodes-base.dateTime",
      "typeVersion": 2,
      "position": [
        -1440,
        112
      ],
      "id": "44c2eeb7-7834-4aef-b4cd-6f7d20f8677e",
      "name": "Day difference"
    },
    {
      "parameters": {
        "operation": "getTimeBetweenDates",
        "startDate": "={{ $('getAppointments').item.json.createdAt }}",
        "endDate": "={{ $('getAppointments').item.json.startTime }}",
        "units": [
          "day",
          "hour"
        ],
        "outputFieldName": "createdAtDifference",
        "options": {}
      },
      "type": "n8n-nodes-base.dateTime",
      "typeVersion": 2,
      "position": [
        -1232,
        112
      ],
      "id": "dab8852e-2193-48a7-be9a-f8d455ca788f",
      "name": "CreatedAtDifference"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "1131a930-bd8b-49d0-b3c4-fd7ac338537b",
              "leftValue": "={{ $json.createdAtDifference.days }}",
              "rightValue": 7,
              "operator": {
                "type": "number",
                "operation": "gte"
              }
            },
            {
              "id": "8053a6c1-e79c-47e5-8096-89cb96576119",
              "leftValue": "={{ $('Day difference').item.json.startTimeDifference.days }}",
              "rightValue": 7,
              "operator": {
                "type": "number",
                "operation": "lte"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        -1008,
        0
      ],
      "id": "17649072-0448-4a97-a38b-41d1ab4fd1fc",
      "name": "Week Difference"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "1131a930-bd8b-49d0-b3c4-fd7ac338537b",
              "leftValue": "={{ $json.createdAtDifference.days }}",
              "rightValue": 1,
              "operator": {
                "type": "number",
                "operation": "gt"
              }
            },
            {
              "id": "751ba8e7-b592-4d65-835c-eea61db37061",
              "leftValue": "={{ $('Day difference').item.json.startTimeDifference.days }}",
              "rightValue": 1,
              "operator": {
                "type": "number",
                "operation": "lt"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        -832,
        144
      ],
      "id": "90b304be-acdf-44d5-8482-50c5819ea694",
      "name": "Day Difference"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "1131a930-bd8b-49d0-b3c4-fd7ac338537b",
              "leftValue": "={{ $json.createdAtDifference.hours }}",
              "rightValue": 1,
              "operator": {
                "type": "number",
                "operation": "gt"
              }
            },
            {
              "id": "615b66e3-b939-417a-9c32-34a7e0a10464",
              "leftValue": "={{ $('Day difference').item.json.startTimeDifference.hours }}",
              "rightValue": 1,
              "operator": {
                "type": "number",
                "operation": "lt"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        -512,
        432
      ],
      "id": "d4664016-caa6-4d74-9940-531ccaa312cb",
      "name": "Hour Difference"
    },
    {
      "parameters": {
        "operation": "getAll",
        "tableId": "Appointment",
        "returnAll": true,
        "matchType": "allFilters",
        "filters": {
          "conditions": [
            {
              "keyName": "startTime",
              "condition": "gt",
              "keyValue": "={{ (new Date).toISOString() }}"
            }
          ]
        }
      },
      "type": "n8n-nodes-base.supabase",
      "typeVersion": 1,
      "position": [
        -1632,
        112
      ],
      "id": "db9bc129-8c8b-4007-a26c-f369122ff235",
      "name": "getAppointments",
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "1131a930-bd8b-49d0-b3c4-fd7ac338537b",
              "leftValue": "={{ $json.createdAtDifference.hours }}",
              "rightValue": 6,
              "operator": {
                "type": "number",
                "operation": "gt"
              }
            },
            {
              "id": "615b66e3-b939-417a-9c32-34a7e0a10464",
              "leftValue": "={{ $('Day difference').item.json.startTimeDifference.hours }}",
              "rightValue": 6,
              "operator": {
                "type": "number",
                "operation": "lt"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        -672,
        288
      ],
      "id": "215c79e9-2602-4716-ba0e-6cc82ea98dcb",
      "name": "6 Hour Difference"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "e64047da-7612-42a7-b69a-18978662c522",
              "leftValue": "={{ $json.createdAt }}",
              "rightValue": "",
              "operator": {
                "type": "dateTime",
                "operation": "exists",
                "singleValue": true
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        -64,
        128
      ],
      "id": "8f04e7b3-6f99-407b-9db8-8699e039e184",
      "name": "If1"
    },
    {
      "parameters": {
        "operation": "getAll",
        "tableId": "Notification",
        "returnAll": true,
        "matchType": "allFilters",
        "filters": {
          "conditions": [
            {
              "keyName": "type",
              "condition": "eq",
              "keyValue": "AppointmentReminder"
            },
            {
              "keyName": "data",
              "condition": "fullText",
              "searchFunction": "fts",
              "keyValue": "={{ $('getAppointments').item.json.id }}"
            },
            {
              "keyName": "data",
              "condition": "fullText",
              "searchFunction": "fts",
              "keyValue": "ONE_DAY"
            }
          ]
        }
      },
      "type": "n8n-nodes-base.supabase",
      "typeVersion": 1,
      "position": [
        -272,
        128
      ],
      "id": "99e7d6e1-9ada-40c7-a23f-19ee5330c929",
      "name": "checkOneDayNotification",
      "alwaysOutputData": true,
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "tableId": "Notification",
        "fieldsUi": {
          "fieldValues": [
            {
              "fieldId": "type",
              "fieldValue": "AppointmentReminder"
            },
            {
              "fieldId": "userId",
              "fieldValue": "={{ $('getAppointments').item.json.studentId }}"
            },
            {
              "fieldId": "data",
              "fieldValue": "={{ {\n  appointmentId: $('getAppointments').item.json.id,\n  data: $json.type\n} }}"
            },
            {
              "fieldId": "createdAt",
              "fieldValue": "={{ $now }}"
            },
            {
              "fieldId": "updatedAt",
              "fieldValue": "={{ $now }}"
            }
          ]
        }
      },
      "type": "n8n-nodes-base.supabase",
      "typeVersion": 1,
      "position": [
        528,
        144
      ],
      "id": "cbc9552c-74ce-4945-8464-fcf90fb9c32b",
      "name": "Create Notification for Student",
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "tableId": "Notification",
        "fieldsUi": {
          "fieldValues": [
            {
              "fieldId": "type",
              "fieldValue": "AppointmentReminder"
            },
            {
              "fieldId": "userId",
              "fieldValue": "={{ $('getAppointments').item.json.counselorId }}"
            },
            {
              "fieldId": "data",
              "fieldValue": "={{ {\n  appointmentId: $('getAppointments').item.json.id,\n  data: $json.type\n} }}"
            },
            {
              "fieldId": "createdAt",
              "fieldValue": "={{ $now }}"
            },
            {
              "fieldId": "updatedAt",
              "fieldValue": "={{ $now }}"
            }
          ]
        }
      },
      "type": "n8n-nodes-base.supabase",
      "typeVersion": 1,
      "position": [
        768,
        144
      ],
      "id": "b6ad0d41-df16-42c3-a0a0-7372bd23d5de",
      "name": "Create Notification for Counselor",
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "e64047da-7612-42a7-b69a-18978662c522",
              "leftValue": "={{ $json.createdAt }}",
              "rightValue": "",
              "operator": {
                "type": "dateTime",
                "operation": "exists",
                "singleValue": true
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        -64,
        -16
      ],
      "id": "339b26c7-f8e3-492e-8c8a-ef3858949eaa",
      "name": "If"
    },
    {
      "parameters": {
        "operation": "getAll",
        "tableId": "Notification",
        "returnAll": true,
        "matchType": "allFilters",
        "filters": {
          "conditions": [
            {
              "keyName": "type",
              "condition": "eq",
              "keyValue": "AppointmentReminder"
            },
            {
              "keyName": "data",
              "condition": "fullText",
              "searchFunction": "fts",
              "keyValue": "={{ $('getAppointments').item.json.id }}"
            },
            {
              "keyName": "data",
              "condition": "fullText",
              "searchFunction": "fts",
              "keyValue": "ONE_WEEK"
            }
          ]
        }
      },
      "type": "n8n-nodes-base.supabase",
      "typeVersion": 1,
      "position": [
        -272,
        -16
      ],
      "id": "8f8f4e0f-1ce0-44cc-9b7b-504aaf0af6d7",
      "name": "checkOneWeekNotification",
      "alwaysOutputData": true,
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "e64047da-7612-42a7-b69a-18978662c522",
              "leftValue": "={{ $json.createdAt }}",
              "rightValue": "",
              "operator": {
                "type": "dateTime",
                "operation": "exists",
                "singleValue": true
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        -64,
        272
      ],
      "id": "16412710-71cf-4965-bb30-362c76074951",
      "name": "If2"
    },
    {
      "parameters": {
        "operation": "getAll",
        "tableId": "Notification",
        "returnAll": true,
        "matchType": "allFilters",
        "filters": {
          "conditions": [
            {
              "keyName": "type",
              "condition": "eq",
              "keyValue": "AppointmentReminder"
            },
            {
              "keyName": "data",
              "condition": "fullText",
              "searchFunction": "fts",
              "keyValue": "={{ $('getAppointments').item.json.id }}"
            },
            {
              "keyName": "data",
              "condition": "fullText",
              "searchFunction": "fts",
              "keyValue": "SIX_HOUR"
            }
          ]
        }
      },
      "type": "n8n-nodes-base.supabase",
      "typeVersion": 1,
      "position": [
        -272,
        272
      ],
      "id": "cf44a26f-d9f4-4330-8daf-22ed12413a18",
      "name": "checkSixHourNotification",
      "alwaysOutputData": true,
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "e64047da-7612-42a7-b69a-18978662c522",
              "leftValue": "={{ $json.createdAt }}",
              "rightValue": "",
              "operator": {
                "type": "dateTime",
                "operation": "exists",
                "singleValue": true
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        -64,
        416
      ],
      "id": "3afe0f16-52c1-42d8-9454-217549695c93",
      "name": "If3"
    },
    {
      "parameters": {
        "operation": "getAll",
        "tableId": "Notification",
        "returnAll": true,
        "matchType": "allFilters",
        "filters": {
          "conditions": [
            {
              "keyName": "type",
              "condition": "eq",
              "keyValue": "AppointmentReminder"
            },
            {
              "keyName": "data",
              "condition": "fullText",
              "searchFunction": "fts",
              "keyValue": "={{ $('getAppointments').item.json.id }}"
            },
            {
              "keyName": "data",
              "condition": "fullText",
              "searchFunction": "fts",
              "keyValue": "ONE_HOUR"
            }
          ]
        }
      },
      "type": "n8n-nodes-base.supabase",
      "typeVersion": 1,
      "position": [
        -272,
        416
      ],
      "id": "99dc14f8-4a4f-4ccd-9cb4-02115f21ed1e",
      "name": "checkOneHourNotification1",
      "alwaysOutputData": true,
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "9846c72e-0650-4479-b59a-ca1be2c06ede",
              "name": "type",
              "value": "AppointmentReminder",
              "type": "string"
            },
            {
              "id": "511fb8d5-79c7-47c8-9fa5-ec5a52469410",
              "name": "url",
              "value": "https://safehub-lcup.uk",
              "type": "string"
            },
            {
              "id": "e035a1ec-b357-46b9-a8f2-e28d69f27237",
              "name": "title",
              "value": "Appointment Reminder",
              "type": "string"
            },
            {
              "id": "6b55116c-1ddc-4da2-b8d8-6aae38817277",
              "name": "schedDate",
              "value": "={{ $('Date Formatter').item.json.formattedDate }}",
              "type": "string"
            },
            {
              "id": "1ae02b02-cec2-4693-b8fb-2f4036fd0471",
              "name": "schedTime",
              "value": "={{ $('Time Formatter').item.json.formattedTime }}",
              "type": "string"
            },
            {
              "id": "a34d40cc-540f-4c5b-a11f-67a582dc5374",
              "name": "studentEmail",
              "value": "={{ $('Get Student').item.json.email }}",
              "type": "string"
            },
            {
              "id": "eb8ba957-5fb9-4665-8c32-dff78f6eb52d",
              "name": "counselorEmail",
              "value": "={{ $json.email }}",
              "type": "string"
            },
            {
              "id": "63ed3e98-90da-4b83-a6d8-02f79c6f13cd",
              "name": "studentName",
              "value": "={{ $('Get Student').item.json.name }}",
              "type": "string"
            },
            {
              "id": "2e426c8d-633c-4bab-9d2f-02c6ef302d82",
              "name": "counselorName",
              "value": "={{ $json.name }}",
              "type": "string"
            },
            {
              "id": "e76f62fe-2989-4c47-9acd-2cc7e593e077",
              "name": "mode",
              "value": "={{ $('getAppointments').item.json.sessionPreference }}",
              "type": "string"
            },
            {
              "id": "43dfba8e-c61c-41aa-8d07-cdc6713c61ab",
              "name": "remainingDate",
              "value": "={{ $('OneWeek').isExecuted ? \"1 Week\" : \n   $('OneDay').isExecuted ? \"1 Day\" :\n   $('SixHours').isExecuted ? \"6 Hours\" :\n   \"1 Hour\"\n}}",
              "type": "string"
            },
            {
              "id": "7be86469-60cc-4b5c-a883-91f7621f4ac2",
              "name": "status",
              "value": "={{ $('getAppointments').item.json.status }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        1872,
        144
      ],
      "id": "00e9dd9b-6af5-436f-b8a0-003b3e838c94",
      "name": "Edit Fields4"
    },
    {
      "parameters": {
        "operation": "formatDate",
        "date": "={{ new Date(\n    new Date($('getAppointments').item.json.startTime).toLocaleString(\"en-US\", { timeZone: \"Asia/Manila\" })\n  ).toISOString() }}",
        "format": "MMMM dd yyyy",
        "options": {}
      },
      "type": "n8n-nodes-base.dateTime",
      "typeVersion": 2,
      "position": [
        976,
        144
      ],
      "id": "73d65468-2a1e-4b99-a781-d38d2ae6d02e",
      "name": "Date Formatter"
    },
    {
      "parameters": {
        "operation": "formatDate",
        "date": "={{ new Date(\n    new Date($('getAppointments').item.json.startTime).toLocaleString(\"en-US\", { timeZone: \"Asia/Manila\" })\n  ).toISOString() }}",
        "format": "custom",
        "customFormat": "hh:ss a",
        "outputFieldName": "formattedTime",
        "options": {}
      },
      "type": "n8n-nodes-base.dateTime",
      "typeVersion": 2,
      "position": [
        1200,
        144
      ],
      "id": "7078e8e1-fe96-4951-a6cf-a825fdd5fc25",
      "name": "Time Formatter"
    },
    {
      "parameters": {
        "operation": "get",
        "tableId": "User",
        "filters": {
          "conditions": [
            {
              "keyName": "id",
              "keyValue": "={{ $('getAppointments').item.json.studentId }}"
            }
          ]
        }
      },
      "type": "n8n-nodes-base.supabase",
      "typeVersion": 1,
      "position": [
        1408,
        144
      ],
      "id": "4eb3432d-2c4a-4084-9b19-8fd36d58edf8",
      "name": "Get Student",
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "get",
        "tableId": "User",
        "filters": {
          "conditions": [
            {
              "keyName": "id",
              "keyValue": "={{ $('getAppointments').item.json.counselorId }}"
            }
          ]
        }
      },
      "type": "n8n-nodes-base.supabase",
      "typeVersion": 1,
      "position": [
        1632,
        144
      ],
      "id": "5dd25647-9291-49f7-99db-bd5e3dd0bbe0",
      "name": "Get Counselor",
      "credentials": {
        "supabaseApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "workflowId": {
          "__rl": true,
          "value": "Bq52zGmY2I0fqXle",
          "mode": "list",
          "cachedResultUrl": "/workflow/Bq52zGmY2I0fqXle",
          "cachedResultName": "Safehub Email Sender"
        },
        "workflowInputs": {
          "mappingMode": "defineBelow",
          "value": {},
          "matchingColumns": [],
          "schema": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": true
        },
        "mode": "each",
        "options": {}
      },
      "type": "n8n-nodes-base.executeWorkflow",
      "typeVersion": 1.3,
      "position": [
        2096,
        144
      ],
      "id": "d65be159-07cc-4b1c-b10a-ff3f6179456d",
      "name": "Call 'Safehub Email Sender'"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "35e4831a-70cf-400d-a020-b1b4d972524d",
              "name": "type",
              "value": "ONE_WEEK",
              "type": "string"
            },
            {
              "id": "64e5f058-f453-453c-a072-ffa6ed04328a",
              "name": "remainingDate",
              "value": "One Week",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        160,
        -16
      ],
      "id": "14e022dd-cafd-4e49-bc20-825a45afb060",
      "name": "OneWeek"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "35e4831a-70cf-400d-a020-b1b4d972524d",
              "name": "type",
              "value": "ONE_DAY",
              "type": "string"
            },
            {
              "id": "8ddea882-1394-447d-8571-9c3c4c26798d",
              "name": "remainingDate",
              "value": "One Day",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        160,
        128
      ],
      "id": "0ed876b2-c6c7-47ea-bff6-c32876f9f73b",
      "name": "OneDay"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "35e4831a-70cf-400d-a020-b1b4d972524d",
              "name": "type",
              "value": "SIX_HOUR",
              "type": "string"
            },
            {
              "id": "b66c645a-1e1a-4f76-9cc1-1fae8cc20f48",
              "name": "remainingDate",
              "value": "Six Hours",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        160,
        272
      ],
      "id": "e1053f27-264e-412a-813f-a406da0a4ffc",
      "name": "SixHours"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "35e4831a-70cf-400d-a020-b1b4d972524d",
              "name": "type",
              "value": "ONE_HOUR",
              "type": "string"
            },
            {
              "id": "c4b55ae7-385a-4db5-9125-6bb18dff1155",
              "name": "remainingDate",
              "value": "One Hour",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        160,
        416
      ],
      "id": "58207374-682a-4a0a-b9e6-2f33fb20a2f4",
      "name": "OneHour"
    }
  ],
  "connections": {
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "getAppointments",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Day difference": {
      "main": [
        [
          {
            "node": "CreatedAtDifference",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "CreatedAtDifference": {
      "main": [
        [
          {
            "node": "Week Difference",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Week Difference": {
      "main": [
        [
          {
            "node": "checkOneWeekNotification",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Day Difference",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Day Difference": {
      "main": [
        [
          {
            "node": "checkOneDayNotification",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "6 Hour Difference",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Hour Difference": {
      "main": [
        [
          {
            "node": "checkOneHourNotification1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "getAppointments": {
      "main": [
        [
          {
            "node": "Day difference",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6 Hour Difference": {
      "main": [
        [
          {
            "node": "checkSixHourNotification",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Hour Difference",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If1": {
      "main": [
        [],
        [
          {
            "node": "OneDay",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "checkOneDayNotification": {
      "main": [
        [
          {
            "node": "If1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Notification for Student": {
      "main": [
        [
          {
            "node": "Create Notification for Counselor",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Notification for Counselor": {
      "main": [
        [
          {
            "node": "Date Formatter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If": {
      "main": [
        [],
        [
          {
            "node": "OneWeek",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "checkOneWeekNotification": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If2": {
      "main": [
        [],
        [
          {
            "node": "SixHours",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "checkSixHourNotification": {
      "main": [
        [
          {
            "node": "If2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If3": {
      "main": [
        [],
        [
          {
            "node": "OneHour",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "checkOneHourNotification1": {
      "main": [
        [
          {
            "node": "If3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields4": {
      "main": [
        [
          {
            "node": "Call 'Safehub Email Sender'",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Date Formatter": {
      "main": [
        [
          {
            "node": "Time Formatter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Time Formatter": {
      "main": [
        [
          {
            "node": "Get Student",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Student": {
      "main": [
        [
          {
            "node": "Get Counselor",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Counselor": {
      "main": [
        [
          {
            "node": "Edit Fields4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OneWeek": {
      "main": [
        [
          {
            "node": "Create Notification for Student",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OneDay": {
      "main": [
        [
          {
            "node": "Create Notification for Student",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "SixHours": {
      "main": [
        [
          {
            "node": "Create Notification for Student",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OneHour": {
      "main": [
        [
          {
            "node": "Create Notification for Student",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "meta": {
    "templateCredsSetupCompleted": true
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Auto-Reminder. Uses supabase. Scheduled trigger; 28 nodes.

Source: https://github.com/AetherKnowledge/Safehub/blob/82503122a984ea8eecd1670aa0b20bab099446c1/n8n-workflows/auto-reminder.json — original creator credit. Request a take-down →

More Data & Sheets workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Data & Sheets

This workflow ingests job postings from Greenhouse/Lever/Ashby job boards, Adzuna, and RemoteOK into a Supabase jobs pool, then daily uses Anthropic Claude to score a short list against a single candi

HTTP Request, Supabase, Resend +1
Data & Sheets

This workflow solves a common problem with RSS feeds: they often only provide a short summary or snippet of the full article. This template automatically monitors a list of your favorite blog RSS feed

HTTP Request, RSS Feed Read, Supabase
Data & Sheets

This workflow is a multi-system document synchronization pipeline built in n8n, designed to automatically sync and back up files between Microsoft SharePoint, Supabase/Postgres, and Google Drive.

HTTP Request, Supabase, Postgres +1
Data & Sheets

03 - Recordatorio 4h (CON VERIFICACIÓN) ✅. Uses supabase, httpRequest, twilio. Scheduled trigger; 17 nodes.

Supabase, HTTP Request, Twilio
Data & Sheets

02 - Recordatorio 24h antes (CON VERIFICACIÓN) ✅. Uses supabase, httpRequest, twilio. Scheduled trigger; 17 nodes.

Supabase, HTTP Request, Twilio