Behöver ert företag hjälp med att implementera AI? Kontakta oss och få prisoffert här →
AI Skolan
januari 22, 2026

Instagram + Google Sheets: hashtags valda åt dig

Rickard Andersson Partner, Nodenordic.se

Att skriva en bra Instagram-caption är tillräckligt svårt. Sedan faller du ner i hashtag-kaninhålet, återanvänder samma trötta taggar, gissar vad som är “hett” och hoppas att du inte råkar sänka räckvidden med döda eller irrelevanta sökord.

Sociala medier-ansvariga känner av det när de jonglerar flera kunder. En småföretagare känner av det när publiceringen glider till “när jag har tid.” Och marknadsförare som försöker skala innehåll känner det också. Den här automatiseringen av Instagram-hashtags gör en caption till fem datadrivna hashtags du faktiskt kan lita på.

Du får se hur workflowet genererar kandidat-taggar med OpenAI, kontrollerar verkliga engagemangsmått via det officiella Instagram Graph API och lagrar tidigare uppslag i Google Sheets så att du inte bränner din API-kvot.

Så fungerar automatiseringen

Hela n8n-workflowet, från trigger till slutresultat:

n8n Workflow Template: Instagram + Google Sheets: hashtags valda åt dig

Problemet: hashtags blir gissningar (och en tidstjuv)

Hashtags ska hjälpa till med upptäckt, men i de flesta publiceringsrutiner blir de en sista-minuten-uppgift. Du kopierar gårdagens uppsättning, justerar en eller två och kallar det klart. Eller så lägger du alldeles för mycket tid på att söka på Instagram och försöker välja mellan breda taggar som är överbefolkade och nischade taggar som kanske saknar momentum. Sedan publicerar du … och du vet fortfarande inte om taggarna var problemet eller om innehållet bara inte landade. Det är frustrerande, ärligt talat, eftersom jobbet är på riktigt och återkopplingsloopen är vag.

Friktionen bygger på. Här är var det fallerar i det dagliga marknadsarbetet.

  • Manuell hashtag-research kan lätt ta runt 15 minuter per inlägg, särskilt när du försöker variera taggar för flera erbjudanden eller platser.
  • Du återanvänder “säkra” taggar, vilket gör att dina inlägg konkurrerar i de stökigaste flödena.
  • När taggarna är off-topic blir räckvidden konstig och rapporteringen blir ett gissningsspel.
  • API-begränsningar gör “bara hämta data” svårare än det låter, så de flesta team bygger aldrig ett pålitligt hashtag-bibliotek.

Lösningen: OpenAI + officiella mätvärden + en Google Sheets-cache

Det här workflowet tar en enda Instagram-caption och gör den till fem starkare hashtags genom att kombinera AI-förslag med verklig engagemangsdata. Först analyserar OpenAI din caption och föreslår en kort lista med relevanta hashtags, med målet att få en mix av populära och nischade termer så att du inte fastnar i valet mellan “för brett” och “för obskyrt.” Sedan använder workflowet det officiella Instagram Graph API för att slå upp hashtag-ID:n och hämta genomsnittliga engagemangsmått (gilla-markeringar och kommentarer) för de kandidater som faktiskt finns. Till sist rankar det alternativen, väljer de bästa fem och returnerar dem som en korrekt formaterad textsträng som du kan klistra in i ditt inlägg. En Google Sheets-cache sparar tyst tidigare uppslag, så att återkommande taggar inte kostar extra API-anrop.

Workflowet startar med en manuell körning, en webhook eller en Telegram-/subworkflow-input (beroende på hur du vill trigga det). Därifrån strukturerar det AI-utdata, kontrollerar Google Sheets efter cachade resultat och anropar bara Graph API för nya taggar. Det avslutar genom att ranka kandidater och sätta ihop dina fem slutliga hashtags.

Det du får: automatisering vs. resultat

Exempel: så här ser det ut

Säg att du publicerar 5 inlägg i veckan. Om du lägger cirka 15 minuter per inlägg på att söka, kontrollera och skriva om hashtags, är det ungefär 75 minuter per vecka. Med det här workflowet klistrar du in en caption en gång, väntar på API-kontrollerna och får fem rankade hashtags tillbaka på ett par minuter (plus lite bakgrundsprocesseringstid som du inte behöver sitta och vakta). Realistiskt köper du tillbaka ungefär en timme i veckan, och dina taggar baseras på mätvärden i stället för känsla.

