Den där stunden när din ”leadlista” i Google Sheets förvandlas till en rörig låda. CNPJ-raderna är halvifyllda, vissa är inaktuella och du fastnar med att jaga grundläggande saker som skatte-/registreringsstatus, adress och korrekt juridiskt namn.
Den här automatiseringen för CNPJ-berikning drabbar sales ops och growth marketers hårdast, om vi ska vara ärliga. En dataanalytiker som rensar en databas för segmentering känner också av det. Resultatet är enkelt: ditt ark går från ”kanske användbart” till ”redo att rikta” utan timmar av manuella uppslag.
Nedan ser du vad workflowet gör, varför det är tillförlitligt (det använder officiella data via MinhaReceita.org) och hur du implementerar det i n8n utan att göra det här till ett tekniskt projekt.
Så fungerar den här automatiseringen
Se hur den löser problemet:
n8n Workflow Template: Google Sheets + Telegram: berikade cnpj-listor
flowchart LR
subgraph sg0["Manual Launch Start Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Manual Launch Start", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Configure Variables", pos: "b", h: 48 }
n2@{ icon: "mdi:database", form: "rounded", label: "Retrieve Sheet CNPJs", pos: "b", h: 48 }
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Iterate CNPJ Batches", 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/>External API Fetch"]
n5@{ icon: "mdi:database", form: "rounded", label: "Modify Sheet Records", pos: "b", h: 48 }
n6@{ icon: "mdi:cog", form: "rounded", label: "Throttle Notifications", 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/telegram.svg' width='40' height='40' /></div><br/>Send Completion Alert"]
n1 --> n2
n3 --> n6
n3 --> n4
n4 --> n5
n2 --> n3
n0 --> n1
n5 --> n3
n6 --> n7
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 n2,n5 database
class n4 api
classDef customIcon fill:none,stroke:none
class n4,n7 customIcon
Utmaningen: CNPJ-listor som ser kompletta ut (men inte är det)
Om du någon gång har försökt göra outreach eller analys på brasilianska bolagsdata känner du igen fällan. Du börjar med en lista CNPJ i Google Sheets, och inser sedan att halva raderna saknar grunderna. Så du öppnar flikar, kopierar och klistrar in värden, normaliserar formatering och försöker minnas vilken källa du litade på senast. Multiplicera det med några hundra rader och det blir en hel eftermiddag. Ännu värre: de ”nästan rätt” raderna förstör tyst din targeting, eftersom du segmenterar på fält som är tomma eller inkonsekventa.
Det drar snabbt iväg. Här är var det faller isär i verkligheten:
- Folk klistrar in CNPJ-värden med skiljetecken, vilket gör att uppslag misslyckas eller matchar fel senare.
- Ett enda saknat fält (som situação cadastral) kan få dig att jaga fel bolag i veckor.
- Manuell berikning skapar ”egna” namnstandarder, så teamet kan inte filtrera pålitligt mellan listor.
- Det finns ingen tydlig slutpunkt, så jobbet ligger och skaver i bakgrunden och blir aldrig riktigt klart.
Lösningen: berika varje saknad CNPJ-rad automatiskt
Det här workflowet hämtar din CNPJ-lista från Google Sheets, kontrollerar vilka rader som fortfarande behöver berikas (det letar efter ett tomt razao_social-fält) och hämtar sedan officiella företagsdata från MinhaReceita.org API. När varje batch kommer tillbaka uppdaterar det ditt kalkylark med fälten du bryr dig om: juridiskt namn, handelsnamn, adress, status, CNAE, skatteregimdetaljer, partners (QSA) och mer. Du kopierar ingenting för hand. Du hoppar inte mellan flikar. Och du gissar inte vilken version av en företagspost som är ”den rätta”.
Workflowet startar med en manuell körning i n8n, så du kan trigga det när du är redo. Det bearbetar CNPJ i batchar (standard är 100), uppdaterar rader allt eftersom och skickar sedan en Telegram-bekräftelse när jobbet är klart. Den sista delen är viktigare än den låter. Den ger dig avslut, vilket gör att uppgiften faktiskt blir färdig.
Vad som ändras: före vs. efter
| Det här elimineras | Effekten du kommer att se |
|---|---|
|
|
Effekt i verkligheten
Säg att du ska berika en lista med 500 CNPJ inför en kampanj. Manuellt tar även en ”snabb” uppslag- och klistra in-cykel kanske 2 minuter per bolag när du räknar in att kopiera fält och rensa formatering, så du tittar på cirka 16 timmar monotont arbete. Med det här workflowet kör du det en gång, det hanterar 100 CNPJ per batch, uppdaterar arket löpande, och du väntar bara på Telegram-bekräftelsen. I praktiken landar du på några minuters uppsättning plus viss bearbetningstid i bakgrunden.
Krav
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- Google Sheets för källistan och uppdateringar
- Telegram för att ta emot bekräftelser när körningen är klar
- Google Sheets OAuth2 (konfigureras i n8n under credentials)
Kunskapsnivå: Nybörjare. Du kopplar Google Sheets och Telegram en gång och mappar sedan de kolumner du vill få ifyllda.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Workflow-flödet
Manuell körning från n8n. Du startar workflowet när du vill berika en ny batch rader. Det är användbart om ditt ark uppdateras oregelbundet, till exempel efter listköp eller nya importer av inkommande leads.
Hämta CNPJ från Google Sheets och filtrera det som saknas. Workflowet läser ditt ark och fokuserar bara på rader där razao_social är tomt, vilket innebär att det undviker att bearbeta poster du redan har berikat.
Batch-berikning via MinhaReceita.org. CNPJ bearbetas i chunkar (standard 100), och sedan hämtar en HTTP-request officiella fält som adress, registreringsstatus, CNAE, skatteval och partnerdata. Ett enkelt steg för att ”sätta fält” formar svaret till korrekt formaterade kolumner.
Skriv uppdateringar tillbaka till samma kalkylark och avisera dig. När resultaten kommer in uppdateras Google Sheets rad för rad, och en Telegram-bot skickar en klar-avisering efter ett strypt notifikationssteg för att hålla det prydligt.
Du kan enkelt ändra vilka kolumner som fylls i för att matcha dina segmenteringsregler, så att listan blir ”kampanjredo” istället för bara ”mer komplett”. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera den manuella triggern
Det här arbetsflödet startas manuellt och initierar sedan variabler som används i hela API- och notifieringsstegen.
- Lägg till noden Manual Launch Start som din trigger.
- Öppna Configure Variables och ställ in telegram_id till
YOUR_TELEGRAM_ID. - Ställ in api_base_url till
https://minhareceita.org/i Configure Variables.
YOUR_TELEGRAM_ID med ditt faktiska Telegram-chatt-ID, annars misslyckas slutförandealerten.Steg 2: Anslut Google Sheets
Hämta CNPJ:er från ett Google-kalkylark och förbered data för batchbearbetning.
- Öppna Retrieve Sheet CNPJs och välj målarket i documentId.
- Välj fliken i sheetName (exempel:
gid=0). - I Retrieve Sheet CNPJs, behåll filtret på lookupColumn inställt på
razao_socialom ni vill rikta in er på rader där detta fält finns. - Inloggning krävs: Anslut era googleSheetsOAuth2Api-uppgifter i Retrieve Sheet CNPJs.
- Inloggning krävs: Anslut era googleSheetsOAuth2Api-uppgifter i Modify Sheet Records.
cnpj-kolumn och att radnummer är tillgängliga för uppdateringar, annars kommer Modify Sheet Records att misslyckas med att matcha rader.Steg 3: Sätt upp batchbearbetning och API-hämtning
Bearbeta CNPJ-listan i batchar och hämta berikningsdata från det externa API:et.
- I Iterate CNPJ Batches ställer ni in batchSize till
100för att styra batchstorleken. - Konfigurera External API Fetch med url inställt på
={{ $('Configure Variables').item.json.api_base_url }}{{ $json.cnpj }}. - Notera körflödet: Iterate CNPJ Batches skickar ut till både Throttle Notifications och External API Fetch parallellt.
Steg 4: Konfigurera arkuppdateringar och notifieringar
Skriv tillbaka fält från API-svaret till arket och skicka en slutförandealert i Telegram.
- I Modify Sheet Records bekräftar ni att operation är inställt på
update. - Säkerställ att uppdateringsmappningarna inkluderar fält som uf, cep och logradouro med uttryck som
={{ $json.uf }}och={{ $json.logradouro }}. - Bekräfta att matchningskolumnen är row_number med uttrycket
={{ $('Iterate CNPJ Batches').item.json.row_number }}. - Behåll Throttle Notifications ansluten före alerten så att notifieringen skickas efter att bearbetningen är klar.
- I Send Completion Alert ställer ni in text till
=CNPJ info extraction complete!. - Ställ in chatId till
={{ $('Configure Variables').item.json.telegram_id }}i Send Completion Alert. - Inloggning krävs: Anslut era telegramApi-uppgifter i Send Completion Alert.
Steg 5: Testa och aktivera ert arbetsflöde
Kör ett manuellt test för att verifiera berikning och uppdateringar innan ni aktiverar arbetsflödet.
- Klicka på Execute Workflow från Manual Launch Start för att köra ett test.
- Verifiera att Modify Sheet Records uppdaterar rätt radfält (till exempel
uf,cep,municipio). - Bekräfta att ni får Telegram-meddelandet från Send Completion Alert.
- När testet är lyckat, slå på arbetsflödet Active för att aktivera det för produktion.
Se upp med
- Google Sheets-credentials kan löpa ut eller kräva specifika behörigheter. Om något slutar fungera: kontrollera n8n-skärmen Credentials och bekräfta att det anslutna Google-kontot fortfarande har redigeringsåtkomst till filen.
- Om du använder Wait-noder eller extern rendering varierar processtider. Öka väntetiden om efterföljande noder misslyckas på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att redigera utdata i all evighet.
Vanliga frågor
Cirka 30 minuter om ditt ark är redo.
Ja. Ingen kod, bara credential-setup och kolumnmappning.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volym. Du behöver också räkna in Telegram (gratis) och dina vanliga Google Workspace-kostnader, om du har några.
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.
Det går bra. De enklaste justeringarna finns i delarna ”Configure Variables” och ”Modify Sheet Records” i workflowet, där du bestämmer vilka kolumner som ska skrivas och hur de ska formateras. Vissa team lägger in hårda regler (berika bara om CNPJ är 14 siffror), andra utökar fältuppsättningen till att inkludera CNAE-beskrivningar, kommunkoder och skatteval som MEI/Simples. Om du vill ha en annan ”klar”-signal än razao_social, byt kontrollen till en annan kolumn som passar din process.
Oftast beror det på utgången OAuth2-åtkomst eller att Google-kontot inte längre har behörighet att redigera arket. Återanslut Google Sheets-credential i n8n, öppna sedan filen och bekräfta att delningen fortfarande är korrekt. Kontrollera också att spreadsheet-ID och worksheet-namn matchar det som workflowet förväntar sig, eftersom en omdöpt flik kan se ut som ett ”API-fel”.
Workflowet är byggt för batchbearbetning och har standard på 100 CNPJ per batch. I n8n Cloud beror kapaciteten på din plans månatliga körningar, och i self-hosted n8n beror det främst på dina serverresurser. I praktiken kör team ofta listor på några hundra till några tusen rader och schemalägger det sedan veckovis eller efter varje import.
Ofta, ja, eftersom jobbet gynnas av batchning, loopar och villkorliga uppdateringar, och n8n hanterar det utan att scenariot blir skört. Zapier och Make kan göra det, men kostnaderna drar iväg när du loopar genom hundratals rader, och felsökning av körningar med flera steg är inte roligt. Om du dessutom vill self-hosta för obegränsade körningar är n8n det självklara valet. Å andra sidan, om din berikningsvolym är minimal och du bara hanterar 20 rader åt gången, kan ett enklare verktyg kännas snabbare. Prata med en automationsexpert om du vill ha en rak rekommendation för din exakta setup.
När din CNPJ-lista berikar sig själv slutar kalkylarket vara en belastning och blir en tillgång. Du kommer att märka det nästa gång du segmenterar, delar ut leads eller gör en compliance-kontroll.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.