This workflow corresponds to n8n.io template #10028 — we link there as the canonical source.
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 →
{
"meta": {
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "09783caf-858a-4646-b9b8-07f80cbff88c",
"name": "Trigger every 15min",
"type": "n8n-nodes-base.scheduleTrigger",
"notes": "This node triggers the flow in the defined frequency.",
"position": [
0,
48
],
"parameters": {
"rule": {
"interval": [
{
"field": "minutes",
"minutesInterval": 15
}
]
}
},
"notesInFlow": true,
"typeVersion": 1.2
},
{
"id": "2bb16bdb-81b3-4684-8d04-2712981e574d",
"name": "Tag contact for non attendance",
"type": "n8n-nodes-klicktipp.klicktipp",
"notes": "This node tags the contact for their non attendance at the event.",
"position": [
896,
144
],
"parameters": {
"email": "={{ $json.profile.email }}",
"tagId": [
"13634786"
],
"resource": "contact-tagging"
},
"credentials": {
"klickTippApi": {
"name": "<your credential>"
}
},
"notesInFlow": true,
"typeVersion": 3
},
{
"id": "9797cf9d-ed61-4149-b631-86028ba69a7c",
"name": "Attendance check",
"type": "n8n-nodes-base.switch",
"notes": "This node checks whether the attendees were checked in at the event.",
"position": [
672,
48
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "Attended",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "6e93ced0-873c-419b-8713-c2867558504c",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $json.checked_in }}",
"rightValue": ""
}
]
},
"renameOutput": true
},
{
"outputKey": "Not attended",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "37e2e24d-1164-4491-92a3-c2cc141bad8a",
"operator": {
"type": "boolean",
"operation": "false",
"singleValue": true
},
"leftValue": "={{ $json.checked_in }}",
"rightValue": ""
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"notesInFlow": true,
"typeVersion": 3.3
},
{
"id": "b2803e6a-9d84-4dd7-9501-1e3782356e0f",
"name": "Split attendee list",
"type": "n8n-nodes-base.splitOut",
"notes": "This node splits the list of attendees.",
"position": [
448,
48
],
"parameters": {
"options": {},
"fieldToSplitOut": "attendees"
},
"notesInFlow": true,
"typeVersion": 1
},
{
"id": "f72d8f16-ede2-47fa-8deb-8296a9c13ba9",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-96,
-128
],
"parameters": {
"color": 7,
"width": 672,
"height": 480,
"content": "## 1. Data reception & structuring"
},
"typeVersion": 1
},
{
"id": "7796cad2-37a8-45e4-bbf7-b456b769bc42",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
592,
-128
],
"parameters": {
"color": 7,
"width": 496,
"height": 480,
"content": "## 2. Analyzing & saving data"
},
"typeVersion": 1
},
{
"id": "2de024d4-43c1-4d84-a7ba-6fd5bd25cf8b",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
96,
368
],
"parameters": {
"width": 752,
"height": 1120,
"content": "## Who\u2019s it for\nDesigned for **event organizers**, **digital marketers**, and **KlickTipp users** who already sync their Eventbrite registrants to KlickTipp and now want to automatically track and segment event attendance.\n\n> \ud83d\udca1 **Prerequisite:** Contacts must already exist in KlickTipp. \n> Use the related workflow **\u201cSubscribe Eventbrite orders to KlickTipp\u201d** to import registrants before running this attendance workflow.\n\n## Requirements\n- Eventbrite account with OAuth2 credentials \n- KlickTipp account with API access (username/password) \n- Tags configured in KlickTipp:\n - `Eventbrite | Participated` \n - `Eventbrite | Not participated`\n\n## How to set up\n1. **Authenticate connections**\n - Connect **Eventbrite** via OAuth2 (scopes for attendee read access). \n - Connect **KlickTipp** via username/password API credentials. \n2. **Configure the Event ID**\n - Update the Eventbrite HTTP Request node URL by pasting your according event id `/events/{event_id}/attendees/`. \n3. **Adjust KlickTipp Tag IDs**\n - Map tag IDs in both tagging nodes to your KlickTipp setup. \n4. **Run a test**\n - Execute manually or wait for the schedule trigger. \n - Confirm attendees are correctly tagged in KlickTipp based on `checked_in` status. \n\n> \u26a0\ufe0f *Important:* Eventbrite must record attendee check-ins via the **Eventbrite Organizer App** or barcode scanning for this workflow to assign accurate tags.\n\n## How to customize\n- Change the **schedule frequency** (e.g., every 5 minutes during the event, hourly after). \n- Duplicate and adjust the workflow to handle **multiple events** with different Event IDs. \n- Extend the logic to tag attendees by **ticket class**, **VIP level**, or **refunded status**. \n- Combine with the **Eventbrite order/refund sync workflow** for a full participant funnel: \n `Registration \u2192 Participation \u2192 Refund`.\n\n## Campaign expansion ideas\n- **Refund tagging:** Add a branch that detects the `refunded` property in Eventbrite and applies a refund tag in KlickTipp. \n- **Post-event automation:** \n - `Participated` \u2192 Trigger thank-you or upsell campaigns. \n - `Not participated` \u2192 Send replay links or follow-up invitations. \n- **Performance insights:** Use tagged data in KlickTipp for segmentation analytics, follow-up scoring, and event ROI tracking.\n"
},
"typeVersion": 1
},
{
"id": "443c1882-f4c5-4d3c-a90f-01d90ec91fe1",
"name": "List Evenbrite attendees from event",
"type": "n8n-nodes-base.httpRequest",
"notes": "This node gets all attendees of the defined event.",
"position": [
224,
48
],
"parameters": {
"url": "https://www.eventbriteapi.com/v3/events/1763953796289/attendees/",
"options": {},
"authentication": "predefinedCredentialType",
"nodeCredentialType": "eventbriteOAuth2Api"
},
"credentials": {
"eventbriteOAuth2Api": {
"name": "<your credential>"
}
},
"notesInFlow": true,
"typeVersion": 4.2
},
{
"id": "67daa503-00b5-45fe-bf6e-1f8a81b103e9",
"name": "Tag contact for attendance",
"type": "n8n-nodes-klicktipp.klicktipp",
"notes": "This node tags the contact for their attendance at the event.",
"position": [
896,
-48
],
"parameters": {
"email": "={{ $json.profile.email }}",
"tagId": [
"13634770"
],
"resource": "contact-tagging"
},
"credentials": {
"klickTippApi": {
"name": "<your credential>"
}
},
"notesInFlow": true,
"typeVersion": 3
},
{
"id": "2594bb60-48e1-4bea-a631-0e5572ab612e",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-96,
-320
],
"parameters": {
"width": 400,
"height": 176,
"content": "## 1. Data Reception\nTriggered every **15 min** to fetch the latest Eventbrite attendees. \nKeeps your participant data synced automatically. \n\ud83d\udca1 Adjust timing for real-time or daily sync.\n"
},
"typeVersion": 1
},
{
"id": "b9e938b9-400b-4be3-923a-9f0d98766825",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
688,
-320
],
"parameters": {
"width": 400,
"height": 176,
"content": "## 2. Analyze & Tag\nChecks who **attended vs. missed** the event using `checked_in`. \nTags participants in KlickTipp for instant segmentation.\n"
},
"typeVersion": 1
}
],
"connections": {
"Attendance check": {
"main": [
[
{
"node": "Tag contact for attendance",
"type": "main",
"index": 0
}
],
[
{
"node": "Tag contact for non attendance",
"type": "main",
"index": 0
}
]
]
},
"Split attendee list": {
"main": [
[
{
"node": "Attendance check",
"type": "main",
"index": 0
}
]
]
},
"Trigger every 15min": {
"main": [
[
{
"node": "List Evenbrite attendees from event",
"type": "main",
"index": 0
}
]
]
},
"List Evenbrite attendees from event": {
"main": [
[
{
"node": "Split attendee list",
"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.
eventbriteOAuth2ApiklickTippApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
> ⚠️ Community Node Disclaimer > This workflow uses KlickTipp community nodes and works only on self-hosted n8n instances.
Source: https://n8n.io/workflows/10028/ — 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.
This workflow uses KlickTipp community nodes, available for self-hosted n8n instances only.
Community Node Disclaimer: This workflow uses KlickTipp community nodes.
As n8n instances scale, teams often lose track of sub-workflows—who uses them, where they are referenced, and whether they can be safely updated. This leads to inefficiencies like unnecessary copies o
This workflow is an improvement of this workflow by Greg Brzezinka.
N8N-Workflow-Github-Manager. Uses github, httpRequest, n8n. Scheduled trigger; 38 nodes.