Du avslutar ett event, och sedan börjar det riktiga jobbet. Bilder kommer in från alla håll, namn saknas, och du slutar med att gräva i mappar med “IMG_3928.jpg” medan någon frågar: “Kan du skicka mig bilderna från välkomstbordet?”
Eventmarknadsförare känner av det här först. Men community managers som jagar UGC och byråteam som levererar recap-inlägg hanterar samma röra. Den här automationen för taggning av eventbilder gör varje uppladdning till en sökbar rad, med taggar och en direktlänk, så att du slutar leta och börjar publicera.
Det här flödet samlar in bilder via ett enkelt formulär, kategoriserar dem med AI, lagrar dem i Google Drive och loggar allt i Google Sheets. Du får se hur det fungerar, vad du behöver och var team oftast kör fast.
Så fungerar automationen
Se hur detta löser problemet:
n8n Workflow Template: Google Drive till Google Sheets: taggade eventfoton
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:swap-vertical", form: "rounded", label: "Files to Items", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "Get File Meta", pos: "b", h: 48 }
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/merge.svg' width='40' height='40' /></div><br/>Merge"]
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/>Classify Photo and Suggest T.."]
n5@{ icon: "mdi:swap-vertical", form: "rounded", label: "Extract Categories", pos: "b", h: 48 }
n6@{ icon: "mdi:cog", form: "rounded", label: "Upload file", pos: "b", h: 48 }
n7@{ icon: "mdi:cog", form: "rounded", label: "Resize Image", pos: "b", h: 48 }
n8@{ icon: "mdi:cog", form: "rounded", label: "Get Image Info", 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/merge.svg' width='40' height='40' /></div><br/>Merge1"]
n10@{ icon: "mdi:swap-vertical", form: "rounded", label: "Create Payload", pos: "b", h: 48 }
n11@{ icon: "mdi:cog", form: "rounded", label: "Convert Image to Base64", pos: "b", h: 48 }
n12@{ icon: "mdi:database", form: "rounded", label: "Append to Sheet", pos: "b", h: 48 }
n3 --> n4
n9 --> n10
n6 --> n9
n7 --> n11
n2 --> n3
n10 --> n12
n1 --> n2
n1 --> n8
n1 --> n6
n8 --> n7
n5 --> n9
n0 --> n1
n11 --> n3
n4 --> n5
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 n12 database
class n4 api
classDef customIcon fill:none,stroke:none
class n0,n3,n4,n9 customIcon
Utmaningen: eventbilder blir ett osökbart kaos
På de flesta event är det enkelt att samla in bilder. Det är organiseringen som tar tid. Gäster laddar upp filer i slumpmässiga format, fotografer skickar stora batcher sent, och du står där med en Drive-mapp som tekniskt sett innehåller allt men praktiskt sett inte innehåller något du snabbt kan använda. Sedan kommer önskemålen: “Har vi några bilder på keynote-talaren?” “Har vi shots där sponsorer syns i bild?” “Kan vi plocka ut ett set som känns ‘nätverkande’ för LinkedIn?” Du kan göra det manuellt, men det går långsamt, det blir lätt fel, och det tar exakt den energi du behöver för publicering och uppföljning.
Det summerar snabbt. Här är var flödet brukar fallera för de flesta team när allt är manuellt.
- Någon måste öppna dussintals (eller hundratals) bilder bara för att förstå vad de innehåller.
- Filnamn betyder ingenting, så sökningar misslyckas och folk börjar skapa dubblettmappar.
- Delning blir rörig eftersom länkar är utspridda i chattar, e-posttrådar och Drive-kommentarer.
- När bilderna väl är organiserade har sociala fönstret redan svalnat.
Lösningen: tagga bilder automatiskt och logga dem i Sheets
Det här n8n-flödet ger dig en strukturerad ingång för bilder och gör sorteringsjobbet medan du går vidare till uppgifter med högre värde. Gäster (eller personal) laddar upp bilder via ett formulär. Flödet delar varje uppladdning i två parallella spår: ett spår förbereder bilden för AI genom att inspektera den, skala om den och konvertera den till rätt payload; det andra spåret kopierar originalfilen till Google Drive så att du alltid har en sparad referens. Därefter kategoriserar en vision-kapabel modell bilden utifrån en definierad tagglista, och n8n slår ihop AI-resultatet med Drive-länken. Till sist lägger flödet till en rad i Google Sheets så att varje bild blir sökbar, filtrerbar och enkel att dela.
Flödet startar med en formulärtrigger för uppladdningar. I mitten optimerar det bilder och skickar dem till en AI-kategoriserare via HTTP Request (exemplet använder Featherless.ai för förutsägbara kostnader). Det avslutas med en Google Sheets-rad som innehåller taggar och Google Drive-länken.
Vad som förändras: före vs. efter
| Det här tar bort | Effekten du märker |
|---|---|
|
|
Effekt i verkligheten
Säg att du driver en månadsvis meetup och samlar in 150 deltagarbilder. Manuellt kan även en snabb rutin med “öppna, förstå, byt namn eller anteckna, arkivera, klistra in länk” ta cirka 1 minut per bild, så du tappar ungefär 2–3 timmar bara på organisering. Med det här flödet är uppladdningen densamma för gästerna, och ditt “jobb” blir att kolla Google Sheet och filtrera på taggar som “scen”, “publik” eller “sponsor”. I praktiken lägger team oftast runt 20 minuter på kurering i stället för timmar på sortering.
Krav
- n8n-instans (prova n8n Cloud gratis)
- Self-hosting-alternativ om du föredrar det (Hostinger fungerar bra)
- Google Drive för att lagra uppladdade eventbilder.
- Google Sheets för att logga taggar och fillänkar.
- Featherless.ai API-uppgifter (hämta dem från din Featherless-dashboard)
Kunskapsnivå: Nybörjare. Du kopplar konton, klistrar in en API-nyckel och justerar några fältnamn.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Flödet steg för steg
En gäst laddar upp bilder via ditt formulär. Form Intake Trigger samlar in filer från mobiler eller laptops, så du slipper jaga nedladdningar i e-posttrådar.
Uppladdningen delas upp i enskilda bilder. Om någon skickar fem bilder samtidigt behandlar n8n dem som separata objekt så att varje bild får egna taggar, egen Drive-fil och en egen rad i Sheet.
Bilder optimeras för AI och kategoriseras. Flödet inspekterar och skalar bilden (mindre payloads är snabbare och billigare), konverterar filen till förväntat request-format och skickar den sedan till AI Photo Categorizer via HTTP Request. Svaret parsas till en strukturerad kategorilista som du kan filtrera på senare.
Originalfilen lagras och sedan loggas allt. Parallellt kopieras bilden till Google Drive. n8n slår ihop Drive-länken med kategoriutdata, bygger en record-payload (taggar, metadata, länk) och lägger till den i Google Sheets.
Du kan enkelt ändra tagglistan och kolumnerna i målkalkylarket så att de matchar ert publiceringsflöde. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-implementeringsguide
Steg 1: Konfigurera formulärtriggern
Konfigurera formuläret som samlar in fotouppladdningar och grundläggande uppgifter om inskickaren.
- Lägg till och öppna Form Intake Trigger.
- Ställ in Form Title på
Photo Uploads. - Ställ in Form Description på
Upload your photos and we'll categorise them for you!. - I Form Fields lägger ni till ett obligatoriskt textfält med etiketten
Nameoch ett obligatoriskt filfält med etikettenFiles, där Accept File Types är satt tilljpg,png. - Under Options bekräftar ni att Button Label är
Upload, att Ignore Bots är aktiverat och att Append Attribution är inaktiverat.
Steg 2: Dela upp och förbered bildfiler
Dela upp flera uppladdningar och förbehandla bilder för AI-analys, samtidigt som metadata behålls för efterföljande steg.
- Lägg till Split File Items och ställ in Field To Split Out på
$binary. - Koppla Form Intake Trigger till Split File Items.
- I Inspect Image Details ställer ni in Operation på
informationoch Data Property Name på=Files_{{ $itemIndex }}. - I Scale Image Size ställer ni in Operation på
resize, Width på={{ $json.size.width > 512 ? 512 : $json.size.width }}, Height på={{ $json.size.width > 512 ? (512/$json.size.width) * $json.size.height : $json.size.height }}och Data Property Name på=Files_{{ $itemIndex }}. - I Convert Image Payload ställer ni in Operation på
binaryToProperyoch Binary Property Name på=Files_{{ $itemIndex }}. - I Fetch File Metadata ställer ni in Mode på
rawoch JSON Output på={{ $binary[$binary.keys()[0]] }}.
Split File Items skickar output parallellt till Fetch File Metadata, Inspect Image Details och Store File in Drive.
Steg 3: Slå ihop strömmar och klassificera bilder med AI
Slå ihop den skalade bild-payloaden och filmetadata, och skicka sedan bilden till AI-klassificeraren.
- Koppla Inspect Image Details → Scale Image Size → Convert Image Payload.
- Lägg till Combine Streams och ställ in Mode på
combineoch Combine By påcombineByPosition. - Koppla Convert Image Payload till Combine Streams (Input 1) och Fetch File Metadata till Combine Streams (Input 2).
- Öppna AI Photo Categorizer och ställ in URL på
https://api.featherless.ai/v1/chat/completions, Method påPOSToch JSON Body på={ "model": "google/gemma-3-27b-it", "messages": [ { "role": "user", "content": [ { "type": "image_url", "image_url": { "url": "data:{{ $json.mimeType }};base64,{{ $json.data }}" } }, { "type": "text", "text": "Classify the image into one or more of following categories:Group Shot,Candid,Smiles,Food & Drink,Decorations,Fun,Laughter,Music,Dance Floor,Conversations,Networking,Toasting,Activity,Portrait,Venue,Best Dressed,Selfie,Cheers,Memories. If none of these categories apply, return \"Uncategorised\". Output your response as a comma-limited list only. Do not explain your reasoning." } ] } ] }. - Koppla Combine Streams till AI Photo Categorizer.
- Credential Required: Koppla era featherlessApi-inloggningsuppgifter i AI Photo Categorizer. Om ert konto använder en header-nyckel, koppla även httpHeaderAuth.
Steg 4: Tolka kategorier och lagra filer
Konvertera AI-svaret till en lista och lagra sedan originalfilen i Google Drive.
- I Parse Category List lägger ni till en tilldelning med namnet
categoriesoch värdet={{ $json.choices[0].message.content.split(',') }}. - Koppla AI Photo Categorizer till Parse Category List.
- I Store File in Drive ställer ni in Name på
=[ $('Form Intake Trigger').item.json.Name, '_', $execution.id, '_', $itemIndex, '.', $binary[$binary.keys()[0]].fileName.split('.')[1] ].join(''). - Ställ in Input Data Field Name på
=Files_{{ $itemIndex }}. - Välj mål-Drive och Folder i Store File in Drive.
- Credential Required: Koppla era googleDriveOAuth2Api-inloggningsuppgifter i Store File in Drive.
Steg 5: Slå ihop resultat och logga till Google Sheets
Kombinera Drive-filens länk med kategorilistan, bygg en record-payload och lägg till den i ett kalkylark.
- Ställ in Join Results till Mode
combineoch Combine BycombineByPosition. - Koppla Store File in Drive till Join Results (Input 2) och Parse Category List till Join Results (Input 1).
- I Assemble Record Payload lägger ni till tilldelningar: url
={{ $json.webViewLink }}, catergories={{ $json.categories }}, submittedBy={{ $('Form Intake Trigger').first().json.Name }}, submittedAt={{ $('Form Intake Trigger').item.json.submittedAt.toDateTime().toISO() }}, filename={{ $json.name }}. - I Append Row to Sheet ställer ni in Operation på
appendoch mappar kolumner: url={{ $json.url }}, filename={{ $json.filename }}, categories={{ $json.catergories.map(x => x.trim()).join(',') }}, submittedAt={{ $json.submittedAt }}, submittedBy={{ $json.submittedBy }}. - Välj mål-Document och Sheet i Append Row to Sheet.
- Credential Required: Koppla era googleSheetsOAuth2Api-inloggningsuppgifter i Append Row to Sheet.
⚠️ Vanlig fallgrop: Fältnamnet catergories i Assemble Record Payload är avsiktligt felstavat för att matcha den efterföljande mappningen – om ni ändrar det kommer mappningen i Append Row to Sheet att sluta fungera.
Steg 6: Testa och aktivera ert workflow
Verifiera workflowet från början till slut innan ni slår på det för produktionsanvändning.
- Klicka på Execute Workflow och öppna test-URL:en för Form Intake Trigger.
- Skicka in ett testnamn och en eller flera
jpg- ellerpng-bilder. - Bekräfta att körningen lyckas: en fil skapas av Store File in Drive, kategorier returneras av AI Photo Categorizer och en ny rad läggs till av Append Row to Sheet.
- När ni är nöjda, växla workflowet till Active för produktionsanvändning.
Se upp för
- Google Drive-inloggningar kan löpa ut eller kräva specifika behörigheter. Om något slutar fungera: kontrollera först status på n8n-credentialn och åtkomsten till Drive-mappen.
- Om din AI-inferens är långsam (stora event, instabilt nätverk eller en hårt belastad modell) kan HTTP Request timea ut. Öka timeout för requesten och ha bildskalning aktiverad så att payloads håller rimlig storlek.
- Tagglistan är hela grejen. Är den för bred blir allt bara “event” och “personer”. Är den för detaljerad blir resultaten inkonsekventa. Håll den kort och tydlig och finjustera efter ett event.
Vanliga frågor
Cirka 30 minuter om dina Google-konton och AI-uppgifter är klara.
Ja. Du behöver inte skriva kod, men du kopplar Google Drive/Sheets och klistrar in en API-nyckel i n8n.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod i n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volym. Du behöver också räkna med kostnader för AI-inferens (Featherless.ai är prenumerationsbaserat med obegränsade tokens, vilket kan sätta ett tak för kostnaden om du processar många bilder).
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 obegränsade körningar men kräver grundläggande serveradministration.
Du kan ändra taggar och utdatafält utan att skriva om flödet. De flesta team börjar med att uppdatera AI Photo Categorizer-requesten (HTTP Request-noden) med en mer avgränsad tagglista och justerar sedan fälten i Assemble Record Payload så att Sheet-kolumnerna matchar hur de söker (talarens namn, sponsor, plats, “på scen” och så vidare). Om du hellre vill använda en annan AI-leverantör byter du destination i HTTP Request och behåller samma logik för “Parse Category List” och Google Sheets-append.
Oftast handlar det om behörigheter. Återanslut Google Drive-credentialn i n8n och bekräfta sedan att målmappen fortfarande finns och att ditt Google-konto kan skriva till den. Om du använder en delad enhet, säkerställ att användaren som credentialn kör på har rätt åtkomstnivå, inte bara visningsbehörighet.
Den skalar bra för typiska eventbatcher, men taket beror på var du kör n8n och hur snabbt din AI-endpoint svarar.
Ofta, ja, eftersom flödet kräver förgreningar, filhantering och ett tydligt steg för att “slå ihop resultaten igen”. n8n hanterar den typen av logik utan att du behöver dela upp den i fem separata automationer, och self-hosting kan göra exekveringskostnaderna förutsägbara. Zapier och Make kan fortfarande göra delar av det, men bildskalning plus AI-anrop plus Drive-lagring blir ofta krångligt (och ibland dyrt) när bildvolymen ökar. Den större frågan är underhållbarhet: du vill ha ett flöde du kan återanvända för varje event, inte en hög av sköra zaps. Prata med en automationsexpert om du vill ha hjälp att välja det enklaste upplägget för ditt team.
När dina bilder taggas och loggas automatiskt blir efter-event-stressen mycket mindre. Du får ett strukturerat Sheet, tydliga länkar och ett flöde du kan köra varje gång.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.