Visitkort känns ofarliga. Sedan kommer du hem från ett event med en bunt, mobilen är full av foton och ”jag lägger in dem senare” blir till tappade leads.
Säljteam brukar märka det här först. Men rekryterare och eventansvariga kör in i samma vägg. Den här visitkortsautomationen får in dina kontakter i Google Sheets snabbt, med färre stavfel och utan något kopiera-klistra-maraton.
Du laddar upp en kortbild, arbetsflödet extraherar uppgifterna med AI, rensar och strukturerar datan och lägger till en prydlig rad i ditt kalkylark (och sparar originalbilden i Google Drive som backup). Sedan blir uppföljningen den enkla delen.
Så fungerar automatiseringen
Här är hela arbetsflödet du kommer att sätta upp:
n8n Workflow Template: Google Drive till Google Sheets, visitkort till leads
flowchart LR
subgraph sg0["On form submission Flow"]
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/form.svg' width='40' height='40' /></div><br/>On form submission"]
n1@{ icon: "mdi:database", form: "rounded", label: "Add contact to tracking sheet", pos: "b", h: 48 }
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/code.svg' width='40' height='40' /></div><br/>Transform Output"]
n3@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser", pos: "b", h: 48 }
n4@{ icon: "mdi:brain", form: "rounded", label: "GPT4o", pos: "b", h: 48 }
n5@{ icon: "mdi:robot", form: "rounded", label: "Neural assistant for contact..", pos: "b", h: 48 }
n6@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Filter bad data", pos: "b", h: 48 }
n7@{ icon: "mdi:cog", form: "rounded", label: "Upload file", pos: "b", h: 48 }
n4 -.-> n5
n6 --> n1
n2 --> n6
n0 --> n5
n0 --> n7
n3 -.-> n5
n5 --> n2
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 n3,n5 ai
class n4 aiModel
class n6 decision
class n1 database
class n2 code
classDef customIcon fill:none,stroke:none
class n0,n2 customIcon
Varför det här spelar roll: visitkort ska inte bli bortglömda leads
Den verkliga kostnaden med visitkort är inte att trycka dem. Det är det som händer efter att du samlat in dem. Du tar foton i all hast, ljuset är dåligt och senare sitter du och kisar på pytteliten text medan du hoppar mellan kamerarullen, kontaktappen och ett kalkylark. En missad siffra i ett telefonnummer gör att en uppföljning aldrig når fram. Ett stavfel i en e-postadress gör att du tror ”de ghostade”, när du i praktiken mejlade ingen. Det är tråkigt jobb, så det skjuts upp. Och när det skjuts upp blir leads kalla.
Det går snabbt att bygga upp. Här är var det fallerar i verkligheten.
- Att skriva in 30 kort i ett ark kan lätt ta runt 2 timmar, och då är det innan du dubbelkollar efter misstag.
- Foton hamnar utspridda på telefoner och delade enheter, så du kan senare inte bevisa vad som stod på originalkortet.
- Teamet följer upp inkonsekvent eftersom det inte finns någon ”gemensam lista” som alla litar på.
- Även bra bokningsverktyg och CRM-system hjälper inte om steget för datainmatning fortfarande är manuellt.
Det du bygger: visitkortsfoton → strukturerade leads i Sheets
Det här arbetsflödet gör en enkel uppladdning till en leadpost som går att använda direkt. Det startar när någon skickar in ett formulär med en eller flera visitkortsbilder. Bilderna sparas direkt i en specifik Google Drive-mapp, så du har ett arkiv att gå tillbaka till senare. Därefter läser en AI-baserad kontaktutdragare varje kort med en bildkapabel modell (GPT‑4o i den här lösningen) och returnerar strukturerade fält som namn, företag, e-post och telefon. Sedan normaliserar ett kort steg för datarensning resultatet, tar bort konstiga tecken (som ”+” i telefonnummer) och tar bort tomma poster så att skräp inte smutsar ner ditt kalkylark. Till sist läggs felfria kontakter till som nya rader i Google Sheets, vilket ger dig en enda uppföljningslista som hela teamet kan jobba utifrån.
Arbetsflödet börjar med en trigger från ett formulär. Därifrån lagrar Google Drive bilderna medan AI bearbetar varje fil och levererar konsekvent JSON. Sista steget är enkelt: filtrera, rensa och lägg till raden i ditt Google Sheet.
Det du bygger
| Det som automatiseras | Det du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att du kommer hem från ett event med 40 kort. Manuellt, även med cirka 3 minuter per kort (öppna foto, skriva in fält, kontrollera igen), handlar det om runt 2 timmar datainmatning. Med det här arbetsflödet: kanske 5 minuter för att ladda upp fotona via formuläret, sedan väntar du medan AI bearbetar dem och arket fyller i sig självt. Du får tillbaka större delen av tiden, och listan är användbar samma dag.
Innan du börjar
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- Google Drive för att lagra kortbilder i en mapp.
- Google Sheets för att lagra rensade kontakter i rader.
- OpenAI API-nyckel (hämta den i din OpenAI API-dashboard)
Svårighetsnivå: Nybörjare. Du kopplar ihop Google- och OpenAI-konton och mappar sedan några fält till kolumnerna i ditt ark.
Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).
Steg för steg
En formulärinsändning sätter igång allt. Någon laddar upp en eller flera visitkortsbilder (JPG/PNG) via n8n:s formulärtrigger. Insändningen tar med filerna in i arbetsflödet, utan mejltrådar.
Bilderna lagras för att vara på den säkra sidan. Ett Google Drive-steg sparar varje uppladdad fil i en angiven mapp. Arkivet är viktigt när någon senare frågar: ”Vad stod det faktiskt på kortet?”
AI extraherar kontaktdata från varje bild. Agenten använder en bildkapabel modell (GPT‑4o här) för att läsa korttexten och returnera strukturerade fält. Sedan ser en parser för strukturerad output till att svaret blir förutsägbart, så att ”Namn” inte plötsligt dyker upp som ”Fullständigt namn” eller ”Kontaktperson”.
Datan normaliseras, filtreras och skrivs till Sheets. Ett Code-steg rensar vanliga formateringsproblem (telefonsymboler, lösa tecken) och filtret tar bort tomma eller värdelösa poster. Till sist lägger Google Sheets-noden till en ny rad i ditt kontaktark, redo för uppföljning och tilldelning.
Du kan enkelt justera vilka fält som extraheras så att det matchar ditt ark (eller framtida CRM-fält) utifrån dina behov. Se den fullständiga implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera formulärtriggern
Konfigurera formuläret som tar emot bilder på visitkort och startar arbetsflödet.
- Lägg till noden Form Submission Trigger och ställ in Form Title till
Name Card Uploader Form. - Ställ in Form Description till
Upload a photo of one or more business cards. Our system will automatically extract contact details, such as name, company, phone number, and email, and save them to your team’s Google Sheet for easy access and follow-up.. - I Form Fields, lägg till ett filfält med etiketten
Name Card Pictureoch ställ in Accept File Types till.jpg,.jpge,.png.
Steg 2: Anslut Google Drive och Google Sheets
Lagra de uppladdade bilderna och förbered destinationsarket för kontaktdata.
- Öppna Store File in Drive och ställ in Name till
={{ $now.toFormat("yyyyLLdd-HHmmss") }}-{{$binary.data.fileName}}. - Välj mål-Drive och mapp i Store File in Drive (ersätt
[YOUR_ID]med ert mapp-ID). - Inloggningsuppgifter krävs: Anslut era
googleDriveOAuth2Api-inloggningsuppgifter i Store File in Drive. - Öppna Append to Contact Sheet och ställ in Operation till
append. - Välj kalkylarket i Document ID och fliken i Sheet Name (ersätt
[YOUR_ID]med ert Sheet-ID). - Inloggningsuppgifter krävs: Anslut era
googleSheetsOAuth2Api-inloggningsuppgifter i Append to Contact Sheet.
Name, JobTitle, Company, Phone, Email, Website, Address och LinkedIn för att undvika mappningsproblem.Steg 3: Sätt upp AI-pipelinen för extrahering
Konfigurera AI-modellen och strukturerad tolkning för att extrahera kontaktuppgifter från de uppladdade bilderna.
- I OpenAI Vision Model, välj modellen
gpt-4o. - Inloggningsuppgifter krävs: Anslut era
openAiApi-inloggningsuppgifter i OpenAI Vision Model. - Öppna AI Contact Extractor och ställ in Text till
Extract all business contact details from this image of multiple name cards. Return full names, job titles, company names, phone numbers, email addresses, websites, office addresses, and any relevant information such as QR code content or social media links. Do not include decorative elements or branding.. - Bekräfta att AI Contact Extractor har Has Output Parser aktiverat och att Structured Data Parser är ansluten som dess output parser.
- I Structured Data Parser, behåll JSON Schema Example som angivet för att tvinga fram strukturerade outputs.
Steg 4: Normalisera, filtrera och lägg till kontakter
Rensa AI-utdata, ta bort tomma poster och lägg till giltiga kontakter i Google Sheets.
- I Normalize Contact Records, behåll JavaScript-koden som angivet för att mappa och rensa fält, inklusive normalisering av telefon och e-post.
- Konfigurera Filter Empty Contacts så att den släpper igenom poster där Left Value är
={{ $json.Name }}och villkoret ärnotEmpty. - Säkerställ att körflödet följer AI Contact Extractor → Normalize Contact Records → Filter Empty Contacts → Append to Contact Sheet.
Steg 5: Testa och aktivera ert arbetsflöde
Kör ett fullständigt test för att bekräfta att fillagring, AI-extrahering och uppdateringar i arket fungerar som förväntat.
- Klicka på Test Workflow och skicka in en testbild via formuläret Form Submission Trigger.
- Verifiera att filen visas i Google Drive med ett tidsstämplat namn från Store File in Drive.
- Kontrollera Google Sheet för att bekräfta att nya rader har lagts till av Append to Contact Sheet med ifyllda fält.
- När allt fungerar, slå på arbetsflödet till Active för att aktivera användning i produktion.
Felsökningstips
- Google Drive-autentisering kan gå ut eller behöva specifika behörigheter. Om det skapar fel, kontrollera först Google-kopplingen i n8n:s panel för Credentials och bekräfta sedan att målmappen fortfarande är åtkomlig.
- Om du använder Wait-noder eller extern rendering varierar behandlingstiderna. Öka väntetiden om noder längre ned misslyckas på grund av tomma svar.
- OpenAI-anrop kan misslyckas på grund av rate limits eller en ogiltig API-nyckel. Om AI Contact Extractor returnerar tomt, verifiera nyckeln, bekräfta att betalning är aktiv och testa en mindre batch-uppladdning.
Snabba svar
Cirka 30 minuter om dina Google- och OpenAI-konton är redo.
Nej. Du kopplar främst konton och mappar fält till ditt Google Sheet. Det inkluderade Code-steget är redan uppsatt för grundläggande rensning.
Ja. n8n har ett gratis alternativ för egen hosting 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 med OpenAI API-kostnader, som vanligtvis är små per kort men beror på bildstorlek och modell.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och hanterar n8n bra. Egen hosting ger dig obegränsat antal körningar men kräver grundläggande serveradministration.
Ja, och det borde du förmodligen. Du kan justera vad som extraheras genom att ändra prompten i AI Contact Extractor och sedan uppdatera Structured Data Parser så att den matchar dina fält. Vanliga justeringar är att lägga till ”Bransch” och ”Anteckningar”, fånga insändarens namn från formuläret och kräva minst en e-postadress innan du skriver till Google Sheets.
Oftast beror det på att OAuth-åtkomst gått ut eller att behörigheterna för Drive-mappen har ändrats. Anslut Google Drive på nytt i n8n och bekräfta sedan att arbetsflödet pekar på en mapp som ditt konto fortfarande äger eller kan redigera. Kontrollera också om din Google-administratör begränsar Drive-åtkomst för tredjepartsappar.
Mycket, så länge din OpenAI-användning och din n8n-plan hänger med. På n8n Cloud beror din månatliga körningsgräns på din plan, och varje uppladdat kort kan räknas som en körning (eller fler, beroende på batching). Om du kör med egen hosting finns ingen körningsgräns, men serverresurser och API:ets rate limits blir flaskhalsen. I praktiken kan de flesta små team hantera batchar från eventdagar (50–200 kort) utan problem när batching är intrimmat, och du märker snabbt om du behöver sakta ner loopen eller dela upp uppladdningarna.
Ofta, ja. n8n är enklare att bygga ut när du behöver filtrering, parsing och logik som ”skriv bara till Sheets om X finns”, och du kan köra med egen hosting för hög volym utan att oroa dig för att varje litet steg kostar mer. AI-baserad bildtolkning brukar också vara mer flexibel i n8n eftersom du kan forma strukturerade outputs och lägga till egen rensningskod. Zapier eller Make kan fortfarande fungera bra om du vill ha ett väldigt enkelt flöde och inte bryr dig om att arkivera bilder i Drive. Om du är osäker, prata med en automationsexpert och beskriv din volym och din uppföljningsprocess.
Du samlar in korten. Arbetsflödet gör dem automatiskt till en felfri leadlista. Det är, helt ärligt, skillnaden mellan ”trevligt snack” och ”stängd affär”.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.