Det här behöver du

  • n8n-instans (testa n8n Cloud gratis)
  • Alternativ för self-hosting om du föredrar det (Hostinger funkar bra)
  • Google Sheets för att cacha hashtag-mätvärden över tid
  • OpenAI för att generera initiala hashtag-kandidater från captions
  • Facebook Graph API-uppgifter (skapa i Meta for Developers och koppla sedan i n8n)

Svårighetsgrad: Medel. Du kopplar konton, redigerar två ID:n (Instagram Business ID och Spreadsheet ID) och testar först med mockdata.

Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).

Så fungerar det

En caption kickar igång det. Du kan köra det manuellt för snabb testning, eller mata in en caption via en webhook-/Telegram-/subworkflow-trigger när du vill koppla det till en större innehållspipeline.

OpenAI föreslår kandidat-hashtags. Workflowet använder en OpenAI Chat Model (GPT-4o-mini) för att generera cirka 10 hashtags som matchar captionens intention, och sedan strukturerar ett kort kodsteg formateringen så att resten av workflowet pålitligt kan bearbeta varje tagg.

Google Sheets avgör vad som behöver färsk data. Cachade hashtags slås ihop direkt. Nya routas genom ett batchsteg, vilket hjälper till att kontrollera rate limits och håller anropen förutsägbara.

Officiella Instagram-mätvärden hämtas och rankas. För varje ny hashtag slår workflowet upp hashtag-ID:t (ig_hashtag_search), validerar att den finns och hämtar sedan genomsnittliga gilla-markeringar/kommentarer. Allt kombineras, rankas och ett AI-valsteg väljer de fem slutliga.

Du kan enkelt ändra rankningsreglerna (till exempel exkludera taggar under en tröskel för antal inlägg) så att det matchar din nisch och din rapporteringsstil. Se hela implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementering

Steg 1: Konfigurera triggern för indata till subworkflow

Konfigurera arbetsflödets startpunkter så att ni kan köra det manuellt eller från ett annat workflow.

  1. Öppna Subworkflow Input Trigger och bekräfta att workflow-indatan heter caption.
  2. Öppna Manual Execution Start för lokala testkörningar; inga fält krävs.
  3. I Assign Sample Caption ställer ni in värdet för caption till Just built an amazing automation workflow with n8n! 🚀 It connects my apps and saves me hours every week.
  4. Notera den parallella körningen: Assign Sample Caption skickar output till både Create Initial Hashtag List och Retrieve Cached Hashtags parallellt.

Steg 2: Anslut Google Sheets

Konfigurera uppslagning i hashtag-cache och append-operationer i Google Sheets.

  1. I Retrieve Cached Hashtags ställer ni in Document till YOUR_SPREADSHEET_ID och Sheet till YOUR_SHEET_NAME_OR_ID.
  2. Inloggning krävs: Anslut era googleSheetsOAuth2Api-credentials i Retrieve Cached Hashtags.
  3. I Append Cache Records ställer ni in Operation till append, Document till YOUR_SPREADSHEET_ID och Sheet till YOUR_SHEET_NAME_OR_ID.
  4. Mappa kolumner i Append Cache Records: tag{{$json.tag}}, average_likes{{$json.average_likes}}, average_comments{{$json.average_comments}}.
  5. Inloggning krävs: Anslut era googleSheetsOAuth2Api-credentials i Append Cache Records.
Tips: Säkerställ att ert ark har kolumner med namnen tag, average_likes och average_comments så att det matchar append-mappningen.

Steg 3: Sätt upp AI-generering av hashtags

Generera en startlista med hashtags och normalisera output till en tagglista.

  1. I Create Initial Hashtag List ställer ni in Prompt till =Please suggest 10 English hashtags relevant to the following post caption. Include a balance of big words (high post volume) and niche ones. Caption: {{ $json.caption }} Output ONLY in the following JSON format. ["keyword1", "keyword2", ...] och behåller Prompt Type som Define.
  2. Säkerställ att Create Initial Hashtag List är ansluten till OpenAI Chat Engine som språkmodell; lägg till OpenAI-credentials i föräldranoden OpenAI Chat Engine.
  3. Inloggning krävs: Anslut era openAiApi-credentials i OpenAI Chat Engine.
  4. I Clean Hashtag Output behåller ni JavaScript-koden som extraherar JSON-arrayen och returnerar { tag }-items för varje hashtag.
