N
n8n Store
Workflow Market
Sync Event Attendees from Eventbrite to Pipedrive Automatically

Sync Event Attendees from Eventbrite to Pipedrive Automatically

by rbreen0 views

Description

Categories

⚙️ Automation

Nodes Used

n8n-nodes-base.coden8n-nodes-base.mergen8n-nodes-base.pipedriven8n-nodes-base.pipedriven8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.manualTriggern8n-nodes-base.scheduleTrigger
PriceKostenlos
Views0
Last Updated11/28/2025
workflow.json
{
  "meta": {
    "instanceId": "efb474b59b0341d7791932605bd9ff04a6c7ed9941fdd53dc4a2e4b99a6f9439",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "2aa95999-e977-454e-b6cb-0dae63c0fbec",
      "name": "Extract Eventbrite Signups",
      "type": "n8n-nodes-base.code",
      "position": [
        400,
        -200
      ],
      "parameters": {
        "jsCode": "const token = 'ZZZZZZZZZZZZZZZZZZZZ'; //Replace with your token from eventbrite\nconst orgId = '1111111111111'; // Replace with your actual organization ID\n\nconst fetch = async (url) => {\n  return await this.helpers.request({\n    method: 'GET',\n    url,\n    json: true,\n  });\n};\n\nconst allAttendees = [];\nlet eventContinuation = null;\nlet eventHasMore = false;\n\n// 1. Fetch all events (live + ended)\ndo {\n  const eventUrl = eventContinuation\n    ? `https://www.eventbriteapi.com/v3/organizations/${orgId}/events/?status=live,ended&continuation=${eventContinuation}&token=${token}`\n    : `https://www.eventbriteapi.com/v3/organizations/${orgId}/events/?status=live,ended&token=${token}`;\n\n  const eventData = await fetch(eventUrl);\n\n  const events = eventData.events || [];\n\n  for (const event of events) {\n    const eventId = event.id;\n    let continuation = null;\n    let hasMore = false;\n\n    do {\n      const attendeeUrl = continuation\n        ? `https://www.eventbriteapi.com/v3/events/${eventId}/attendees/?continuation=${continuation}&token=${token}`\n        : `https://www.eventbriteapi.com/v3/events/${eventId}/attendees/?token=${token}`;\n\n      const attendeeData = await fetch(attendeeUrl);\n\n      for (const a of attendeeData.attendees || []) {\n        let customAnswers = {};\n        if (Array.isArray(a.answers)) {\n          a.answers.forEach(ans => {\n            customAnswers[ans.question] = ans.answer || '';\n          });\n        }\n// Replace below with the fields you want to bring into pipedrive from eventbrite\nallAttendees.push({\n  json: {\n    event_id: eventId,\n    event_name: event.name?.text || '',\n    event_date: event.start?.local || '',  // Add this line\n    name: a.profile?.name || '',\n    email: a.profile?.email || '',\n    phone: a.profile?.phone || '',\n    work_phone: a.profile?.work_phone || '',\n    ticket_class: a.ticket_class_name || '',\n    status: a.status,\n    order_id: a.order_id,\n    created: a.created\n  }\n});\n\n      }\n\n      continuation = attendeeData.pagination?.continuation || null;\n      hasMore = attendeeData.pagination?.has_more_items === true;\n\n    } while (hasMore && continuation);\n  }\n\n  eventContinuation = eventData.pagination?.continuation || null;\n  eventHasMore = eventData.pagination?.has_more_items === true;\n\n} while (eventHasMore && eventContinuation);\n\nreturn allAttendees;\n"
      },
      "typeVersion": 2
    },
    {
      "id": "f08c4987-c184-43cf-a8a2-3f3e9f3f66fa",
      "name": "Extract current leads in pipedrive",
      "type": "n8n-nodes-base.pipedrive",
      "position": [
        400,
        120
      ],
      "parameters": {
        "resource": "person",
        "operation": "getAll",
        "returnAll": true,
        "additionalFields": {}
      },
      "credentials": {
        "pipedriveApi": {
          "id": "oB2Ngws5qjvju8Rr",
          "name": "Pipedrive account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "3ddd3458-952b-430f-bfe5-26d8be7b42af",
      "name": "Merge to keep only new leads",
      "type": "n8n-nodes-base.merge",
      "position": [
        660,
        0
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "advanced": true,
        "joinMode": "keepNonMatches",
        "mergeByFields": {
          "values": [
            {
              "field1": "email",
              "field2": "primary_email"
            }
          ]
        },
        "outputDataFrom": "input1"
      },
      "typeVersion": 3.1
    },
    {
      "id": "10e213d5-7e97-472f-b861-55c9b7d5407e",
      "name": "Add New Leads to Pipedrive",
      "type": "n8n-nodes-base.pipedrive",
      "position": [
        840,
        360
      ],
      "parameters": {
        "name": "={{ $json.name }}",
        "resource": "person",
        "additionalFields": {
          "email": [
            "={{ $json.email }}"
          ],
          "phone": [
            "={{ $json.work_phone }}"
          ],
          "customProperties": {
            "property": [
              {
                "name": "1e00d5b90cd7df463975bd87d7185b0bde7745d0",
                "value": "={{ $json.company }}"
              },
              {
                "name": "ca46149c27f5fdc4b4c1ec43db042f968a0f5bed",
                "value": "={{ $json.event_date }}"
              }
            ]
          }
        }
      },
      "credentials": {
        "pipedriveApi": {
          "id": "oB2Ngws5qjvju8Rr",
          "name": "Pipedrive account"
        }
      },
      "executeOnce": false,
      "typeVersion": 1
    },
    {
      "id": "60c09118-1cba-4da8-bbd9-33d919f3a181",
      "name": "Schedule Daily",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        0,
        120
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "minutes",
              "minutesInterval": 10
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "42afbcee-474b-4ad4-8403-9bed3f1848ed",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -40,
        -340
      ],
      "parameters": {
        "width": 1120,
        "height": 980,
        "content": "## Eventbrite → Pipedrive Lead‑Sync Workflow\n**Need help? Email [email protected]**"
      },
      "typeVersion": 1
    },
    {
      "id": "b2b9580d-2fa8-4cdd-90bc-2270cc72e888",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -940,
        -340
      ],
      "parameters": {
        "color": 5,
        "width": 880,
        "height": 980,
        "content": "#### ⚙️ Setup Instructions\n\n1. **Import the workflow**  \n   - n8n → **Workflows → Import from File** (or **Paste JSON**) → **Save**\n\n2. **Connect Pipedrive**  \n   | Service    | Where to get your token | Node(s) to update |\n   |------------|------------------------|-------------------|\n   | **Pipedrive** | Pipedrive → *Personal preferences → API* → copy **API token** | **Extract current leads in pipedrive** & **Add New Leads to Pipedrive** |\n\n3. **Update the “Extract Eventbrite Signups” Code node**  \n   - Open the **Code** node at the top of the flow.  \n   - Replace `ZZZZZZZZZZZZZZZZZZZZ` with **your Eventbrite Personal OAuth token**.  \n   - Replace `1111111111111` with **your Eventbrite Organization ID**.  \n   - At the **bottom** of the Code node you’ll see an array of properties being pushed (e.g., `event_name`, `email`, `ticket_class`).  \n     - **Add / remove fields** there to control which attendee data flows downstream.\n\n4. **Adjust the schedule**  \n   - Open the **Schedule Daily** trigger.  \n   - Default interval is **every 10 minutes**; change the minutes or switch to hours/days as needed.\n\n5. **Customize Pipedrive field mapping**  \n   - Open **Add New Leads to Pipedrive**.  \n   - Update any **customProperties** IDs so they point to the correct custom fields in your Pipedrive account.  \n   - Map additional attendee fields (e.g., company, ticket type) if desired.\n\n6. **Test the workflow**  \n   - Click **Test or Manually run workflow**.  \n   - Watch the execution log; new Eventbrite attendees that **don’t already exist** in Pipedrive should appear within seconds.  \n   - Confirm no duplicates—existing contacts are filtered out by the **Merge → keep only new leads** step.\n\n7. **Activate**  \n   - Toggle **Active** so the Schedule trigger runs automatically throughout the day.\n\n---\n\n### Need help?\n\n- **Email:** [email protected]  \n- **Website:** https://ynteractive.com  \n- **YouTube:** https://www.youtube.com/@ynteractivetraining  \n- **LinkedIn:** https://www.linkedin.com/in/robertbreen\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "4ab6de6c-a665-4a0f-b30f-2cc7f52578b6",
      "name": "Test or Manually run workflow",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        20,
        -200
      ],
      "parameters": {},
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "Schedule Daily": {
      "main": [
        [
          {
            "node": "Extract Eventbrite Signups",
            "type": "main",
            "index": 0
          },
          {
            "node": "Extract current leads in pipedrive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Eventbrite Signups": {
      "main": [
        [
          {
            "node": "Merge to keep only new leads",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge to keep only new leads": {
      "main": [
        [
          {
            "node": "Add New Leads to Pipedrive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Test or Manually run workflow": {
      "main": [
        [
          {
            "node": "Extract Eventbrite Signups",
            "type": "main",
            "index": 0
          },
          {
            "node": "Extract current leads in pipedrive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract current leads in pipedrive": {
      "main": [
        [
          {
            "node": "Merge to keep only new leads",
            "type": "main",
            "index": 1
          }
        ]
      ]
    }
  }
}

相关工作流