Automation9 min läsning

Bygg en AI-agent som sköter dina leads (Claude + n8n)

Kombinera n8n och Claude för att automatiskt kvalificera leads och skicka personliga svar. Steg-för-steg guide med färdig kod.

Daniel Dahlen

Daniel Dahlen

22 januari 2025

Dela

Varje dag kommer leads in. Formulär fylls i. Mejl landar. Och du vet att snabba svar ökar chansen att konvertera.

Men du har inte tid att kvalificera varje lead manuellt och skriva personliga svar till alla.

Det är precis det här problemet vi löser idag. Med n8n och Claudes API bygger vi en automatisering som:

  1. Tar emot nya leads
  2. Låter AI analysera och kategorisera dem
  3. Skickar automatiska, personliga svar
  4. Loggar allt för uppföljning

Från manuellt till automatiskt. Och det tar en eftermiddag att sätta upp.

Vad vi ska bygga

Här är flödet vi skapar:

Lead kommer in → AI analyserar → Kategoriseras → Personligt svar skickas
      ↓
[Webhook/Form]   [Claude API]   [Hot/Warm/Cold]   [Email via Gmail/Resend]

Hot leads: Får omedelbart personligt svar + notis till dig Warm leads: Får informativt svar, läggs i nurture-kö Cold leads: Får artigt svar, arkiveras

Allt sker automatiskt. Du behöver bara följa upp hot leads.

Förutsättningar

Innan vi börjar behöver du:

  1. n8n igång (molnversion eller self-hosted). Se min guide för nybörjare om du inte har det.

  2. Claude API-nyckel från platform.claude.com. Skapa konto, gå till API Keys, skapa en ny nyckel.

  3. Email-tjänst för att skicka svar. Gmail funkar, eller använd Resend/SendGrid för mer kontroll.

API-kostnader

Claude API kostar per användning. För lead-kvalificering är kostnaden låg (några ören per lead) men ha koll på din användning. Sätt budget-gräns i Anthropic Console.

Genvägen: Bygg flödet med Synta

Innan vi dyker ner i den manuella guiden vill jag nämna ett alternativ. Om du tycker att n8n:s gränssnitt känns krångligt finns Synta.

Vad är Synta?

Synta är en AI-tjänst som bygger n8n-workflows åt dig genom att du beskriver vad du vill ha på vanlig svenska (eller engelska). Istället för att dra och släppa noder och konfigurera JSON skriver du något i stil med:

"Skapa ett flöde som tar emot leads via webhook, skickar dem till Claude för kvalificering, och sedan skickar olika mejlsvar beroende på om de är hot, warm eller cold leads."

Synta genererar hela flödet och kan deploya det direkt till din n8n-instans.

Vad kostar det?

  • Standard: $34/månad (150 credits, upp till 10 AI-genererade workflows)
  • Pro: $67/månad (450 credits, obegränsat antal workflows)

När passar Synta?

  • Du vill komma igång snabbt utan att lära dig n8n:s gränssnitt
  • Du har ett trasigt workflow som behöver debuggas
  • Du vill prototypa idéer innan du bygger själv

När ska du bygga manuellt?

  • Du vill förstå exakt hur allt hänger ihop
  • Du har specifika krav som kräver finjustering
  • Du vill hålla kostnaderna nere

Resten av den här guiden visar hur du bygger flödet manuellt. Men om du vill testa Synta-vägen, beskriv bara flödet jag skissade ovan och du har en fungerande grund på minuter.

Synta + manuellt

Ett bra workflow är att låta Synta generera en första version, sedan finjustera manuellt i n8n. Du får snabbheten från AI och kontrollen från att göra justeringar själv.

Steg 1: Sätt upp triggern

Vi börjar med hur leads kommer in i systemet.

Alternativ A: Webhook (flexibelt)

I n8n, skapa ett nytt workflow och lägg till en Webhook nod.

Inställningar:

  • HTTP Method: POST
  • Path: lead-intake (eller vad du vill)
  • Response Code: 200

Kopiera webhook-URL:en som visas. Den ser ut ungefär så här:

https://ditt-n8n.app.n8n.cloud/webhook/abc123

Denna URL kopplar du sedan till ditt formulär (Typeform, Tally, din egen sajt, etc).

Alternativ B: Google Forms/Sheets

Om du samlar leads i Google Sheets, använd Google Sheets Trigger istället:

  • Operation: "On Row Added"
  • Välj ditt spreadsheet och blad

