En ny kund kommer in och plötsligt kopierar du detaljer i tre olika verktyg, letar efter “rätt” uppgiftslista och hoppas att du inte missade kontraktssteget. Det blir rörigt. Och ärligt talat får det ditt företag att kännas mindre än det faktiskt är.
Byråägare känner det här när flera projekt startar samma vecka. En client success manager känner det när överlämningar är otydliga. Till och med en solokonsult fastnar med administration på kvällarna. Den här Asana–Slack-onboarding-automationen gör intake till ett körklart projekt och en aktiv Slack-kanal, utan stressen.
Nedan ser du hela workflowet, vad det löser och hur en “polerad kickoff” ser ut när den är upprepningsbar.
Så fungerar den här automationen
Hela n8n-workflowet, från trigger till slutresultat:
n8n Workflow Template: Asana + Slack: kundonboarding som sköter sig själv
flowchart LR
subgraph sg0["Flow 1"]
direction LR
n0["<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/webhook.dark.svg' width='40' height='40' /></div><br/>Receive Client Form"]
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/slack.svg' width='40' height='40' /></div><br/>Create Slack Channel"]
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/asana.svg' width='40' height='40' /></div><br/>Create Asana Project"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Get Template Sections"]
n4@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Sections", pos: "b", h: 48 }
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Create Section in New Project"]
n6@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Through Sections", pos: "b", h: 48 }
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/asana.svg' width='40' height='40' /></div><br/>Get Tasks from Template Sect.."]
n8["<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/asana.svg' width='40' height='40' /></div><br/>Add Task to New Project"]
n9@{ icon: "mdi:message-outline", form: "rounded", label: "Send Welcome Email with Cont..", pos: "b", h: 48 }
n10@{ icon: "mdi:cog", form: "rounded", label: "Wait for All Tasks", pos: "b", h: 48 }
n11@{ icon: "mdi:swap-vertical", form: "rounded", label: "Parse Client Data", pos: "b", h: 48 }
n12@{ icon: "mdi:cog", form: "rounded", label: "Get Contract Template", pos: "b", h: 48 }
n13@{ icon: "mdi:cog", form: "rounded", label: "Populate Contract with Clien..", pos: "b", h: 48 }
n14@{ icon: "mdi:cog", form: "rounded", label: "Download Contract as PDF", pos: "b", h: 48 }
n15@{ icon: "mdi:cog", form: "rounded", label: "Reset Template to Blanks", pos: "b", h: 48 }
n16@{ icon: "mdi:database", form: "rounded", label: "Log to Tracking Sheet", pos: "b", h: 48 }
n4 --> n6
n11 --> n2
n10 --> n12
n0 --> n11
n2 --> n3
n12 --> n13
n3 --> n4
n16 --> n1
n6 --> n10
n6 --> n5
n8 --> n6
n14 --> n9
n15 --> n16
n5 --> n7
n7 --> n8
n9 --> n15
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 n16 database
class n0,n3,n5 api
classDef customIcon fill:none,stroke:none
class n0,n1,n2,n3,n5,n7,n8 customIcon
Problemet: onboarding faller isär i glappen
Det här eskalerar snabbt, särskilt när du växer.
- Att skapa ett projekt, sektioner och uppgifter manuellt kan sluka ungefär en timme per kund, och det blir sällan konsekvent.
- Kontrakt försenas eftersom mallifyllningen och PDF-steget finns i någons huvud, inte i ett system.
- Slack-kanaler skapas ofta sent (eller får fel namn), så kontexten splittras mellan DM och mejltrådar.
- Utan en spårningssheet tappar du överblicken över vem som är onboardad, vad som skickats och vad som fortfarande behöver godkännas.
Lösningen: intake triggar ett komplett kickoff-paket
Det här workflowet startar i samma ögonblick som en ny kund-intake träffar din webhook. n8n tar rå payload (namn, e-post, företag, plan, startdatum, anteckningar) och normaliserar den så att varje efterföljande steg får korrekt formaterade fält. Sedan skapar det ett nytt Asana-projekt och använder din valda mallstruktur för att bygga sektionerna och koppla rätt uppgifter i batchar, så att du inte får ett halvtomt skelett. Därefter hämtar det en kontraktsmall från Google Docs, slår ihop kunduppgifterna, exporterar en PDF via Google Drive redo för signering och skickar välkomstmejlet via Gmail med kontraktet bifogat. Till sist uppdaterar det en tracker i Google Sheets och provisionerar en Slack-kanal så teamet har en enda plats att samordna från dag ett.
Workflowet börjar med webhook-intake och en snabb datastädning. Sedan skapar det Asana-projektet, expanderar mallen till sektioner och uppgifter och sammanställer resultat så att inget saknas. Efter det producerar det kontrakts-PDF:en, skickar välkomstmejlet, loggar allt i Google Sheets och spinner upp Slack-kanalen.
Det du får: automation vs. resultat
| Vad det här workflowet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du onboardar 5 nya kunder på en månad. Manuellt kanske du lägger cirka 20 minuter på att skapa Asana-projektet, ytterligare 30 minuter på att bygga sektioner och uppgifter, 15 minuter på att skapa kontrakts-PDF:en, 10 minuter på att skicka mejlet, plus 5 minuter på att uppdatera din tracker och skapa en Slack-kanal. Det är ungefär 80 minuter per kund, eller cirka 6–7 timmar i månaden. Med det här workflowet gör du intaket en gång (cirka 2 minuter) och väntar sedan medan det bygger allt åt dig.
Det här behöver du
- n8n-instans (prova n8n Cloud gratis)
- Self-hosting-alternativ om du föredrar det (Hostinger fungerar bra)
- Asana för att skapa projekt, sektioner och uppgifter.
- Slack för att provisionera en kanal per kund.
- Google Docs + Google Drive för att slå ihop och exportera kontrakts-PDF:er.
- Gmail för att skicka välkomstmejlet automatiskt.
- Google Sheets för att spåra onboardingstatus och metadata.
Svårighetsnivå: Medel. Du kopplar konton, mappar intake-fält och bekräftar att dina Asana- och Google-mallar matchar din process.
Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
En ny intake träffar din webhook. Workflowet startar när ditt formulär, CRM eller interna verktyg postar en ny kundpayload till n8n:s Incoming Intake Webhook.
Kunduppgifterna städas upp. n8n normaliserar payloaden (namn, e-post, plan, tidplan) så att dina Asana-projektnamn, kontraktsfält för sammanslagning och tracker-kolumner förblir konsekventa.
Ditt Asana-projekt skapas och fylls. Det genererar projektet, hämtar dina mallsektioner via HTTP-anrop, itererar igenom dem i batchar, skapar varje sektion, hämtar rätt uppgifter och kopplar dem sedan till det nya projektet.
Kontrakt, mejl, spårning och Slack sker automatiskt. Google Docs slår ihop kontraktsmallen, Google Drive exporterar en PDF, Gmail skickar välkomstmejlet, Google Sheets loggar onboardingen och Slack skapar kanalen så att arbetet kan börja direkt.
Du kan enkelt ändra sektionerna och reglerna för uppgifter för att matcha dina tjänstepaket eller kundtyper utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera webhook-triggern
Börja med att sätta upp den inkommande webhooken som tar emot intake-data från kunden och startar workflowet.
- Lägg till eller öppna Incoming Intake Webhook och ställ in HTTP Method på
POST. - Ställ in Path på
client-onboardför att generera webhook-URL:en för produktion. - Verifiera att Incoming Intake Webhook är kopplad direkt till Normalize Client Payload på canvasen.
Steg 2: Anslut Asana
Dessa noder skapar onboarding-projektet, replikerar mallsektioner och lägger till malluppgifter för varje kund.
- Öppna Generate Asana Project och ställ in Name på
={{ $json.primary_contact_name }} Onboarding, ersätt sedan Team med[YOUR_TEAM_ID]och Workspace med[YOUR_WORKSPACE_ID]. - Inloggningsuppgift krävs: Anslut era Asana OAuth2-inloggningsuppgifter i Generate Asana Project, Retrieve Section Tasks och Attach Tasks to Project.
- I Fetch Template Sections, ställ in URL på
=https://app.asana.com/api/1.0/projects/[YOUR_ID]/sectionsoch välj Authentication sompredefinedCredentialTypemed Node Credential TypeasanaOAuth2Api. - Inloggningsuppgift krävs: Anslut era Asana OAuth2-inloggningsuppgifter i Fetch Template Sections och Create Project Section (båda använder
asanaOAuth2Api). - I Create Project Section, ställ in URL på
=https://app.asana.com/api/1.0/projects/{{ $('Generate Asana Project').item.json.gid }}/sectionsoch JSON Body på={ "data": { "name": "{{ $json.name }}" } }. - I Retrieve Section Tasks, ställ in Operation på
getAlloch säkerställ att Section använder={{ $('Iterate Sections Batch').item.json.gid }}. - I Attach Tasks to Project, ställ in ID på
={{ $json.gid }}och Project på={{ $('Create Project Section').item.json.data.project.gid }}, med Section satt till={{ $('Create Project Section').item.json.data.gid }}.
[YOUR_ID], [YOUR_TEAM_ID] och [YOUR_WORKSPACE_ID] med riktiga Asana-ID:n, annars kommer anropen för att skapa projekt och sektioner att misslyckas.Steg 3: Konfigurera normalisering av kunddata och iterering av sektioner
Detta steg omvandlar intake-payloaden till konsekventa fält och loopar igenom Asana-mallsektioner för att bygga projektstrukturen.
- Öppna Normalize Client Payload och bekräfta att varje fält mappar till inkommande payload, till exempel legal_business_name till
={{ $json.body.legal_business_name }}och primary_contact_email till={{ $json.body.primary_contact_email }}. - Verifiera att Fetch Template Sections är kopplad till Expand Section Items, med Field to Split Out satt till
data. - Säkerställ att Expand Section Items är kopplad till Iterate Sections Batch, som sedan kopplas till Create Project Section och loopar via Retrieve Section Tasks → Attach Tasks to Project → Iterate Sections Batch.
- Bekräfta att Iterate Sections Batch också är kopplad till Aggregate Task Results så att workflowet kan fortsätta efter att alla batchar har bearbetats.
Steg 4: Konfigurera avtalsdokument och e-postleverans
När projektet har skapats sammanfogar workflowet kunduppgifter i ett Google Docs-avtal, laddar ner en PDF, skickar välkomstmejlet och återställer mallen.
- I Load Contract Template, ställ in Operation på
getoch Document URL på[YOUR_TEMPLATE_DOCUMENT_ID]. - Inloggningsuppgift krävs: Anslut era Google Docs-inloggningsuppgifter i Load Contract Template, Merge Client Details och Reset Contract Template.
- I Merge Client Details, granska ersättningsåtgärderna såsom
=Effective Date: {{ $now.format('DD') }}och=Client: {{ $('Normalize Client Payload').item.json.primary_contact_name }}för att säkerställa att platshållarna matchar er mall. - Öppna Download Contract PDF och ställ in File ID på
={{ $json.documentId }}. - Inloggningsuppgift krävs: Anslut era Google Drive-inloggningsuppgifter i Download Contract PDF.
- I Dispatch Welcome Email, ställ in Send To på
={{ $('Normalize Client Payload').item.json.primary_contact_email }}och bekräfta att Subject använder=Welcome to Your Onboarding Project {{ $('Normalize Client Payload').item.json.primary_contact_name }} 🎉. - Inloggningsuppgift krävs: Anslut era Gmail-inloggningsuppgifter i Dispatch Welcome Email.
- Granska Reset Contract Template för att säkerställa att platshållarna återställs till standardvärden, till exempel att ersätta
=Effective Date: {{ $now.format('DD') }}tillbaka till=Effective Date-.
Steg 5: Konfigurera spårning och Slack-provisionering
När mejlet har skickats loggar workflowet kunduppgifter i Google Sheets och provisionerar valfritt en Slack-kanal.
- I Update Tracking Sheet, ställ in Operation på
appendOrUpdate, Document ID på[YOUR_TRACKING_SPREADSHEET_ID]och Sheet Name pågid=0. - Bekräfta att kolumnmappningen använder uttryck som
={{ $('Normalize Client Payload').item.json.brand_name }}och={{ $('Normalize Client Payload').item.json.terms_fees }}. - Inloggningsuppgift krävs: Anslut era Google Sheets-inloggningsuppgifter i Update Tracking Sheet.
- I Provision Slack Channel, ställ in Resource på
channeloch uppdatera Channel ID till[YOUR_ID]. - Inloggningsuppgift krävs: Anslut era Slack-inloggningsuppgifter i Provision Slack Channel.
[YOUR_ID] med ett dynamiskt steg för att skapa kanal före Provision Slack Channel.Steg 6: Testa och aktivera ert workflow
Kör ett fullständigt end-to-end-test för att bekräfta projektskapande, dokumentgenerering, e-postleverans och uppdateringar i spårningen.
- Klicka på Execute Workflow och skicka en exempel-POST-förfrågan till Incoming Intake Webhook test-URL med fält som matchar payloaden som förväntas av Normalize Client Payload.
- Verifiera att ett Asana-projekt skapas, att sektioner och uppgifter läggs till och att Aggregate Task Results slutförs innan Load Contract Template körs.
- Bekräfta att avtals-PDF:en laddas ner, att välkomstmejlet skickas från Dispatch Welcome Email och att Google-arket uppdateras av Update Tracking Sheet.
- När allt fungerar, växla workflowet till Active för att använda webhook-URL:en för produktion.
Vanliga fallgropar
- Asana-inloggningar kan löpa ut eller kräva specifika behörigheter. Om något skapar fel, kontrollera först din personliga åtkomsttoken i Asana och inställningarna för åtkomst till workspace.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om noder längre fram misslyckas på grund av tomma svar.
- Google Docs-mallar är känsliga för merge-fält. Om kontrakts-PDF:en har tomma ytor, bekräfta att platshållartexten i mallen exakt matchar dina mappade fält.
Vanliga frågor
Cirka en timme om dina mallar redan är förberedda.
Nej. Du kopplar främst konton och mappar fält från ditt intake till Asana, Google och Slack.
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å Google Workspace (Docs/Drive) samt de Slack/Asana-planer som ditt team redan använder.
Två alternativ: n8n Cloud (hanterat, enklast setup) 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 serveradministration.
Ja, och det bör du. De flesta team duplicerar källan “Fetch Template Sections” och justerar vilka sektioner/uppgifter som skapas baserat på plantyp, och finjusterar sedan Google Docs merge-fält så att de matchar kontraktstexten för varje paket. Du kan också ändra namnregler i Slack (kundnamn, kundnamn-kickoff osv.) och bestämma vem som bjuds in som standard. Om du vill kan du lägga till ett godkännandesteg med en If-nod så att högvärdeskunder får en manuell granskning innan mejl går ut.
Oftast beror det på en utgången token eller saknade behörigheter i workspace. Skapa en ny Asana-token och välj sedan om workspace-/projektfälten i Asana-noderna så att n8n uppdaterar referenserna. Om du skapar många sektioner och uppgifter samtidigt kan rate limits också orsaka sporadiska fel, så batchning (som det här workflowet gör) är viktigt.
Många, så länge du batchar skapandet av uppgifter och dina verktyg tillåter det.
Ofta ja, för onboarding i flera steg. Det här workflowet är inte bara “skapa ett projekt” och “skicka ett Slack-meddelande”; det itererar igenom sektioner, hämtar uppgifter, sammanställer resultat, genererar ett kontrakt och uppdaterar sedan en tracker. n8n hanterar förgrening och batchning snyggt, och self-hosting betyder att du inte betalar mer bara för att du onboardar fler kunder. Zapier och Make kan fortfarande vara bra om du vill ha ett enklare flöde med färre rörliga delar och ett väldigt guidat gränssnitt. Prata med en automationsexpert om du vill ha hjälp att välja.
När det här är live slutar onboarding vara en liten brandövning. Workflowet tar hand om den repetitiva uppstarten så att du kan fokusera på det faktiska kundarbetet.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.