This workflow corresponds to n8n.io template #10117 — we link there as the canonical source.
This workflow follows the Gmail → Google Calendar recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "Viv8fgIQ3YahLz3q",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Event Participant Management and Automated Follow-up System",
"tags": [],
"nodes": [
{
"id": "7c944a05-dc18-4966-875e-f101544e3597",
"name": "Typeform Registration Form",
"type": "n8n-nodes-base.typeformTrigger",
"position": [
0,
0
],
"parameters": {
"formId": "<__PLACEHOLDER_VALUE__Typeform Form ID__>"
},
"typeVersion": 1.1
},
{
"id": "b4c828ad-aae3-4131-9383-165702e353e4",
"name": "Workflow Configuration",
"type": "n8n-nodes-base.set",
"position": [
224,
0
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "id-1",
"name": "eventName",
"type": "string",
"value": "<__PLACEHOLDER_VALUE__Event Name__>"
},
{
"id": "id-2",
"name": "eventDate",
"type": "string",
"value": "<__PLACEHOLDER_VALUE__Event Date (YYYY-MM-DD)__>"
},
{
"id": "id-3",
"name": "eventTime",
"type": "string",
"value": "<__PLACEHOLDER_VALUE__Event Time__>"
},
{
"id": "id-4",
"name": "eventLocation",
"type": "string",
"value": "<__PLACEHOLDER_VALUE__Event Location__>"
},
{
"id": "id-5",
"name": "participationFee",
"type": "string",
"value": "<__PLACEHOLDER_VALUE__Participation Fee Amount__>"
},
{
"id": "id-6",
"name": "reminderDaysBefore",
"type": "number",
"value": 3
},
{
"id": "id-7",
"name": "followupDaysAfter",
"type": "number",
"value": 2
},
{
"id": "id-8",
"name": "organizerSlackChannel",
"type": "string",
"value": "<__PLACEHOLDER_VALUE__Slack Channel ID__>"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "d2e4b2da-73e2-485c-82c7-1f41d6b9a4f4",
"name": "Add to Participant List",
"type": "n8n-nodes-base.googleSheets",
"position": [
448,
0
],
"parameters": {
"columns": {
"value": {
"Name": "={{ $json.name }}",
"Email": "={{ $json.email }}",
"Phone": "={{ $json.phone }}",
"Event Date": "={{ $('Workflow Configuration').first().json.eventDate }}",
"Event Name": "={{ $('Workflow Configuration').first().json.eventName }}",
"Payment Status": "Pending",
"Registration Date": "={{ $now.toISO() }}"
},
"schema": [
{
"id": "Name",
"required": false,
"displayName": "Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"required": false,
"displayName": "Email",
"defaultMatch": true,
"canBeUsedToMatch": true
},
{
"id": "Phone",
"required": false,
"displayName": "Phone",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Registration Date",
"required": false,
"displayName": "Registration Date",
"defaultMatch": false,
"canBeUsedToMatch": false
},
{
"id": "Event Name",
"required": false,
"displayName": "Event Name",
"defaultMatch": false,
"canBeUsedToMatch": false
},
{
"id": "Event Date",
"required": false,
"displayName": "Event Date",
"defaultMatch": false,
"canBeUsedToMatch": false
},
{
"id": "Payment Status",
"required": false,
"displayName": "Payment Status",
"defaultMatch": false,
"canBeUsedToMatch": false
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Email"
]
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "name",
"value": "<__PLACEHOLDER_VALUE__Sheet Name (e.g., Participants)__>"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "<__PLACEHOLDER_VALUE__Google Sheets Document ID__>"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "0847f022-be9a-4137-95cb-291f6f1608e9",
"name": "Process Payment",
"type": "n8n-nodes-base.stripe",
"position": [
672,
0
],
"parameters": {
"amount": "={{ $('Workflow Configuration').first().json.participationFee * 100 }}",
"source": "<__PLACEHOLDER_VALUE__Source ID__>",
"currency": "jpy",
"resource": "charge",
"operation": "create",
"customerId": "<__PLACEHOLDER_VALUE__Customer ID__>",
"additionalFields": {
"metadata": {
"metadataProperties": [
{
"key": "participant_email",
"value": "={{ $json.email }}"
},
{
"key": "participant_name",
"value": "={{ $json.name }}"
},
{
"key": "event_name",
"value": "={{ $('Workflow Configuration').first().json.eventName }}"
}
]
},
"description": "={{ 'Event Registration: ' + $('Workflow Configuration').first().json.eventName }}"
}
},
"typeVersion": 1
},
{
"id": "5d2c0d4e-5f4e-4659-9467-575667f47c0b",
"name": "Check Payment Status",
"type": "n8n-nodes-base.if",
"position": [
896,
0
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "id-1",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "succeeded"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "e2462463-af2a-445c-b526-efcce51b9b18",
"name": "Send Confirmation Email",
"type": "n8n-nodes-base.gmail",
"position": [
1136,
-96
],
"parameters": {
"sendTo": "={{ $('Typeform Registration Form').first().json.email }}",
"message": "=<h2>\u3054\u767b\u9332\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3059</h2><p>{{ $('Typeform Registration Form').first().json.name }} \u69d8</p><p>{{ $('Workflow Configuration').first().json.eventName }} \u3078\u306e\u3054\u767b\u9332\u304c\u5b8c\u4e86\u3057\u307e\u3057\u305f\u3002</p><p><strong>\u30a4\u30d9\u30f3\u30c8\u8a73\u7d30:</strong></p><ul><li>\u65e5\u6642: {{ $('Workflow Configuration').first().json.eventDate }} {{ $('Workflow Configuration').first().json.eventTime }}</li><li>\u5834\u6240: {{ $('Workflow Configuration').first().json.eventLocation }}</li></ul><p>\u5f53\u65e5\u304a\u4f1a\u3044\u3067\u304d\u308b\u3053\u3068\u3092\u697d\u3057\u307f\u306b\u3057\u3066\u304a\u308a\u307e\u3059\u3002</p>",
"options": {},
"subject": "={{ '\u30a4\u30d9\u30f3\u30c8\u53c2\u52a0\u78ba\u8a8d: ' + $('Workflow Configuration').first().json.eventName }}"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "e63d3572-bc39-4a7a-aa8c-2840ccc46c18",
"name": "Add to Calendar",
"type": "n8n-nodes-base.googleCalendar",
"position": [
1360,
-96
],
"parameters": {
"end": "={{ DateTime.fromISO($('Workflow Configuration').first().json.eventDate + 'T' + $('Workflow Configuration').first().json.eventTime).plus({ hours: 2 }).toISO() }}",
"start": "={{ $('Workflow Configuration').first().json.eventDate + 'T' + $('Workflow Configuration').first().json.eventTime }}",
"calendar": {
"__rl": true,
"mode": "id",
"value": "primary"
},
"additionalFields": {
"summary": "={{ $('Workflow Configuration').first().json.eventName }}",
"location": "={{ $('Workflow Configuration').first().json.eventLocation }}",
"description": "={{ 'Participant: ' + $('Typeform Registration Form').first().json.name }}"
}
},
"credentials": {
"googleCalendarOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "b5c019f2-6e53-4348-adbf-1962574e9568",
"name": "Notify Organizer",
"type": "n8n-nodes-base.slack",
"position": [
1584,
-96
],
"parameters": {
"text": "={{ '\ud83c\udf89 \u65b0\u898f\u53c2\u52a0\u8005\u767b\u9332\n\u540d\u524d: ' + $('Typeform Registration Form').first().json.name + '\n\u30e1\u30fc\u30eb: ' + $('Typeform Registration Form').first().json.email + '\n\u30a4\u30d9\u30f3\u30c8: ' + $('Workflow Configuration').first().json.eventName }}",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Workflow Configuration').first().json.organizerSlackChannel }}"
},
"otherOptions": {},
"authentication": "oAuth2"
},
"credentials": {
"slackOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 2.3
},
{
"id": "657ee013-6bca-4659-be15-1470fccb5b7f",
"name": "Daily Reminder Check",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
0,
224
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 9
}
]
}
},
"typeVersion": 1.2
},
{
"id": "f4f8d33b-3f41-42d5-99f1-3c721bb1af0d",
"name": "Get Upcoming Events",
"type": "n8n-nodes-base.googleSheets",
"position": [
224,
224
],
"parameters": {
"options": {
"returnFirstMatch": false
},
"filtersUI": {
"values": [
{
"lookupValue": "succeeded",
"lookupColumn": "Payment Status"
}
]
},
"sheetName": {
"__rl": true,
"mode": "name",
"value": "<__PLACEHOLDER_VALUE__Sheet Name (e.g., Participants)__>"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "<__PLACEHOLDER_VALUE__Google Sheets Document ID (same as registration)__>"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "86f23720-e55e-492e-87ba-3b4a961565d7",
"name": "Calculate Reminder Date",
"type": "n8n-nodes-base.dateTime",
"position": [
448,
224
],
"parameters": {
"options": {},
"duration": "={{ $('Workflow Configuration').first().json.reminderDaysBefore }}",
"magnitude": "={{ $json['Event Date'] }}",
"operation": "subtractFromDate"
},
"typeVersion": 2
},
{
"id": "feb98889-9ac8-41cb-bbb1-ef6a26eb3b76",
"name": "Check If Reminder Needed",
"type": "n8n-nodes-base.if",
"position": [
672,
224
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "id-1",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $now.toFormat('yyyy-MM-dd') }}",
"rightValue": "={{ $json.output }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "07b2d002-cb41-4228-b46f-fada104e2bf1",
"name": "Send Reminder Email",
"type": "n8n-nodes-base.gmail",
"position": [
1392,
256
],
"parameters": {
"sendTo": "={{ $json.Email }}",
"message": "=<h2>\u30a4\u30d9\u30f3\u30c8\u30ea\u30de\u30a4\u30f3\u30c0\u30fc</h2><p>{{ $json.Name }} \u69d8</p><p>{{ $json['Event Name'] }} \u306e\u958b\u50ac\u304c\u8fd1\u3065\u3044\u3066\u307e\u3044\u308a\u307e\u3057\u305f\u3002</p><p><strong>\u30a4\u30d9\u30f3\u30c8\u8a73\u7d30:</strong></p><ul><li>\u65e5\u6642: {{ $json['Event Date'] }} {{ $('Workflow Configuration').first().json.eventTime }}</li><li>\u5834\u6240: {{ $('Workflow Configuration').first().json.eventLocation }}</li></ul><p>\u304a\u5fd8\u308c\u306a\u304f\u3054\u53c2\u52a0\u304f\u3060\u3055\u3044\u3002</p>",
"options": {},
"subject": "={{ '\u30ea\u30de\u30a4\u30f3\u30c0\u30fc: ' + $json['Event Name'] + ' \u304c\u9593\u3082\u306a\u304f\u958b\u50ac\u3055\u308c\u307e\u3059' }}"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "b71cafb3-d90f-4817-a9b5-6f48bd3110da",
"name": "Daily Follow-up Check",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
0,
448
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 10
}
]
}
},
"typeVersion": 1.2
},
{
"id": "ac113bc3-20d2-455f-b042-de09ad00c333",
"name": "Get Past Events",
"type": "n8n-nodes-base.googleSheets",
"position": [
224,
448
],
"parameters": {
"options": {
"returnFirstMatch": false
},
"filtersUI": {
"values": [
{
"lookupValue": "succeeded",
"lookupColumn": "Payment Status"
},
{
"lookupColumn": "Follow-up Sent"
}
]
},
"sheetName": {
"__rl": true,
"mode": "name",
"value": "<__PLACEHOLDER_VALUE__Sheet Name (e.g., Participants)__>"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "<__PLACEHOLDER_VALUE__Google Sheets Document ID (same as registration)__>"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "238e21d8-5ef5-4f41-8c24-969b0db3f66f",
"name": "Calculate Follow-up Date",
"type": "n8n-nodes-base.dateTime",
"position": [
448,
448
],
"parameters": {
"options": {},
"duration": "={{ $('Workflow Configuration').first().json.followupDaysAfter }}",
"magnitude": "={{ $json['Event Date'] }}",
"operation": "addToDate"
},
"typeVersion": 2
},
{
"id": "ac0142fc-af2f-4e01-8090-303f02b3fca0",
"name": "Check If Follow-up Needed",
"type": "n8n-nodes-base.if",
"position": [
672,
448
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "id-1",
"operator": {
"type": "string",
"operation": "gte"
},
"leftValue": "={{ $now.toFormat('yyyy-MM-dd') }}",
"rightValue": "={{ $json.output }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "9f776c37-6551-4f18-a046-c3dc59a53fe9",
"name": "Send Thank You & Survey",
"type": "n8n-nodes-base.gmail",
"position": [
912,
624
],
"parameters": {
"sendTo": "={{ $json.Email }}",
"message": "=<h2>\u3054\u53c2\u52a0\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3057\u305f</h2><p>{{ $json.Name }} \u69d8</p><p>{{ $json['Event Name'] }} \u3078\u306e\u3054\u53c2\u52a0\u3001\u8aa0\u306b\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3057\u305f\u3002</p><p>\u4eca\u5f8c\u306e\u30a4\u30d9\u30f3\u30c8\u6539\u5584\u306e\u305f\u3081\u3001\u7c21\u5358\u306a\u30a2\u30f3\u30b1\u30fc\u30c8\u306b\u3054\u5354\u529b\u3044\u305f\u3060\u3051\u307e\u3059\u3068\u5e78\u3044\u3067\u3059\u3002</p><p><a href=\"<__PLACEHOLDER_VALUE__Survey URL__>\">\u30a2\u30f3\u30b1\u30fc\u30c8\u306b\u56de\u7b54\u3059\u308b</a></p><p>\u307e\u305f\u306e\u3054\u53c2\u52a0\u3092\u304a\u5f85\u3061\u3057\u3066\u304a\u308a\u307e\u3059\u3002</p>",
"options": {},
"subject": "={{ '\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3057\u305f: ' + $json['Event Name'] }}"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "22af0070-2118-4523-841c-533531700257",
"name": "Update Follow-up Status",
"type": "n8n-nodes-base.googleSheets",
"position": [
1120,
624
],
"parameters": {
"columns": {
"value": {
"Follow-up Date": "={{ $now.toISO() }}",
"Follow-up Sent": "Yes"
},
"schema": [
{
"id": "Email",
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Follow-up Sent",
"required": false,
"displayName": "Follow-up Sent",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Follow-up Date",
"required": false,
"displayName": "Follow-up Date",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Email"
]
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "name",
"value": "<__PLACEHOLDER_VALUE__Sheet Name (e.g., Participants)__>"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "<__PLACEHOLDER_VALUE__Google Sheets Document ID (same as registration)__>"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "42f7eaec-aa5a-4ee2-8d79-70bbbf8a73b0",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
1744,
-416
],
"parameters": {
"width": 944,
"height": 1504,
"content": "## Event Participant Management and Automated Follow-up System\n**\n### Who is this for?\n\nThis template is ideal for event organizers, community managers, and businesses that host workshops, webinars, conferences, or any event requiring participant registration and communication.\n\n### How it works\n\nThe workflow is divided into three main parts:\n\n1. **Registration and Onboarding:**\n * When a new participant registers via a Typeform, their details are immediately added to a Google Sheet.\n * Payment is processed via Stripe.\n * Upon successful payment, a confirmation email is sent to the participant, and the event is added to their Google Calendar.\n * The organizer receives a Slack notification about the new registration.\n\n2. **Event Reminders:**\n * A daily scheduled trigger checks the Google Sheet for upcoming events.\n * It calculates if an event is within the specified reminder period (e.g., 3 days before).\n * If a reminder is needed, an email is automatically sent to the participant.\n\n3. **Post-Event Follow-up:**\n * Another daily scheduled trigger checks for past events.\n * It calculates if an event is due for a follow-up (e.g., 2 days after).\n * A thank-you email, including a survey link, is sent to participants.\n * The participant's status in the Google Sheet is updated to mark the follow-up as sent.\n\n### How to set it up\n\n1. **Typeform Registration Form:** Replace `<__PLACEHOLDER_VALUE__Typeform Form ID__>` with your actual Typeform ID.\n2. **Workflow Configuration:** Fill in the placeholder values for `Event Name`, `Event Date`, `Event Time`, `Event Location`, `Participation Fee Amount`, and `Slack Channel ID`.\n3. **Google Sheets:**\n * Replace `<__PLACEHOLDER_VALUE__Google Sheets Document ID__>` and `<__PLACEHOLDER_VALUE__Sheet Name (e.g., Participants)__>` with your Google Sheet details. Ensure your sheet has columns for \"Name\", \"Email\", \"Phone\", \"Registration Date\", \"Event Name\", \"Event Date\", \"Payment Status\", \"Follow-up Sent\", and \"Follow-up Date\".\n * You will need to set up Google Sheets OAuth2 API credentials.\n4. **Stripe (Process Payment):** Replace `<__PLACEHOLDER_VALUE__Customer ID__>` and `<__PLACEHOLDER_VALUE__Source ID__>` with your Stripe customer and source IDs. You will need Stripe API credentials.\n5. **Gmail (Send Confirmation Email, Send Reminder Email, Send Thank You & Survey):** You will need to set up Gmail OAuth2 credentials.\n6. **Google Calendar (Add to Calendar):** You will need to set up Google Calendar OAuth2 API credentials.\n7. **Slack (Notify Organizer):** Replace `<__PLACEHOLDER_VALUE__Slack Channel ID__>` (if not already set in Workflow Configuration) and set up Slack OAuth2 API credentials.\n8. **Survey URL (Send Thank You & Survey):** Replace `<__PLACEHOLDER_VALUE__Survey URL__>` with the link to your post-event survey.\n\n### Requirements\n\n* Typeform account and a registration form.\n* Google Sheet for participant management.\n* Stripe account for payment processing.\n* Gmail account for sending emails.\n* Google Calendar for event scheduling.\n* Slack account for organizer notifications.\n* n8n credentials for Google Sheets, Stripe, Gmail, Google Calendar, and Slack.\n\n### How to customize the workflow\n\n* **Reminder/Follow-up Timing:** Adjust the `reminderDaysBefore` and `followupDaysAfter` values in the \"Workflow Configuration\" node to change when reminder and follow-up emails are sent.\n* **Email Content:** Modify the HTML content in the \"Send Confirmation Email\", \"Send Reminder Email\", and \"Send Thank You & Survey\" nodes to match your branding and messaging.\n* **Payment Currency:** Change the `currency` in the \"Process Payment\" node if your event uses a different currency.\n* **Additional Data:** Extend the Google Sheets nodes to capture more participant information from Typeform if needed.\n* **Integration:** Easily integrate with other services by adding more nodes, for example, a CRM to add new participants as leads.\n`"
},
"typeVersion": 1
},
{
"id": "63c03b4f-0fd4-44e7-b220-f38b1edd266f",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-80,
-192
],
"parameters": {
"color": 3,
"width": 640,
"height": 784,
"content": "## Registration and Onboarding\n \u3000* When a new participant registers via a Typeform, their details are immediately added to a Google Sheet.\n * Payment is processed via Stripe.\n * Upon successful payment, a confirmation email is sent to the participant, and the event is added to their Google Calendar.\n * The organizer receives a Slack notification about the new registration."
},
"typeVersion": 1
},
{
"id": "a6e75768-514e-498a-9f45-2ea5f9bfdede",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
864,
432
],
"parameters": {
"color": 4,
"width": 448,
"height": 368,
"content": "## Post-Event Follow-up \n \u3000* Another daily scheduled trigger checks for past events.\n * It calculates if an event is due for a follow-up (e.g., 2 days after).\n * A thank-you email, including a survey link, is sent to participants.\n * The participant's status in the Google Sheet is updated to mark the follow-up as sent.\n"
},
"typeVersion": 1
},
{
"id": "4f61bb8e-5bff-4dbd-abbc-0b5ef624bc6f",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1312,
64
],
"parameters": {
"color": 6,
"width": 368,
"height": 336,
"content": "## Event Reminders \n** * A daily scheduled trigger checks the Google Sheet for upcoming events.\n * It calculates if an event is within the specified reminder period (e.g., 3 days before).\n * If a reminder is needed, an email is automatically sent to the participant."
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "04d493c7-e7fb-4308-a629-c24c028753d6",
"connections": {
"Add to Calendar": {
"main": [
[
{
"node": "Notify Organizer",
"type": "main",
"index": 0
}
]
]
},
"Get Past Events": {
"main": [
[
{
"node": "Calculate Follow-up Date",
"type": "main",
"index": 0
}
]
]
},
"Process Payment": {
"main": [
[
{
"node": "Check Payment Status",
"type": "main",
"index": 0
}
]
]
},
"Get Upcoming Events": {
"main": [
[
{
"node": "Calculate Reminder Date",
"type": "main",
"index": 0
}
]
]
},
"Check Payment Status": {
"main": [
[
{
"node": "Send Confirmation Email",
"type": "main",
"index": 0
}
]
]
},
"Daily Reminder Check": {
"main": [
[
{
"node": "Get Upcoming Events",
"type": "main",
"index": 0
}
]
]
},
"Daily Follow-up Check": {
"main": [
[
{
"node": "Get Past Events",
"type": "main",
"index": 0
}
]
]
},
"Workflow Configuration": {
"main": [
[
{
"node": "Add to Participant List",
"type": "main",
"index": 0
}
]
]
},
"Add to Participant List": {
"main": [
[
{
"node": "Process Payment",
"type": "main",
"index": 0
}
]
]
},
"Calculate Reminder Date": {
"main": [
[
{
"node": "Check If Reminder Needed",
"type": "main",
"index": 0
}
]
]
},
"Send Confirmation Email": {
"main": [
[
{
"node": "Add to Calendar",
"type": "main",
"index": 0
}
]
]
},
"Send Thank You & Survey": {
"main": [
[
{
"node": "Update Follow-up Status",
"type": "main",
"index": 0
}
]
]
},
"Calculate Follow-up Date": {
"main": [
[
{
"node": "Check If Follow-up Needed",
"type": "main",
"index": 0
}
]
]
},
"Check If Reminder Needed": {
"main": [
[
{
"node": "Send Reminder Email",
"type": "main",
"index": 0
}
]
]
},
"Check If Follow-up Needed": {
"main": [
[
{
"node": "Send Thank You & Survey",
"type": "main",
"index": 0
}
]
]
},
"Typeform Registration Form": {
"main": [
[
{
"node": "Workflow Configuration",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
gmailOAuth2googleCalendarOAuth2ApigoogleSheetsOAuth2ApislackOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow automates the entire process of managing event participants, from registration and payment to sending reminders and follow-up communications. It's designed for event organizers who want to streamline their operations and ensure a smooth experience for attendees.
Source: https://n8n.io/workflows/10117/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Sync your Google Calendar events with Google Sheets and get daily Slack summaries with meeting statistics. FEATURES:
This n8n workflow transforms your HR department from reactive to proactive by automatically monitoring 5 critical employee timelines and generating smart alerts before deadlines hit. Data Input → Empl
Googlecalendar Googlesheets. Uses typeformTrigger, googleSheets, mattermost, googleCalendar. Event-driven trigger; 10 nodes.
n8nConf Companion workflow for blog post
How it works Receives form submissions via a webhook endpoint. Extracts the name, email, and message from each submission. Logs every submission to a Google Sheets spreadsheet with a timestamp. Sends