Alternativ C: Email

Använd Gmail Trigger eller IMAP Email för att fånga leads som kommer via email:

  • Trigger: On Message Received
  • Filter: Subject contains "Kontakt" eller liknande

Steg 2: Koppla in Claude

Nu ska vi låta AI analysera varje lead.

Lägg till en HTTP Request nod och koppla den till din trigger.

Inställningar:

  • Method: POST
  • URL: https://api.anthropic.com/v1/messages

Headers:

x-api-key: din-api-nyckel-här
anthropic-version: 2023-06-01
content-type: application/json

Body (JSON):

{
  "model": "claude-3-5-sonnet-20241022",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": "Du är en lead-kvalificeringsexpert..."
    }
  ]
}

I n8n använder du dubbla måsvingar för att referera till data. I content-fältet skriver du:

  • Namn: följt av $json.name inuti dubbla måsvingar
  • Email: följt av $json.email inuti dubbla måsvingar
  • Och så vidare för message och company

Anpassa prompten

Byt ut [ditt företag] mot information om ditt företag. Lägg till kriterier för vad som gör en lead "hot" för just dig. Ju mer specifik du är, desto bättre kvalificering.

Exempel på anpassad prompt:

Du är lead-kvalificeringsexpert för Maivor, en AI-konsultbyrå.

HOT leads (kategori: hot, score 8-10):
- Nämner specifikt projekt eller deadline
- Företag med 10+ anställda
- Frågar om pris eller vill boka möte

WARM leads (kategori: warm, score 5-7):
- Visar intresse men inget specifikt projekt
- Vill "lära sig mer"
- Osäker på vad de behöver

COLD leads (kategori: cold, score 1-4):
- Generiska frågor
- Studenter eller privatpersoner
- Söker gratis hjälp

Analysera denna lead...

Steg 3: Parsa AI-svaret

Claude returnerar JSON inuti sitt svar. Vi behöver plocka ut det.

Lägg till en Code nod efter HTTP Request:

// Hämta textsvaret från Claude
const response = $input.first().json.content[0].text;
 
// Hitta JSON i svaret (Claude kan lägga till text runtom)
const jsonMatch = response.match(/\{[\s\S]*\}/);
 
if (jsonMatch) {
  const parsed = JSON.parse(jsonMatch[0]);
  return {
    category: parsed.category,
    score: parsed.score,
    summary: parsed.summary,
    personligt_svar: parsed.personligt_svar,
    // Behåll original-data
    lead_name: $input.first().json.name,
    lead_email: $input.first().json.email,
    lead_message: $input.first().json.message
  };
}
 
throw new Error('Kunde inte parsa AI-svar');

Steg 4: Kategorisera och agera

Nu använder vi en Switch nod för att hantera olika typer av leads.

Inställningar:

  • Mode: Expression
  • Output 1: Uttryck som kollar om $json.category är lika med 'hot'
  • Output 2: Uttryck som kollar om $json.category är lika med 'warm'
  • Output 3 (Fallback): Alla andra

I n8n skriver du uttrycken med dubbla måsvingar runt JavaScript-koden.

För Hot leads:

Koppla två noder:

1. Gmail nod (skicka svar):

  • To: Referera till $json.lead_email
  • Subject: "Tack för ditt meddelande!"
  • Message: Referera till $json.personligt_svar

2. Slack/Email nod (notifiera dig):

  • Message: Bygg ett meddelande med $json.lead_name, $json.score och $json.summary

Exempel: "🔥 HOT LEAD! [namn] (Score: [score])" med n8n:s variabelsyntax.

För Warm leads:

Gmail nod:

  • To: Referera till $json.lead_email
  • Subject: "Tack för att du hörde av dig"
  • Message: Standardmejl med mer info + det personliga svaret från $json.personligt_svar

För Cold leads:

Gmail nod:

  • Kort, artigt tack-mejl
  • Ingen personlig touch (sparar tid)

Steg 5: Logga allt

Lägg till en Google Sheets nod i slutet av varje gren:

  • Operation: Append Row
  • Spreadsheet: "Lead Log" (skapa en)
  • Kolumner: Datum, Namn, Email, Kategori, Score, Sammanfattning

Nu har du en komplett historik över alla leads och hur de kategoriserades.

Hela flödet visuellt

[Webhook Trigger]
        ↓
[HTTP Request till Claude API]
        ↓