⚠️ Vanlig fallgrop: Om AI:n returnerar innehåll som inte är JSON kastar Clean Hashtag Output “No JSON array found.” Håll prompten strikt och endast JSON.

Steg 4: Konfigurera cachelogik och Instagram-mätvärden

Jämför AI-genererade taggar med cachad data och hämta samt beräkna mätvärden för nya taggar.

  1. I Unify Inputs slår ni ihop output från Clean Hashtag Output och Retrieve Cached Hashtags.
  2. I Determine Cache Status behåller ni JavaScript-koden som märker varje tagg som cache eller new baserat på tillgängliga mätvärden.
  3. I Branch Cache vs New bekräftar ni att villkoret kontrollerar att source är lika med cache med {{$json.source}}.
  4. I Batch Items Splitter behåller ni standardinställningarna för batch för att processa nya taggar sekventiellt.
  5. I Fetch Hashtag Lookup ställer ni in Node till ig_hashtag_search, Graph API Version till v18.0 och query-parametrar: user_idYOUR_INSTAGRAM_BUSINESS_ACCOUNT_ID, q{{ $('Batch Items Splitter').item.json.tag }}.
  6. Inloggning krävs: Anslut era facebookGraphApi-credentials i Fetch Hashtag Lookup.
  7. I Validate Tag Presence behåller ni villkoret {{$json.data && $json.data.length > 0}} för att undvika ogiltiga ID:n.
  8. I Fetch Hashtag Metrics ställer ni in Edge till top_media, Node till {{ $json.data[0].id }} och query-parametrar: fieldslike_count, comments_count, user_idYOUR_INSTAGRAM_BUSINESS_ACCOUNT_ID.
  9. Inloggning krävs: Anslut era facebookGraphApi-credentials i Fetch Hashtag Metrics.
  10. I Compute Average Metrics behåller ni JavaScript-koden som beräknar average_likes och average_comments.
  11. I Map Fresh Tag Metrics ställer ni in tag till {{ $('Batch Items Splitter').item.json.tag }}, average_likes till {{ $json.average_likes }} och average_comments till {{ $json.average_comments }}.
  12. I Throttle Pause ställer ni in Unit till seconds och Amount till 2 för att strypa API-anrop.
Tips: Workflödet loopar från Append Cache Records till Throttle Pause till Batch Items Splitter för att kontrollera API:ets hastighetsbegränsningar.

Steg 5: Konfigurera rankning och slutlig output

Slå ihop cachad och ny data, ranka kandidater och be modellen välja de fem bästa hashtagsen.

  1. I Combine Cache and New slår ni ihop den cachade grenen från Branch Cache vs New med nya items från Batch Items Splitter.
  2. I Rank Candidate Tags behåller ni JavaScript-koden som sorterar på average_likes och bygger candidates-arrayen.
  3. I Choose Top Five Tags ställer ni in prompten till =You are an Instagram Professional. Analyze the following post caption and the candidate hashtag list (with average likes). Select the **5 best hashtags** that balance **"Relevance to the post"** and **"High Engagement (Likes)"**. [Selection Criteria] 1. Must accurately reflect the post content (Prioritize Relevance). 2. Do NOT select irrelevant tags even if they have many likes. 3. Include niche tags (fewer likes) if they are perfect for the content. Caption: {{ $json.caption }} Candidate List: {{ JSON.stringify($json.candidates) }} Output Format (JSON Only): ["tag1", "tag2", "tag3", "tag4", "tag5"] och behåller Prompt Type som Define.
  4. Säkerställ att Choose Top Five Tags är ansluten till AI Model Picker; lägg till OpenAI-credentials i föräldranoden AI Model Picker.
  5. Inloggning krävs: Anslut era openAiApi-credentials i AI Model Picker (modell gpt-5-mini).
  6. I Assemble Hashtag String ställer ni in hashtags till {{ JSON.parse($json.text.replace(/```json/g,'').replace(/```/g,'')).map(t => '#' + t.replace('#','')).join(' ') }}.

