Dina kunddata berättar redan vilka som är på väg att churn:a. Problemet är att den är utspridd i ditt CRM, supportärenden och loggar för produktanvändning, så “signalen” syns först efter att kunden har försvunnit.
Customer Success Managers brukar känna av det här först. En growth lead som försöker flytta retention-mått känner det också. Och om du driver ett SaaS-bolag är automatiserad churn risk scoring skillnaden mellan att reagera på uppsägningar och att förebygga dem.
Det här arbetsflödet använder OpenAI för att poängsätta churn-risk, agerar automatiskt för konton med hög risk och loggar allt i Google Sheets så att du kan se vad som faktiskt fungerade. Du får veta vad det gör, hur flödet ser ut och vad du behöver se upp med när du sätter upp det.
Så fungerar automatiseringen
Här är hela arbetsflödet du kommer att sätta upp:
n8n Workflow Template: OpenAI + Google Sheets: upptäck churnrisk tidigt
flowchart LR
subgraph sg0["Schedule Trigger - 毎日03:00実行 Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger - 毎日03:00実行", 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/>対象顧客リスト取得 (CRM)"]
n2["<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/>サポートチケット情報取得"]
n3["<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/code.svg' width='40' height='40' /></div><br/>サポート指標集計"]
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/postgres.svg' width='40' height='40' /></div><br/>製品利用ログ取得"]
n5["<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/>データ統合 (CRM+サポート)"]
n6["<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/>データ統合 (全データ)"]
n7["<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/openAi.dark.svg' width='40' height='40' /></div><br/>AI解約リスク予測"]
n8@{ icon: "mdi:swap-horizontal", form: "rounded", label: "高リスク顧客フィルタ", 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/>特別オファー生成"]
n10["<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/code.svg' width='40' height='40' /></div><br/>オファー内容決定"]
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/openAi.dark.svg' width='40' height='40' /></div><br/>リテンションメール生成"]
n12@{ icon: "mdi:message-outline", form: "rounded", label: "リテンションメール送信", pos: "b", h: 48 }
n13@{ icon: "mdi:database", form: "rounded", label: "施策ログ保存", pos: "b", h: 48 }
n14@{ icon: "mdi:database", form: "rounded", label: "未更新ログ取得", pos: "b", h: 48 }
n15["<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/>メール開封状況取得"]
n16["<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/code.svg' width='40' height='40' /></div><br/>開封データ処理"]
n17@{ icon: "mdi:database", form: "rounded", label: "効果測定データ更新", pos: "b", h: 48 }
n18@{ icon: "mdi:database", form: "rounded", label: "30日経過レコード取得", pos: "b", h: 48 }
n19["<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/>顧客ステータス確認"]
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/code.svg' width='40' height='40' /></div><br/>継続状況判定"]
n21@{ icon: "mdi:database", form: "rounded", label: "最終結果更新", pos: "b", h: 48 }
n20 --> n21
n14 --> n15
n16 --> n17
n7 --> n8
n10 --> n11
n3 --> n4
n3 --> n5
n9 --> n10
n4 --> n6
n15 --> n16
n17 --> n18
n19 --> n20
n18 --> n19
n6 --> n7
n8 --> n9
n8 --> n14
n11 --> n12
n12 --> n13
n1 --> n2
n5 --> n6
n0 --> n1
n2 --> n3
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 n0 trigger
class n8 decision
class n4,n13,n14,n17,n18,n21 database
class n1,n2,n9,n15,n19 api
class n3,n10,n16,n20 code
classDef customIcon fill:none,stroke:none
class n1,n2,n3,n4,n5,n6,n7,n9,n10,n11,n15,n16,n19,n20 customIcon
Varför det här spelar roll: churn-signaler gömmer sig mitt framför ögonen
Churn kommer sällan från ingenstans. Det syns i små saker: färre inloggningar, ett supportärende med frustrerad ton, en intern champion som slutar svara eller ett användningsmönster som tyst sjunker vecka efter vecka. Men när ledtrådarna bor i olika verktyg fastnar du i den sämsta typen av arbete. Flikar överallt, anteckningar som kopieras in i dokument, beslut på “magkänsla” och outreach som kommer för sent. Även om du har en health score är den ofta inaktuell eftersom den bygger på att någon kommer ihåg att uppdatera den. Ärligt talat: när de flesta team väl enas om att ett konto är “i riskzonen” har kunden redan börjat titta på alternativ.
Friktionen bygger på sig. Här är var det faller isär i det dagliga arbetet.
- Att samla churn-kontext innebär att jonglera CRM, supportverktyg och databasexporter, vilket kan äta upp cirka 2 timmar en stressig dag.
- Riskgenomgångar hoppas över när teamet släcker bränder, så outreach blir reaktivt i stället för förebyggande.
- Rabatter och “rädda-kunden-erbjudanden” blir one-size-fits-all eftersom ingen hinner personalisera.
- Du kan inte bevisa vad som fungerade om utfall inte spåras på ett ställe, så varje kvartal börjar ni om med samma diskussion.
Vad du bygger: en AI-driven retention-motor som loggar allt
Det här arbetsflödet körs enligt schema (dagligen 03:00) och hämtar kundkontext från de platser som redan speglar churn-risk: dina CRM-poster, supportärendehistorik via API och produktanvändningshändelser från PostgreSQL. Det slår ihop dessa dataset till en “kundsnapshot”, och sedan analyserar OpenAI den samlade kontexten och returnerar en churn-riskpoäng som du faktiskt kan agera på. När poängen är hög (över 0,7 som standard) skapar automatiseringen ett retention-erbjudande (som en Stripe-kupong), utkastar ett personaliserat mejl med OpenAI och skickar det via Gmail. Varje åtgärd loggas i Google Sheets, och därefter följer flödet upp med mejlöppningar (via SendGrid) och verifierar retention efter cirka 30 dagar med CRM-data. Du får alltså både outreach och mätning, inte bara ännu en varning.
Arbetsflödet börjar med datainsamling från CRM, support och produktanvändning. Därefter gör OpenAI själva churn risk scoring-automationen och din logik filtrerar ut högriskkonton. Till sist genomför det rätt retention-åtgärd och håller en löpande revisionslogg i Google Sheets, inklusive öppningar och slutliga utfall.
Det här bygger du
| Vad som automatiseras | Vad du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att du har 200 aktiva kunder och att du går igenom “topp-riskerna” en gång i veckan. Manuellt kan det lätt ta cirka 10 minuter per konto att dra CRM-noteringar, skanna några supportärenden och kolla användning, så att granska ens 30 konton blir ungefär 5 timmar. Med det här arbetsflödet hämtar och slår den dagliga körningen ihop data automatiskt, OpenAI poängsätter risk och Google Sheets loggar resultaten medan du sover. På morgonen tittar du på en prioriterad lista och en historik över vilka mejl som gått ut, vilket vanligtvis tar 15 minuter att skumma igenom och fördela uppföljningar.
Innan du börjar
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- OpenAI API-nyckel för churn-poängsättning och generering av copy.
- Google Sheets för att lagra poäng, loggar och utfall.
- Gmail (Google Workspace) för att skicka retention-mejl.
- Stripe-konto för att skapa rabattkuponger.
- SendGrid-konto för spårning av mejlöppningar.
- PostgreSQL-åtkomst för loggar över produktanvändning.
- API:er för CRM + supportverktyg (hämta tokens i leverantörens utvecklarinställningar).
Kunskapsnivå: Medel. Du kopplar några konton och uppdaterar API-endpoints/SQL så att det matchar dina system.
Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).
Steg för steg
En schemalagd daglig körning startar allt. Arbetsflödet triggar 03:00 och börjar hämta din kundlista från CRM via HTTP-förfrågningar.
Support- och produktanvändningskontext hämtas in. Det hämtar senaste supportärenden via API, sammanfattar nyckeltal (som ärendevolym eller sentiment) med ett kodsteg och laddar användningshändelser från PostgreSQL så att du inte gissar baserat på “senaste kontakt”-anteckningar.
OpenAI tar fram en churn-riskpoäng som du kan routa på. Efter att sammanslagningen har skapat en enhetlig “kundprofil” utvärderar OpenAI sannolikheten för churn. Sedan kontrollerar en If-nod tröskeln (0,7 som standard) och skickar högriskkunder vidare i åtgärdsspåret, medan alla andra loggas för synlighet.
Retention-åtgärder sker, och allt spåras. Högriskkonton får ett erbjudande skapat (Stripe-kupong via HTTP-förfrågan), mejltexten utkastas med OpenAI och Gmail skickar. Google Sheets registrerar raden för kampanjen, och sedan hämtar uppföljningsnoder öppningsstatistik från SendGrid och verifierar senare retention-utfall efter cirka 30 dagar via CRM-status.
Du kan enkelt ändra risktröskeln så att den matchar din marknad och avtalsstorlek. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera schematriggern
Ställ in arbetsflödet att köras enligt ett återkommande schema för att hämta kunddata och utvärdera retentionstatus.
- Lägg till och öppna Scheduled Run Trigger.
- Ställ in intervallregeln så att den körs var 3:e timme.
- Koppla Scheduled Run Trigger till Fetch CRM Customers.
Steg 2: koppla CRM- och supportdatakällor
Hämta aktiva CRM-kunder och ta fram deras supportärenden för de senaste 30 dagarna.
- Konfigurera Fetch CRM Customers med URL satt till
https://api.your-crm.com/v1/customers. - Aktivera Send Query och ställ in frågeparametrar: status =
active, last_billing_days =30. - I Retrieve Support Tickets ställer ni URL till
{{ 'https://api.support-tool.com/v1/tickets?customer_id=' + $json.customer_id }}. - Säkerställ att Fetch CRM Customers skickar utdata till Retrieve Support Tickets i följd.
Steg 3: aggregera support- och produktanvändningsdata
Beräkna supportmått och hämta produktens användningsloggar, och kombinera sedan båda flödena.
- I Aggregate Support Metrics behåller ni den medföljande JavaScript-koden för att beräkna antal ärenden, CSAT och svarstider.
- Konfigurera Load Product Usage Logs med Operation satt till
executeQueryoch den angivna SQL-frågan. - Säkerställ att SQL:en använder uttrycket
{{ $json.customer_id }}i WHERE-villkoret. - Aggregate Support Metrics skickar utdata både till Load Product Usage Logs och Combine CRM & Support parallellt.
- Ställ in Combine CRM & Support till Mode =
combine, och koppla den sedan till Merge All Data Sets. - Ställ in Merge All Data Sets till Mode =
combineoch koppla den till AI Churn Risk Estimate.
Steg 4: konfigurera AI-baserad churn-poäng och offerlogik
Använd AI för att poängsätta churnrisk, filtrera kunder med hög risk och generera skräddarsydda erbjudanden.
- Öppna AI Churn Risk Estimate och behåll Resource satt till
chatCompletion. - I High Risk Filter Check ställer ni villkoret till Left Value =
{{ $json.churn_risk_score }}och Right Value =0.7med operatorngte. - Konfigurera Generate Promo Offer med URL
https://api.stripe.com/v1/coupons, MethodPOSToch Send Body aktiverat. - I Generate Promo Offer ställer ni in body-parametrar: percent_off =
{{ $json.mrr > 10000 ? 20 : 10 }}, duration =repeating, duration_in_months =3, id ={{ 'RETAIN_' + $json.customer_id + '_' + Date.now() }}. - Granska JavaScript-koden i Decide Offer Details för att sätta
offer_type,offer_valueochoffer_expire_at.
churn_risk_score finns i AI-svaret.Steg 5: skapa och skicka retention-mejl
Skapa personligt mejlinnehåll och skicka det via Gmail, och logga sedan kampanjen.
- I Craft Retention Email behåller ni Resource satt till
chatCompletionoch säkerställer att den returneraremail_subjectochemail_body_html. - Ställ in fälten i Dispatch Retention Email: Subject =
{{ $json.email_subject }}, Message ={{ $json.email_body_html }}. - Uppdatera vid behov alternativen i Dispatch Retention Email för BCC och Reply To.
- Konfigurera Append Campaign Log för att lägga till resultaten i ert kampanjspårningsark.
Steg 6: följ upp mejlöppningsmått och retentionutfall
Samla statistik för öppningar/klick, uppdatera mätvärden och utvärdera retention efter 30 dagar.
- Konfigurera Fetch Pending Logs för att läsa väntande kampanjposter från Google Sheets.
- I Get Email Open Stats ställer ni URL till
{{ 'https://api.sendgrid.com/v3/messages?msg_id=' + $json.email_provider_message_id }}. - Granska JavaScript-koden i Process Open Metrics för att sätta
email_opened,email_clickedochdelivery_status. - Konfigurera Update Metrics Sheet för att uppdatera ert mätvärdesark och koppla den sedan till Retrieve 30-Day Records.
- I Check Customer Status ställer ni URL till
{{ 'https://api.your-crm.com/v1/customers/' + $json.customer_id + '/status' }}. - Granska koden i Evaluate Retention Outcome för att sätta värden för
churned,retainedochupgraded. - Konfigurera Update Final Results för att uppdatera kalkylarket med slutliga utfall.
Steg 7: testa och aktivera ert arbetsflöde
Kör ett manuellt test för att validera dataflödet och aktivera sedan schemat.
- Klicka på Execute Workflow för att köra från Scheduled Run Trigger och observera hela flödet.
- Bekräfta att Generate Promo Offer skapar kuponger och att Dispatch Retention Email skickar meddelanden.
- Verifiera att Append Campaign Log och Update Metrics Sheet skriver till Google Sheets med nya rader/uppdateringar.
- Säkerställ att retentionutfallen skrivs av Update Final Results.
- Slå på arbetsflödet till Active för att aktivera schemalagda körningar.
Tips för felsökning
- Behörigheter i Google Sheets kan vara luriga. Om rader inte skrivs, kontrollera n8n-credentials för Google Sheets och bekräfta att arket är delat med det anslutna Google-kontot.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
- OpenAI-resultat beror starkt på din prompt. Lägg in din tonalitet och “tillåtna erbjudanderegler” tidigt, annars kommer du att redigera mejlutkast för alltid.
Snabba svar
Räkna med cirka 60 minuter om dina API:er och ditt ark är klara.
Nej, men lite SQL-redigering hjälper. Du kan ändå köra den genom att byta in enklare datakällor och behålla standardinställningarna.
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 volymer. Du behöver också räkna in kostnader för OpenAI API, som oftast är några cent per poängsatt kund beroende på din promptstorlek.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärt 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 tröskeln i High Risk Filter Check (0,7) så att den matchar din churn-verklighet, ersätta PostgreSQL-frågan för användning med din egen event-tabell och byta Gmail mot Slack om du vill ha CSM-driven outreach i stället för automatiserade mejl.
Oftast är det fel Google-konto eller saknad åtkomst till arket. Återanslut Google Sheets-credential i n8n, öppna sedan målarket och bekräfta att det är delat med samma konto. Om du skriver till ett skyddat område eller en omdöpt flik kan noden fallera även om autentiseringen är okej. Kontrollera också om dina kolumner har ändrats, eftersom det här arbetsflödet förväntar sig fält som customer_id, risk_score, offer_type, email_status och retention_result.
På en typisk n8n Cloud-plan är hundratals kunder per dag realistiskt. Om du self-hostar begränsas du främst av din server och API-rate limits från ditt CRM, supportverktyg och OpenAI.
Ofta, ja. Det här flödet har flera sammanslagningar, villkorliga vägar, uppföljningskontroller (öppningar och 30-dagars retention) och ett par steg med egen logik, vilket är där Zapier-scenarier kan bli dyra eller klumpiga. n8n ger dig också en self-host-väg, vilket spelar roll när du poängsätter många kunder dagligen. Med det sagt: om allt du vill ha är “ny rad i Sheets → skicka ett enkelt mejl” kan Zapier eller Make gå snabbare att få ut. Om du är osäker, prata med en automationsexpert så får du en rak rekommendation.
När det här väl rullar slutar churn-risk vara ett veckovist kaos och blir ett dagligt, spårbart system. Arbetsflödet tar hand om de repetitiva uppföljningarna så att teamet kan fokusera på samtalen som får kunder att stanna.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.