[Code: Parsa JSON]
        ↓
[Switch: Hot/Warm/Cold]
    ↓       ↓       ↓
  [Hot]   [Warm]  [Cold]
    ↓       ↓       ↓
[Email]  [Email] [Email]
    ↓       ↓       ↓
[Notis]    ↓       ↓
    ↓       ↓       ↓
[Log till Google Sheets]

Komplett n8n-flöde (exportera/importera)

Här är det kompletta flödet som JSON. Gå till n8n, klicka på menyn, "Import from JSON", och klistra in:

{
  "name": "AI Lead Qualification",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "lead-intake",
        "responseMode": "responseNode",
        "options": {}
      },
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [250, 300]
    },
    {
      "parameters": {
        "url": "https://api.anthropic.com/v1/messages",
        "method": "POST",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {"name": "x-api-key", "value": "=[$env.ANTHROPIC_API_KEY]"},
            {"name": "anthropic-version", "value": "2023-06-01"},
            {"name": "content-type", "value": "application/json"}
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "[n8n expression med lead-data]"
      },
      "name": "Claude API",
      "type": "n8n-nodes-base.httpRequest",
      "position": [450, 300]
    }
  ],
  "connections": {
    "Webhook": {
      "main": [[{"node": "Claude API", "type": "main", "index": 0}]]
    }
  }
}

OBS: I det riktiga flödet ersätter du [$env.ANTHROPIC_API_KEY] med n8n:s syntax (dubbla måsvingar runt $env.ANTHROPIC_API_KEY). Samma sak för jsonBody där du refererar till $json.name, $json.email etc.

Lägg till din API-nyckel

I n8n, gå till Settings → Variables och lägg till ANTHROPIC_API_KEY med din nyckel. Så slipper du ha nyckeln i själva flödet.

Vanliga problem och lösningar

"Error 401" från Claude API

Din API-nyckel är fel eller saknas. Dubbelkolla att:

  • Nyckeln kopierades komplett (inga mellanslag)
  • Headern heter exakt x-api-key

"JSON parse error" i Code-noden

Claude svarade inte med giltigt JSON. Lösningar:

  • Gör prompten tydligare: "Svara ENDAST med JSON, ingen annan text"
  • Lägg till felhantering i Code-noden som hanterar oväntade svar

Leads kategoriseras fel

Din prompt behöver justeras. Var mer specifik om vad som utmärker hot/warm/cold för ditt företag. Testa med riktiga exempel och iterera.

Rate limits

Om du får många leads samtidigt kan du stöta på Anthropics rate limits. Lösningar:

  • Lägg till en liten delay mellan requests
  • Uppgradera din Anthropic-plan
  • Batchprocessa istället för realtid

Nästa steg

När grundflödet fungerar kan du bygga vidare:

Lägg till CRM-integration: Skapa kontakter direkt i HubSpot, Pipedrive eller liknande.

Bygg nurture-sekvenser: Koppla warm leads till en email-sekvens som skickar värdefull info över tid.

A/B-testa svar: Låt Claude generera två varianter och rotera vilken som skickas.

Analysera resultat: Koppla till ett dashboard som visar konverteringsrate per kategori.

Sammanfattning

Med n8n och Claude kan du:

  1. Ta emot leads automatiskt
  2. Låta AI kvalificera och kategorisera
  3. Skicka personliga svar utan manuellt arbete
  4. Fokusera din tid på hot leads

Det tog mig en eftermiddag att sätta upp första versionen. Finjusteringen av prompten tog lite längre (du lär dig vad som fungerar för just dina leads).

Men besparingen? Varje lead som kommer in hanteras på sekunder istället för att vänta i en inbox.


Vill du lära dig mer?

Behöver du hjälp att implementera? Läs mer om vår AI-utvecklingstjänst eller boka ett samtal så hjälper jag dig komma igång.

n8nClaudeautomationleadsAI-agentAPISynta

Gillade du artikeln?

Dela den med ditt nätverk

Relaterade artiklar

Behöver du hjälp med AI?

Vi hjälper företag implementera AI-lösningar som faktiskt fungerar. Boka ett kostnadsfritt samtal.

Boka konsultation

Cookies och spårning

Vi använder Google Analytics för besöksstatistik och Sentry för felspårning för att förbättra tjänsten. Analysdata skickas via vår egen domän. Detta kräver ditt samtycke. Läs mer i vår integritetspolicy