n8nChrome-ErweiterungGTM Engineering

LinkedIn-Leads an n8n: ein Webhook aus einer kostenlosen Chrome-Erweiterung

Für fremde Profile gibt es keine LinkedIn-API, der Auslöser muss also aus dem Browser kommen. Hier sind das JSON, die Einrichtung und eine Workflow-Vorlage zum Importieren.

ListPlus Team5 Min. Lesezeit

Suchst du nach n8n und LinkedIn, findest du Post-Planer und Scraper, die unbegrenzt Leads versprechen. Beides hilft dir nicht, wenn die Aufgabe kleiner ist: Jemand aus dem Vertrieb schaut sich ein Profil an, hält die Person für einen Lead, und ab da soll dein Flow übernehmen. Der Flow war nie das Problem. Das Problem ist der Auslöser: LinkedIn hat keine API für fremde Profile und keinen Webhook für „jemand im Team hat einen Lead gefunden“.

Der Auslöser kommt also aus dem Browser: Eine kostenlose Chrome-Erweiterung schickt ein JSON-Dokument an einen Webhook, der dir gehört, und n8n macht den Rest. Die Vorlage steht weiter unten.

Woher der POST kommt

Die ListPlus-Erweiterung für Chrome ist eine Merkliste im Browser. Auf einem LinkedIn-Profil oder einer Unternehmensseite merkst du die Person mit einem Klick, schreibst bei Bedarf eine Notiz dazu, und der Eintrag bleibt im Panel, bis du ihn übergibst. Ziel kann eine ListPlus-Liste sein oder eine Adresse von dir: ein n8n-Webhook, Make, Zapier, der Webhook einer Clay-Tabelle, dein Server. Dafür brauchst du kein ListPlus-Konto. Die Liste liegt in deinem Chrome-Profil, ListPlus speichert davon nichts zentral, und der POST geht direkt vom Browser an deinen Endpunkt.

Auf LinkedIn speichert die Erweiterung standardmäßig nur die Adresse der Seite und den Namen aus dem Tab-Titel; die Seite selbst liest sie nicht. Headline, Firma und Ort liest sie erst, wenn du den Schalter dafür selbst umlegst, neben einem Hinweis auf die Nutzungsbedingungen von LinkedIn. Ohne den Schalter kommt eine Person als Name und URL an, alles Weitere ist Sache deiner Anreicherung.

Ein LinkedIn-Profil mit dem ListPlus-Seitenpanel: die erkannte Person, ein Notizfeld und der Button zum Merken
Das Seitenpanel auf einem LinkedIn-Profil: die Person, eine Notiz, ein Klick zum Merken.

Den Endpunkt einrichten

  1. Lege in n8n einen Webhook-Node an, Methode POST, und kopiere seine Production-URL (in der Vorlage unten ist er schon drin).
  2. Öffne in der Erweiterung die Einstellungen (das Zahnrad oben), wähle Eigener Endpunkt und trage die URL als Adresse des Endpunkts ein. Nimm https; http geht auch, aber die Erweiterung warnt, dass dann unverschlüsselt gesendet wird.
  3. Klappe Header zur Anmeldung (optional) auf und trage einen Namen wie X-Api-Key und den Wert ein; er bleibt in diesem Browser. In n8n stellst du den Webhook-Node auf Header Auth mit demselben Namen und Wert.
  4. Klicke auf Test senden: Ein Testeintrag geht raus, und die Erweiterung zeigt den Antwortstatus. Dann Speichern. Chrome fragt einmal, ob die Erweiterung diesen Host erreichen darf.

Ab jetzt ist der Button Übergeben ein Menü mit An ListPlus … und An eigenen Endpunkt senden. Der zweite Eintrag schickt die Auswahl mit einem Klick, Notizen inklusive, und jeder Eintrag zeigt danach unter Übergeben an den Host deines Endpunkts. Ein Ordner geht mit Alle übergeben denselben Weg.

Was ankommt

Jeder Versand ist ein POST mit Content-Type application/json, ohne Cookies, mit 20 Sekunden Timeout. Jede 2xx-Antwort gilt als zugestellt; bei allem anderen werden die Einträge nicht als gesendet markiert. Leere Felder fehlen im JSON. Das gekürzte JSON zeigt die Form für eine Person; Werte in spitzen Klammern sind Platzhalter, optionale Felder erscheinen nur, wenn sie vorhanden sind:

