# Von der Messe-CSV zur Anrufliste.

Claude Code richtet Liste, Score und Regeln ein. Die Liste sucht Mobilnummern für passende Messekontakte und übergibt sie – im Beispiel an n8n. Ändere den Mindestscore und sieh, wer die Anrufliste erreicht.

https://listplus.ai/de/gtm-workflows/claude-code-lead-scoring-n8n

## Eingabe und Verbindungen

Eine Messe-CSV, deine ICP-Kriterien und eine freigegebene CRM-Referenzliste. Im Beispiel zählen Branche, Unternehmensgröße und Rolle im Einkauf.

„Einrichten“ für die Agentenverbindung, geeignete Listenrechte, freigegebene CRM-Referenzliste und eine vorbereitete Webhook-Pipeline zu n8n.

## Schritte

1. **Kampagnenliste einrichten** (Claude Code · per Aufruf). Aktiviere das Verbindungsrecht „Einrichten“. Lass den Agenten die Liste „Messekontakte“, die benötigten Felder und den Status Qualified anlegen.
2. **Score berechnen und Kontakte prüfen** (ListPlus · läuft automatisch). Die Modebranche gibt 40 Punkte, mindestens 201 Mitarbeitende und eine Rolle im Einkauf je 30. Prüfe Kontaktdaten und CRM-Treffer. Nur geeignete neue Kontakte kommen für bezahlte Ergänzungen infrage.
3. **Anreicherung einmal freigeben** (Dein Team · manuell in ListPlus). Prüfe die Schätzung für die ausgewählten Kontakte und gib die Regel frei. Danach startet die Liste die Suche bei jedem neuen passenden Kontakt selbst.
4. **Anrufbereite Kontakte übergeben** (ListPlus · n8n · läuft automatisch). Erst mit nutzbarer Mobilnummer setzt die Listenregel den Status auf Qualified und übergibt die Zeile an die vorhandene Pipeline Sales Call Queue. Ohne Treffer bleibt sie in der Liste.

## Erwartetes Ergebnis im Beispiel

Bei 80 Punkten erreicht Giulia die Anrufliste. Luca ist im CRM, Sofia hat offene Befunde und Elena liegt unter der Schwelle. Bei 70 Punkten kommt Elena hinzu.

## Kosten und Grenzen

Bei 80 Punkten ist im Beispiel ein Kontakt für die Anreicherung ausgewählt. Die Schätzung liegt bei 5 Credits, höchstens 23 Credits (0,69 € im Pro-Tarif). Im Playground ändern sich Auswahl und Schätzung mit dem Mindestscore. Die Ziel-Pipeline hat einen eigenen Preis.

Die Liste berechnet Scores und führt eingerichtete Regeln nach dem Setup weiter aus. Externe Rechercheaufträge brauchen weiterhin den Agenten. Ein bestätigter Webhook-Empfang wird im Ziel geprüft.

## Agentenauftrag

Erstelle die Liste „Messekontakte“ mit Status Qualified. Lege eine Fit-Score-Spalte für Modebranche (+40), mindestens 201 Mitarbeitende (+30) und Einkauf (+30) sowie einen Abgleich mit meiner freigegebenen Kundenliste an. Importiere meine Messekontakte und prüfe sie. Schätze fehlende Mobilnummern und LinkedIn-Profile nur für neue, geprüfte Kontakte ab 80 Punkten. Zeige mir erwartete und maximale Credits. Richte die Anreicherung als Listenregel ein. Aktiviere sie nach meiner Budgetfreigabe. Bei nutzbarer Mobilnummer soll die Liste den Status auf Qualified setzen und den Kontakt an die vorhandene Pipeline Sales Call Queue geben.

## Werkzeuge

`describe_setup`, `create_list`, `add_column`, `add_records`, `check_list`, `enrich_records`, `create_trigger`, `update_trigger`, `query_records`

MCP: https://listplus.ai/mcp
REST: https://listplus.ai/a/v1/{action}
API: https://listplus.ai/a

## Beispielaufrufe

Die Aufrufe verwenden fiktive IDs. Nutze die IDs aus den Antworten deines Workspace.

