Dina outreach-insatser faller sönder mellan springorna. En flik för prospektresearch, en annan för LinkedIn-smulor, en tredje för ditt sekvensverktyg – och ändå slutar du med att skicka ett ”personligt” mejl som låter som en mall.
SDR:er märker det först. Men en RevOps-ansvarig som försöker standardisera budskap och en grundare som gör sin egen outbound känner det också. Den här automatiseringen för MadKudu Outreach-mejl ger dig ett researchat förstakontakt-mejl och lägger automatiskt in prospektet i en sekvens.
Nedan ser du exakt vad arbetsflödet gör, vad du får ut på andra sidan och vad du behöver för att köra det utan att förvandla dagen till en felsökningssession.
Så fungerar automatiseringen
Hela n8n-flödet, från trigger till slutligt resultat:
n8n Workflow Template: MadKudu + Outreach: personliga mejl på nolltid
flowchart LR
subgraph sg0["When chat message received Flow"]
direction LR
n0@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Contact Exists?", pos: "b", h: 48 }
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Update Existing Prospect"]
n2@{ icon: "mdi:wrench", form: "rounded", label: "MadKudu MCP", pos: "b", h: 48 }
n3@{ icon: "mdi:play-circle", form: "rounded", label: "When chat message received", pos: "b", h: 48 }
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Outreach: Create New Prospect"]
n5@{ icon: "mdi:robot", form: "rounded", label: "Generate outreach email", pos: "b", h: 48 }
n6@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Model", pos: "b", h: 48 }
n7@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser", pos: "b", h: 48 }
n8@{ icon: "mdi:robot", form: "rounded", label: "MadKudu: Generate Account Br..", pos: "b", h: 48 }
n9["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Outreach: Check Existing Con.."]
n10@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Outreach Mailbox and Seq..", pos: "b", h: 48 }
n11["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Outreach: Get confirmation"]
n12@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If", pos: "b", h: 48 }
n13["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Outreach Submit batch Add to.."]
n14@{ icon: "mdi:cog", form: "rounded", label: "Wait", pos: "b", h: 48 }
n15@{ icon: "mdi:cog", form: "rounded", label: "No Operation, do nothing", pos: "b", h: 48 }
n16@{ icon: "mdi:robot", form: "rounded", label: "Information Extractor", pos: "b", h: 48 }
n17@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n18@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Contact ID", pos: "b", h: 48 }
n19@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Contact ID1", pos: "b", h: 48 }
n20["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Merge Outreach Prospect ID"]
n21["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Outreach: Get confirmation1"]
n12 --> n15
n12 --> n14
n14 --> n11
n2 -.-> n8
n2 -.-> n5
n6 -.-> n8
n6 -.-> n5
n18 --> n20
n0 --> n1
n0 --> n4
n19 --> n20
n17 -.-> n16
n16 --> n8
n5 --> n9
n7 -.-> n5
n1 --> n18
n20 --> n13
n11 --> n21
n3 --> n16
n21 --> n12
n4 --> n19
n8 --> n5
n9 --> n10
n10 --> n0
n13 --> n14
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n3 trigger
class n5,n7,n8,n16 ai
class n6,n17 aiModel
class n2 ai
class n0,n12 decision
class n1,n4,n9,n11,n13,n21 api
classDef customIcon fill:none,stroke:none
class n1,n4,n9,n11,n13,n20,n21 customIcon
Problemet: personalisering skalar inte när den är manuell
Bra outbound kräver kontext. Problemet är att ”kontext” oftast betyder fem olika verktyg, en halvt ihågkommen checklista och mycket gissningsskrivande. Du researchar kontot, plockar fram några fakta, försöker hitta något aktuellt (rekrytering, partnerskap, ny produkt), och sedan hoppar du in i Outreach och bygger upp samma upplägg om och om igen. En stressig dag tappar du inte bara tid. Du tappar konsekvens, och kvaliteten är det första som ryker när det blir press.
Det summerar snabbt. Här är var det fallerar i verkligheten.
- Du lägger cirka 10 minuter på att researcha ett prospekt och missar ändå den enda detaljen som hade gjort att öppningen träffar rätt.
- Att kopiera och klistra mellan researchanteckningar och Outreach leder till misstag, så fel företagsdetalj hamnar i fel mejl.
- Att lägga in prospekt i sekvens blir en separat adminuppgift, vilket gör att bra prospekt blir okontaktade i flera timmar.
- Teamets ”personalisering” glider mellan säljare, så chefer kan inte upprätthålla en konsekvent nivå utan tung granskning.
Lösningen: MadKudu-research + AI-mejl + Outreach-inläggning
Det här arbetsflödet gör ett enda input (ett prospekts e-postadress) till ett personligt mejl som är redo att skickas och en bekräftad inläggning i en sekvens i Outreach. Det startar när du skickar in en prospektadress via en n8n-chatttrigger, använder sedan MadKudu MCP-verktyg för att bygga en kontobrief med den typ av detaljer som säljare annars jagar manuellt (tech stack, rekryteringssignaler, partnerskap, kontaktkontext). Därefter genererar OpenAI flera mejlvinklar, väljer den bästa och formaterar den till ett strukturerat output så att du får något användbart – inte en rörig textklump. Till sist kontrollerar n8n prospektet i Outreach, uppdaterar eller skapar posten, skriver det genererade mejlet i ett anpassat fält, lägger in prospektet i din valda sekvens, väntar kort och verifierar att inläggningen lyckades.
Arbetsflödet börjar med ett enkelt mejlintag. MadKudu står för djupresearch och OpenAI står för skrivandet. Outreach får sedan prospektet uppdaterat och inlagt (sekvens-ID 781, mailbox-ID 51 som standard), så att uppföljningsmaskinen drar igång utan att du behöver röra en annan skärm.
Det här får du: automatisering vs. resultat
| Vad det här arbetsflödet automatiserar | Resultatet du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du skickar 20 nya outbound-mejl per dag. Manuellt, om research + utkast + skapa/lägga in i Outreach tar cirka 15 minuter per prospekt, är det ungefär 5 timmars arbete. Med det här flödet tar intaget cirka en minut, sedan väntar du medan MadKudu + OpenAI tar fram mejlet och n8n lägger in prospektet (inklusive 30 sekunders verifieringspaus). Du granskar fortfarande innan du skickar, men du granskar ett starkt utkast – inte en tom sida.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Self-hosting-alternativ om du föredrar det (Hostinger fungerar bra)
- MadKudu för konto- och kontaktberikning via research.
- Outreach för att uppdatera prospekt och lägga in sekvenser.
- OpenAI API-nyckel (hämta den i din OpenAI-dashboard).
Svårighetsgrad: Medel. Du klistrar in API-nycklar, sätter n8n-variabler och bekräftar OAuth-scopes i Outreach.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Prospektintaget sker i chatten. Du klistrar in en prospektadress via arbetsflödets chatttrigger (den kan också senare bytas mot en webhook, en schematrigger eller en CRM-styrd trigger).
MadKudu bygger researchbriefen. Flödet extraherar kontaktuppgifter och använder sedan MadKudu MCP-researchverktyg för att sammanställa kontosignaler och kontaktkontext som kan bära en riktig öppningsrad.
OpenAI skriver och väljer bästa vinkel. AI-agenten tar fram flera angreppssätt, väljer det mest relevanta och returnerar ett strukturerat output så att det är lätt att lagra och återanvända.
Outreach uppdateras och läggs in. n8n slår upp prospektet via e-post, uppdaterar en befintlig post eller skapar en ny, skriver utkastet i ett anpassat fält (custom49 som standard), lägger in dem i din sekvens (781), väntar cirka 30 sekunder och kontrollerar sedan inläggningsstatus.
Du kan enkelt ändra intagsmetoden och Outreach-konfigurationen efter dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera chatttriggern
Konfigurera startpunkten så att intressenter kan skicka in en e-postadress via chatt och starta workflowet.
- Lägg till och konfigurera Chat Intake Trigger som triggernod.
- Behåll standardalternativen för Chat Intake Trigger om ni inte behöver anpassade webhook-inställningar.
- Säkerställ att chattinmatningen innehåller kontaktadressen som används längre fram som
{{$json.chatInput}}.
Steg 2: Anslut OpenAI-modeller för extraktion och AI-uppgifter
Konfigurera OpenAI-språkmodellerna som används av extraktorn och de agentbaserade noderna.
- Öppna OpenAI Prompt Model och välj modellen
gpt-4.1-mini. - Inloggningsuppgifter krävs: Anslut era openAiApi-inloggningsuppgifter i OpenAI Prompt Model.
- Öppna OpenAI Chat Engine och välj modellen
gpt-4.1-mini. - Inloggningsuppgifter krävs: Anslut era openAiApi-inloggningsuppgifter i OpenAI Chat Engine.
- Bekräfta att OpenAI Prompt Model är ansluten som språkmodell för Extract Contact Details.
- Bekräfta att OpenAI Chat Engine är ansluten som språkmodell för både Build Account Brief och Compose Outreach Email.
Steg 3: Extrahera kontaktuppgifter och bygg forskningskontext
Extrahera e-postadressen från chattinmatningen och generera en research-brief för kontot innan ni skriver utkastet.
- I Extract Contact Details, ställ in Text till
= {{ $json.chatInput }}. - Behåll det obligatoriska attributet email (personens e-postadress) i Extract Contact Details.
- I Build Account Brief, ställ in Text till
=Use madkudu-account-brief-instructions with the domain of {{ $json.output.email }} to generate an account brief for this company.. - Bekräfta att MadKudu MCP Connector är ansluten som AI-verktyg för Build Account Brief och Compose Outreach Email.
- Verifiera att MadKudu MCP Connector har SSE Endpoint satt till
=https://mcp.madkudu.com/{{$vars.madkudu_api_key}}/sse.
$vars.madkudu_api_key. Säkerställ att denna variabel är satt i er n8n-miljö, annars kommer verktygsanropen att misslyckas.Steg 4: Skapa utkast till outreach-mejlet med strukturerad output
Generera det personanpassade mejlutkastet med research-kontexten och säkerställ strukturerad JSON-output.
- I Compose Outreach Email, behåll den långa prompten i Text som den är angiven och säkerställ att den refererar till
{{ $vars.my_company_domain }}och{{ $('Extract Contact Details').item.json.output.email }}. - Bekräfta att Compose Outreach Email har Has Output Parser aktiverat.
- Säkerställ att Structured Result Parser är ansluten som output-parser för Compose Outreach Email.
- Behåll JSON-schemaexemplet i Structured Result Parser oförändrat så att det matchar förväntad output.
Steg 5: Konfigurera uppslagning av prospect i Outreach samt logik för skapa/uppdatera
Kontrollera om prospecten redan finns i Outreach och uppdatera då posten, eller skapa en ny.
- I Lookup Outreach Prospect, ställ in URL till
=https://api.outreach.io/api/v2/prospects?filter[emails]={{ $('Chat Intake Trigger').item.json.chatInput }}. - Inloggningsuppgifter krävs: Anslut era oAuth2Api-inloggningsuppgifter i Lookup Outreach Prospect.
- I Assign Mailbox & Sequence, ställ in Outreach Mailbox ID to use till
51och Outreach Sequence ID to use till781. - I Prospect Presence Check, säkerställ att villkoret kontrollerar att
={{ $('Lookup Outreach Prospect').item.json.data.length }}är större än0. - I Refresh Existing Prospect, ställ in Method till
PATCHoch URL till=https://api.outreach.io/api/v2/prospects/{{ $('Lookup Outreach Prospect').item.json.data[0].id }}. - I Refresh Existing Prospect, ställ in Body så att den inkluderar det genererade mejlutkastet:
"custom49": "{{ $('Compose Outreach Email').item.json.output.email_draft[0].email }}". - Inloggningsuppgifter krävs: Anslut era oAuth2Api-inloggningsuppgifter i Refresh Existing Prospect.
- I Create Outreach Prospect, ställ in URL till
https://api.outreach.io/api/v2/prospectsoch inkludera e-post + utkast i body:"emails": ["{{ $('Chat Intake Trigger').item.json.chatInput }}"]och"custom49": "{{ $('Compose Outreach Email').item.json.output.email_draft[0].email }}". - Inloggningsuppgifter krävs: Anslut era oAuth2Api-inloggningsuppgifter i Create Outreach Prospect.
Steg 6: Lägg till i sekvens och övervaka batchens slutförande
Slå ihop prospect-ID:n, skicka in sekvensregistreringen och polla Outreach batchstatus tills den är klar.
- I Store Prospect ID, ställ in Outreach Prospect ID till
={{ $json.data.parseJson().data.id }}. - I Store Prospect ID 2, ställ in Outreach Prospect ID till
={{ $json.data.parseJson().data.id }}. - Behåll Merge Prospect Identifiers ansluten från både Store Prospect ID och Store Prospect ID 2.
- I Submit Sequence Enrollment, ställ in URL till
=https://api.outreach.io/api/v2/batches/actions/prospectsAddToSequenceoch mappa{{ $json['Outreach Prospect ID'] }},{{ $('Assign Mailbox & Sequence').item.json['Outreach Mailbox ID to use'] }}och{{ $('Assign Mailbox & Sequence').item.json['Outreach Sequence ID to use'] }}. - Inloggningsuppgifter krävs: Anslut era oAuth2Api-inloggningsuppgifter i Submit Sequence Enrollment.
- I Pause Execution, ställ in Amount till
30sekunder. - I Fetch Batch Status, ställ in URL till
=https://api.outreach.io/api/v2/batches/{{ $json.data.parseJson().data.id }}. - Inloggningsuppgifter krävs: Anslut era oAuth2Api-inloggningsuppgifter i Fetch Batch Status.
- I Retrieve Prospect Details, ställ in URL till
=https://api.outreach.io/api/v2/prospects/{{ $('Merge Prospect Identifiers').item.json['Outreach Prospect ID'] }}. - Inloggningsuppgifter krävs: Anslut era oAuth2Api-inloggningsuppgifter i Retrieve Prospect Details.
- I Completion Check, verifiera att villkoret jämför
={{ $json.data.attributes.state }}medfinished. - Behåll No-Op Placeholder som slutnod för tillståndet finished.
Steg 7: Testa och aktivera ert workflow
Validera workflowet end-to-end och aktivera det sedan för produktion.
- Klicka på Execute Workflow och skicka en testadress via Chat Intake Trigger.
- Verifiera att Extract Contact Details ger e-postadressen och att Compose Outreach Email returnerar ett strukturerat utkast.
- Bekräfta att antingen Refresh Existing Prospect eller Create Outreach Prospect körs baserat på Prospect Presence Check.
- Kontrollera att Submit Sequence Enrollment returnerar ett batch-ID och att Completion Check till slut når tillståndet
finished. - När ni är nöjda, slå om workflowet till Active för att köra i produktion.
Vanliga fallgropar
- Outreach OAuth-uppgifter kan löpa ut eller kräva specifika behörigheter. Om något slutar fungera, börja med att kontrollera scopes i din Outreach developer-app och status för credential-anslutningen i n8n.
- Om du använder Wait-noder eller extern bearbetning varierar timing. Det här flödet väntar 30 sekunder innan det kontrollerar inläggning, så höj det om statuskontrollen returnerar tomt.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet och konkreta ”vad vi gör”-detaljer tidigt (använd kontexten my_company_domain), annars kommer du att redigera output för alltid.
Vanliga frågor
Cirka 45 minuter om du redan har dina API-nycklar och adminåtkomst i Outreach.
Nej. Du kommer mest att kopiera in credentials i n8n och justera några fält som sekvens-ID och mailbox-ID.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna med OpenAI API-kostnader, som oftast är några cent per prospekt beroende på promptstorlek och researchdjup.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det bör du. Du kan ändra inläggning i sekvens genom att redigera värdena som sätts i noden ”Assign Mailbox & Sequence”, och sedan uppdatera inläggningsrequesten som skickas till Outreach (sekvens-ID 781 och mailbox-ID 51 är bara standardvärden). Om ditt team sparar utkast någon annanstans än i custom49, mappa det genererade mejlet till det fält du föredrar i prospektets create/update-request. Vanliga justeringar är att ändra mejlton, lägga till compliance-texter och generera en kortare första kontakt för segment med högre volym.
Oftast beror det på utgångna OAuth-uppgifter eller att scopes saknas i Outreach developer-appen. Återanslut Outreach-credential i n8n och bekräfta sedan att scopes som prospects.read, prospects.write och sequences.read är aktiverade. Om det bara fallerar vid inläggning, dubbelkolla att mailbox-ID och sekvens-ID finns i ditt Outreach-konto och att din användare har behörighet att lägga in prospekt.
Många, så länge dina API-begränsningar tillåter det.
Ofta, ja, eftersom det här flödet inte bara är ”skicka data från A till B”. Du gör research i flera steg, strukturerad parsing, villkorslogik (befintligt prospekt vs. nytt) och en verifieringsloop efter inläggning. n8n hanterar den typen av förgreningar snyggt, och self-hosting gör att du inte betalar per task när volymen sticker. Zapier eller Make kan fortfarande fungera om du förenklar flödet och hoppar över den djupare researchen och verifieringen. Om ditt team är splittrat kring verktyg, prata med en automationsexpert så stresstestar vi ditt konkreta use case.
När det här väl rullar tar flödet bort grovjobbet från din att-göra-lista och håller dina Outreach-sekvenser fulla. Ärligt talat är det svårt att gå tillbaka när du väl har haft en vecka med strukturerade utkast och direkt inläggning.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.