{
  "event": "listplus.entries",
  "source": "listplus-chrome-extension",
  "version": "1.0.0",
  "sentAt": "<ISO-8601-Zeitstempel>",
  "count": 1,
  "entries": [
    {
      "kind": "person",
      "name": "<Name aus dem Profil>",
      "url": "https://www.linkedin.com/in/<profil-id>",
      "linkedinUrl": "https://www.linkedin.com/in/<profil-id>",
      "headline": "<Headline bei aktivierter Inhaltserkennung>",
      "company": "<Firma, falls vorhanden>",
      "location": "<Ort, falls vorhanden>",
      "note": "<deine Notiz, falls vorhanden>",
      "savedAt": "<ISO-8601-Zeitstempel>",
      "savedBy": "manual"
    }
  ]
}

kind ist person, company oder page; savedBy ist manual oder auto. Test senden setzt zusätzlich "test": true auf oberster Ebene. Weitere optionale Felder: detail, jobTitle, email, phone, website, domain, industry, companySize, employees, seniority, street, zip, city, country, folder und sentTo. Ein Eintrag von einer Webseite hat eine url, aber keine linkedinUrl; eine Dublettenprüfung über die LinkedIn-URL braucht also einen Fallback auf Name plus Firma.

Was der n8n-Workflow macht

Die Vorlage hat sechs arbeitende Nodes. Webhook: POST auf dem Pfad listplus-leads, antwortet sofort, damit die Erweiterung auch dann eine 200 sieht, wenn ein späterer Node scheitert. Split Out auf body.entries, ein Item pro Lead. Filter: verwirft Testsendungen und alle Einträge vom kind page. Edit Fields: name aufgeteilt in firstName und lastName, linkedinUrl, email, jobTitle (sonst die Headline), company, domain (sonst aus der E-Mail), note. IF: ist email leer? Nein: ein HubSpot-Node, Kontakt per E-Mail anlegen oder aktualisieren, die Zugangsdaten wählst du selbst. Ja: ein No-Op namens Your enrichment step; ersetze ihn durch das, womit du E-Mails findest.

In diesem Zweig steckt dein Stack. Ein Waterfall ist eine Kette aus HTTP-Request-Nodes zu deinen Anbietern, jeder gefolgt von einem IF, das beim ersten verifizierten Treffer aufhört. Mit einer Clay-Tabelle schickst du das Item an deren Webhook-Quelle und lässt die Spalten den Waterfall machen. Wofür du dich auch entscheidest: Prüfe auf Dubletten, bevor du Geld ausgibst. Eine CRM-Suche über das LinkedIn-URL-Feld oder ein kleiner Data Store mit linkedinUrl als Schlüssel kostet nichts und spart die zweite Abfrage.

Optional: E-Mail und Jobtitel schon im JSON

Bist du bei ListPlus angemeldet (der kostenlose Basic-Plan reicht), zeigt die Karte eines LinkedIn-Profils den Button Anreichern mit dem Preis. Ein Klick zeigt eine verifizierte E-Mail, Rolle und Firmendaten. Das Ergebnis bleibt am Eintrag, sodass email, jobTitle, domain, industry, companySize, employees und seniority beim nächsten POST mitreisen und das IF den Lead direkt in den CRM-Zweig schickt. Das kostet 2 Credits, nur bei einem Treffer: 0,06 € mit Pro oder Premium, 0,10 € mit Basic. Ein Fehlschlag kostet nichts, eine Wiederholung innerhalb von 7 Tagen auch nicht. Nur dieser Klick schickt die Adresse der Seite an ListPlus; die Merkliste bleibt im Browser.

Was es nicht macht

Es gibt keinen automatischen neuen Versuch: Ein Versand ohne 2xx wird im Panel als fehlgeschlagen angezeigt, mit Status und dem Anfang der Antwort, und du schickst von Hand noch einmal. Der POST ist nicht signiert; Header plus ein nicht zu erratender Pfad sind dein Schutz, also Webhook-Node auf Header Auth. Die Merkliste wird nicht zwischen Geräten synchronisiert, und ohne Klick wird nichts gesendet. Willst du vor dem CRM regelbasiert routen, prüfen und mit Budget anreichern, ohne das selbst zu bauen, kann das eine ListPlus-Liste; sie ist der eine Teil, der ein Konto braucht.