Richte die Suchregel pausiert ein. Die 25 Credits pro Kontakt sind die konfigurierte Obergrenze dieses Beispiels. Aktiviere sie erst nach der Freigabe. Eine passende Zeile mit nutzbarer Mobilnummer erhält den Status Qualified und wird an die vorhandene Pipeline übergeben.

```text
describe_setup({})

create_list({
  "name": "Messekontakte",
  "kind": "contacts",
  "statuses": [
    {
      "name": "Qualified"
    }
  ],
  "columns": [
    "first_name",
    "last_name",
    "company_name",
    "job_title",
    "industry",
    "company_size",
    "linkedin_profile_url",
    "mobile_phone"
  ]
})

describe_setup({
  "list_id": "trade_show_leads"
})

add_column({
  "list_id": "trade_show_leads",
  "columns": [
    {
      "kind": "in_list",
      "title": "CRM match",
      "reference_list_id": "hubspot_customers"
    },
    {
      "kind": "score",
      "title": "Fit score",
      "criteria": [
        {
          "label": "Apparel",
          "points": 40,
          "when": {
            "groups": [
              [
                {
                  "field": {
                    "kind": "contentType",
                    "key": "industry"
                  },
                  "op": "isAnyOf",
                  "values": [
                    "Apparel"
                  ]
                }
              ]
            ]
          }
        },
        {
          "label": "201+ employees",
          "points": 30,
          "when": {
            "groups": [
              [
                {
                  "field": {
                    "kind": "contentType",
                    "key": "company_size"
                  },
                  "op": "isAnyOf",
                  "values": [
                    "201-500",
                    "501-1000",
                    "1001-5000",
                    "5001-10000",
                    "10001+"
                  ]
                }
              ]
            ]
          }
        },
        {
          "label": "Buying role",
          "points": 30,
          "when": {
            "groups": [
              [
                {
                  "field": {
                    "kind": "contentType",
                    "key": "job_title"
                  },
                  "op": "isAnyOf",
                  "values": [
                    "Head of Buying",
                    "Buyer"
                  ]
                }
              ]
            ]
          }
        }
      ]
    }
  ]
})

create_trigger({
  "list_id": "trade_show_leads",
  "name": "Ready for a call",
  "on": "match",
  "conditions": {
    "groups": [
      [
        {
          "field": {
            "kind": "column",
            "name": "fit_score"
          },
          "op": "greaterThanOrEqual",
          "values": [
            "80"
          ]
        },
        {
          "field": {
            "kind": "reference",
            "listId": "hubspot_customers"
          },
          "op": "isNotIn"
        },
        {
          "field": {
            "kind": "contentType",
            "key": "linkedin_profile_url"
          },
          "op": "blank"
        },
        {
          "field": {
            "kind": "contentType",
            "key": "mobile_phone"
          },
          "op": "valid"
        }
      ],
      [
        {
          "field": {
            "kind": "column",
            "name": "fit_score"
          },
          "op": "greaterThanOrEqual",
          "values": [
            "80"
          ]
        },
        {
          "field": {
            "kind": "reference",
            "listId": "hubspot_customers"
          },
          "op": "isNotIn"
        },
        {
          "field": {
            "kind": "contentType",
            "key": "linkedin_profile_url"
          },
          "op": "isProfile"
        },
        {
          "field": {
            "kind": "contentType",
            "key": "mobile_phone"
          },
          "op": "valid"
        }
      ]
    ]
  },
  "actions": [
    {
      "kind": "status",
      "status": "Qualified"
    }
  ]
})

create_trigger({
  "list_id": "trade_show_leads",
  "name": "Qualified → n8n",
  "on": "match",
  "conditions": {
    "groups": [
      [
        {
          "field": {
            "kind": "column",
            "name": "fit_score"
          },
          "op": "greaterThanOrEqual",
          "values": [
            "80"
          ]
        },
        {
          "field": {
            "kind": "reference",
            "listId": "hubspot_customers"
          },
          "op": "isNotIn"
        },
        {
          "field": {
            "kind": "contentType",
            "key": "linkedin_profile_url"
          },
          "op": "blank"
        },
        {
          "field": {
            "kind": "contentType",
            "key": "mobile_phone"
          },
          "op": "valid"
        },
        {
          "field": {
            "kind": "status"
          },
          "op": "isAnyOf",
          "values": [
            "Qualified"
          ]
        }
      ],
      [
        {
          "field": {
            "kind": "column",
            "name": "fit_score"
          },
          "op": "greaterThanOrEqual",
          "values": [
            "80"
          ]
        },
        {
          "field": {
            "kind": "reference",
            "listId": "hubspot_customers"
          },
          "op": "isNotIn"
        },
        {
          "field": {
            "kind": "contentType",
            "key": "linkedin_profile_url"
          },
          "op": "isProfile"
        },
        {
          "field": {
            "kind": "contentType",
            "key": "mobile_phone"
          },
          "op": "valid"
        },
        {
          "field": {
            "kind": "status"
          },
          "op": "isAnyOf",
          "values": [
            "Qualified"
          ]
        }
      ]
    ]
  },
  "actions": [
    {
      "kind": "pipeline",
      "pipeline": "Sales Call Queue"
    }
  ]
})

create_trigger({
  "list_id": "trade_show_leads",
  "name": "Find missing contact details",
  "on": "match",
  "activate": false,
  "conditions": {
    "groups": [
      [
        {
          "field": {
            "kind": "column",
            "name": "fit_score"
          },
          "op": "greaterThanOrEqual",
          "values": [
            "80"
          ]
        },
        {
          "field": {
            "kind": "reference",
            "listId": "hubspot_customers"
          },
          "op": "isNotIn"
        },
        {
          "field": {
            "kind": "contentType",
            "key": "linkedin_profile_url"
          },
          "op": "blank"
        },
        {
          "field": {
            "kind": "contentType",
            "key": "mobile_phone"
          },
          "op": "blank"
        }
      ],
      [
        {
          "field": {
            "kind": "column",
            "name": "fit_score"
          },
          "op": "greaterThanOrEqual",
          "values": [
            "80"
          ]
        },
        {
          "field": {
            "kind": "reference",
            "listId": "hubspot_customers"
          },
          "op": "isNotIn"
        },
        {
          "field": {
            "kind": "contentType",
            "key": "linkedin_profile_url"
          },
          "op": "isProfile"
        },
        {
          "field": {
            "kind": "contentType",
            "key": "mobile_phone"
          },
          "op": "blank"
        }
      ]
    ]
  },
  "actions": [
    {
      "kind": "enrich",
      "fields": [
        "mobile_phone",
        "linkedin_profile_url"
      ],
      "fill": "empty_only",
      "budget_per_record": "25"
    }
  ]
})

add_records({
  "list_id": "trade_show_leads",
  "records": [
    {
      "first_name": "Giulia",
      "last_name": "Ferri",
      "company_name": "Moda Vesuvio",
      "job_title": "Buyer",
      "industry": "Apparel",
      "company_size": "201-500"
    },
    {
      "first_name": "Luca",
      "last_name": "Greco",
      "company_name": "Tessile Ionio",
      "job_title": "Buyer",
      "industry": "Apparel",
      "company_size": "201-500"
    },
    {
      "first_name": "Sofia",
      "last_name": "Costa",
      "company_name": "Seta Sicilia",
      "job_title": "Buyer",
      "industry": "Apparel",
      "company_size": "201-500",
      "linkedin_profile_url": "linkedin.com/company/seta-sicilia",
      "mobile_phone": "+39 000 000 0000"
    },
    {
      "first_name": "Elena",
      "last_name": "Rizzo",
      "company_name": "Linea Bari",
      "job_title": "Marketing Manager",
      "industry": "Apparel",
      "company_size": "201-500"
    }
  ]
})

check_list({
  "list_id": "trade_show_leads",
  "categories": [
    "email",
    "phone",
    "linkedin",
    "duplicates"
  ]
})

enrich_records({
  "list_id": "trade_show_leads",
  "record_ids": [
    "giulia"
  ],
  "fields": [
    "mobile_phone",
    "linkedin_profile_url"
  ],
  "estimate": true
})

update_trigger({
  "list_id": "trade_show_leads",
  "trigger_id": "<lookup_rule_id>",
  "status": "active",
  "include_existing": true
})

query_records({
  "list_id": "trade_show_leads",
  "filter": {
    "ar_status": "Qualified"
  },
  "mode": "rows"
})
```