Steg 6: Testa och aktivera ert workflow

Validera hela flödet från inmatad caption till slutlig hashtag-sträng.

  1. Klicka på Execute Workflow och starta från Manual Execution Start för att köra en test-caption genom flödet.
  2. Bekräfta att Create Initial Hashtag List returnerar en JSON-lista och att Clean Hashtag Output returnerar tag-items.
  3. Verifiera cachelogiken genom att kontrollera output från Determine Cache Status med source satt till cache eller new.
  4. Säkerställ att Assemble Hashtag String returnerar en enda hashtags-sträng som #tag1 #tag2 #tag3 #tag4 #tag5.
  5. När allt ser korrekt ut växlar ni workflödet till Active för att ta emot indata från Subworkflow Input Trigger i produktion.
🔒

Lås upp fullständig steg-för-steg-guide

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Facebook Graph API-uppgifter kan gå ut eller sakna behörigheter. Om det strular: kontrollera först dina Meta-appinställningar och den anslutna credentialen i n8n.
  • Om du använder Wait-noder eller externa anrop varierar processeringstiderna. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du redigera output för alltid.

Vanliga frågor

Hur lång tid tar det att sätta upp den här automatiseringen av Instagram-hashtags?

Cirka 30–60 minuter när din API-åtkomst är redo.

Behöver jag kodkunskaper för att automatisera Instagram-hashtags?

Nej. Du kopplar konton och klistrar in två ID:n och kör sedan en test-caption.

Är n8n gratis att använda för det här workflowet för automatisering av Instagram-hashtags?

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 volym. Du behöver också räkna med OpenAI API-användning (oftast några cent per körning) och din Meta-/Instagram API-åtkomst.

Var kan jag hosta n8n för att köra den här automatiseringen?

Två alternativ: n8n Cloud (managerat, 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.

Kan jag anpassa det här workflowet för automatisering av Instagram-hashtags för en lokal företagsnisch?

Ja, och det bör du. De flesta anpassar prompten som används för att skapa den initiala hashtag-listan så att den alltid inkluderar platsmodifierare (stad, område, typ av venue) och exkluderar orelaterade branschtaggar. Du kan också justera rankningslogiken i kodnoden “Rank Candidate Tags” för att ranka ner alltför generiska taggar, och sedan hålla dina föredragna taggar varma i Google Sheets så att de återanvänds utan extra uppslag.

Varför misslyckas min Google Sheets-anslutning i det här workflowet?

Oftast är det en behörighetsfråga i kalkylarket eller en utgången Google-credential i n8n. Bekräfta att det anslutna Google-kontot kan redigera arket och autentisera sedan om Google Sheets-credentialen. Dubbelkolla också att du har ersatt spreadsheet ID-placeholdern i stegen “Retrieve Cached Hashtags” och “Save to Cache/Append Cache Records”.

Hur många hashtags kan den här automatiseringen av Instagram-hashtags hantera?

I praktiken kan den hantera så många som din n8n-plan/server kan processa, men den officiella hashtag search-endpointen är begränsad till cirka 30 unika queries per 7 dagar, vilket är varför Google Sheets-cachen är viktig.

Är den här automatiseringen av Instagram-hashtags bättre än att använda Zapier eller Make?

Ofta, ja, eftersom det här workflowet behöver branching, batching och caching för att respektera Instagrams API-gräns, och n8n hanterar det utan att göra det till en hög av betalda “tasks”. Det gör det också enklare att lägga in kod där det gör skillnad, som att strukturera hashtag-output och ranka kandidater efter genomsnittliga gilla-markeringar/kommentarer. Zapier och Make kan fortfarande fungera om du håller det enkelt, men du kan stöta på friktion när du lägger till cache-logiken och rate control. Om du vill kan du prata med en automationsexpert och rimlighetskontrollera bästa upplägg för din publiceringsvolym. Målet är driftsäkerhet, inte verktygslojalitet.

Du sätter upp det här en gång, och din publiceringsrutin blir lättare. Workflowet sköter den repetitiva kontrollen och sorteringen så att du kan fokusera på själva innehållet.

Kontakta oss

Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.

×

Använd mall

Få direkt tillgång till denna n8n-arbetsflödes JSON-fil

Launch login modal Launch register modal