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

Google Drive till Gmail: åtgärdslista för Amazon Ads

Rickard Andersson Partner, Nodenordic.se

Dina Sponsored Products-rapporter ligger i en mapp, men besluten tas fortfarande på magkänsla. Du laddar ner filer, öppnar flikar, kisar på ACOS och funderar sedan på vad du ska ändra först. Så blir “snabb veckovis optimering” plötsligt en halvdag.

Den här automationen för Amazon Ads actions träffar Amazon-operatörer hårdast, men performance marketers och små team som kör flera ASIN:er känner också av den. Vinsten är enkel: en tydlig, strukturerad åtgärdslista i Gmail så att du kan stoppa onödiga annonskostnader innan de drar iväg.

Nedan ser du exakt vad workflowet gör, vad du behöver för att köra det och vilka resultat du kan förvänta dig när det väl är på plats.

Så fungerar den här automationen

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

n8n Workflow Template: Google Drive till Gmail: åtgärdslista för Amazon Ads

Problemet: Amazon Ads-optimering blir kalkylblads-triage

Amazon ger dig data, men inte nästa steg. Du tar ut en Search Term-rapport, sedan en Targeting-rapport, sedan placeringar, budgetar, kampanjer. Nu har du fem filer i två format, alla med lite olika kolumner, och du har fortfarande inte svarat på den enda frågan som spelar roll: “Vad ska jag ändra i dag?” Ju längre du väntar, desto mer betalar du för irrelevanta klick och desto mer underfinansierar du sökord som faktiskt fungerar. Och om vi ska vara ärliga: manuell analys leder lätt till misstag. Ett missat filter eller ett inklistrat värde på fel ställe kan få dig att jaga fel åtgärd i en vecka.

Det går fort att det spårar ur. Här är var det oftast faller isär.

  • Du lägger cirka 2 timmar per vecka bara på att ladda ner, öppna och stämma av rapporter mellan flikar.
  • Åtgärdspunkter tappas bort eftersom “insikten” bor i ett kalkylblad, inte i din dagliga inkorg.
  • Blandade .xlsx- och .csv-exporter saktar ner dig, särskilt när filnamn inte är konsekventa mellan ASIN:er.
  • När du hanterar flera produkter eller annonskonton skalar det manuella arbetssättet inte utan att du tar in hjälp.

Lösningen: gör Drive-rapporter till en åtgärdslista i Gmail

Det här workflowet bevakar dina Sponsored Products-rapporter i Google Drive, laddar ner dem och förbereder datan så att den faktiskt går att analysera. Det märker upp varje fil, kontrollerar om den är XLSX eller CSV och extraherar innehållet därefter. Sedan kombinerar det relevanta flikar, normaliserar rapportdatan (så att kolumner och formatering blir konsekventa) och skickar det strukturerade underlaget till ett AI-granskningssteg som drivs av GPT‑4o. Till sist får du ett strukturerat optimeringsmejl i Gmail med tydliga instruktioner du kan agera på: vilka sökord som ska pausas, var bud bör justeras, vilka placeringar som ser slösaktiga ut och vilka budgetar som förtjänar mer utrymme.

Workflowet startar när du kör det (manuell trigger) och hämtar sedan filer från din valda Google Drive-mapp. Därefter tolkar och slår det ihop rapporterna, städar upp dem och kör en AI-baserad optimeringsgranskning. Gmail levererar rekommendationerna som en praktisk checklista, inte en vägg av siffror.

Det här får du: automation vs. resultat

Exempel: så här ser det ut i praktiken

Säg att du hanterar 3 ASIN:er och granskar fem rapporter per ASIN varje vecka (Search Term, Targeting, Campaign, Placement, Budget). Manuellt är det lätt att lägga cirka 10 minuter per fil bara på att ladda ner, öppna och hitta de “intressanta” delarna. Det är ungefär 2,5 timmar innan du ens bestämmer vad du ska ändra. Med det här workflowet kör du triggern, låter n8n processa mappen i några minuter och får en åtgärdslista i Gmail. Du lägger tiden på att genomföra ändringar, inte på att leta efter dem.

Det här behöver du

  • n8n-instans (prova n8n Cloud gratis)
  • Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
  • Google Drive för att lagra Sponsored Products-rapporter
  • Gmail för att leverera optimeringsinstruktioner till din inkorg
  • OpenAI API-nyckel (hämta den i din OpenAI-dashboard)

Svårighetsnivå: Medel. Du kopplar konton, väljer rätt Drive-mapp och testar lite för att bekräfta att dina rapportformat matchar.

Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis konsultation i 15 minuter).

Så fungerar det

Du startar körningen. Workflowet börjar med en manuell trigger, vilket är perfekt när du vill granska “senaste 30 dagar”-data vid begäran innan du gör ändringar.

Din Drive-mapp skannas och filer laddas ner. n8n hämtar Amazon Ads-rapporterna från Google Drive och tar sedan in varje fil i workflowet så att den kan tolkas på ett stabilt sätt.

Workflowet standardiserar det stökiga. Det märker upp filer, kontrollerar om varje rapport är XLSX eller CSV, extraherar innehållet, slår ihop underlagen från flikar och normaliserar rapportdatan med ett dedikerat städsteg.

AI gör data till beslut. GPT‑4o granskar det normaliserade underlaget och tar fram optimeringsrekommendationer, som sedan skickas som ett strukturerat mejl via Gmail.

Du kan enkelt justera mejlformatet så att det passar ditt arbetssätt (checklista, avsnitt per ASIN eller “topp 10 åtgärder först”) utifrån dina behov. Se hela implementeringsguiden nedan för anpassningsalternativ.

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

Steg 1: konfigurera triggern för manuell körning

Det här arbetsflödet startas manuellt och initierar sedan e-postinställningar innan det hämtar rapporter från Google Drive.

  1. Lägg till noden Manual Run Trigger som trigger för arbetsflödet.
  2. Öppna Configure Email Settings och ställ in send_to.
  3. Ställ in subject.
  4. Låt Flowpast Branding ligga kvar som en referens-”sticky note” (valfritt, ingen konfiguration krävs).
Tips: uppdatera platshållarvärdena i Configure Email Settings innan ert första test för att undvika att skicka till en ogiltig adress.

Steg 2: anslut Google Drive

Dessa noder hittar och laddar ner rapportfilerna som används för optimeringsanalysen.

  1. Öppna Retrieve Drive Files och ställ in Search Methodquery.
  2. Ställ in Folder-valet till er rapportmapp (gränssnittet visar ).
  3. Inloggning krävs: anslut era googleDriveOAuth2Api-uppgifter i Retrieve Drive Files.
  4. Öppna Download Drive File och ställ in File ID={{ $json.id }}.
  5. Bekräfta att Binary Property Name är inställt på data i alternativen för Download Drive File.
  6. Inloggning krävs: anslut era googleDriveOAuth2Api-uppgifter i Download Drive File.

Steg 3: konfigurera filparsning och normalisering

Den här delen märker upp varje fil, styr om XLSX- respektive CSV-format och normaliserar alla rapportdataset till ett enda JSON-objekt.

  1. I Assign File Label ställer ni in fileName={{ $json.name }} och aktiverar Include Other Fields.
  2. I Check XLSX Format ställer ni in villkoret så att det kontrollerar om leftValue är ={{ $json.name }} contains .xlsx.
  3. Check XLSX Format skickar ut till både Parse XLSX Content och Parse CSV Content parallellt.
  4. Ställ in Parse XLSX Content till Operation xlsx.
  5. Ställ in Parse CSV Content Binary Property Name=data.
  6. I både Keep XLSX Label och Keep CSV Label ställer ni in fileName={{ $('Check XLSX Format').item.json.fileName }} och låter Include Other Fields vara aktiverat.
  7. Anslut båda märkta utdata till Combine Sheet Inputs och skicka sedan vidare till Normalize Report Data.
  8. Ställ in Normalize Report Data JavaScript Code till const result = {};\n\nfor (const item of items) {\n const fileName = item.json.fileName || item.json.name || 'unknown_file';\n const baseName = fileName\n .split('.')[0]\n .replace(/\\s+/g, '_')\n .toLowerCase()\n .replace(/\\s*\\(\\d+\\)$/, '')\n .replace(/_+$/, '')\n .trim();\n\n // regex → result key\n const map = [\n { key: 'search_terms', regex: /search_term/ },\n { key: 'campaigns', regex: /campaign/ },\n { key: 'targeting', regex: /targeting/ },\n { key: 'placement', regex: /placement/ },\n { key: 'budgets', regex: /budget/ },\n ];\n\n const entry = map.find(m => m.regex.test(baseName));\n const mappedKey = entry ? entry.key : null;\n\n console.log('fileName:', fileName);\n console.log('baseName:', baseName);\n console.log('mappedKey:', mappedKey);\n\n if (!mappedKey) {\n throw new Error(`${fileName} → ${baseName} → Unrecognized file name structure`);\n }\n result[mappedKey] = result[mappedKey] || [];\n result[mappedKey].push(item.json);\n}\n\nreturn [{ json: result }];\n\n\n\n.
⚠️ Vanlig fallgrop: normaliseringssteget kastar ett fel om filnamnen inte matchar de förväntade namn-mönstren (t.ex. search_term, campaign, targeting). Standardisera era rapportfilnamn i Drive.

Steg 4: konfigurera AI-granskning för optimering

Det här steget skickar det normaliserade datasetet till en språkmodell för optimeringsrekommendationer.

  1. Öppna AI Optimization Review och ställ in Text={{JSON.stringify($json)}}.
  2. Låt Prompt Type vara inställt på define och lämna det detaljerade instruktionsmeddelandet som det är.
  3. Säkerställ att OpenAI Chat Engine är ansluten som språkmodell för AI Optimization Review.
  4. Inloggning krävs: anslut era openAiApi-uppgifter i OpenAI Chat Engine (AI-uppgifter kopplas till modellnoden, inte till kedjan).

Steg 5: konfigurera sändning av optimeringsmejl

Den här noden formaterar AI-svaret till en rik HTML-rapport och mejlar den till er konfigurerade mottagare.

  1. Öppna Send Optimization Email och ställ in Send To={{ $('Configure Email Settings').first().json.send_to }}.
  2. Ställ in Subject={{ $('Configure Email Settings').first().json.subject }}.
  3. Ställ in Message till det angivna uttrycket: ={{\n (() => {\n let raw = $node["AI Optimization Review"].json["text"];\n\n // 🔧 Remove triple backticks and optional "json" tag\n raw = raw.replace(/^```json\\s*/i, "").replace(/```$/, "").trim();\n\n let data;\n\n try {\n data = JSON.parse(raw);\n } catch (err) {\n return `

    ❌ Failed to parse AI output.
    ${err.message}

    `;\n }\n\n let msg = "

    Amazon Ads Optimization Instructions

    ";\n\n // Optional Summary Totals\n const totalSpend = (data.campaign_adjustments || []).reduce((sum, c) => sum + (c.projected_daily_spend_usd || 0), 0);\n const totalSales = (data.campaign_adjustments || []).reduce((sum, c) => sum + (c.projected_daily_sales_usd || 0), 0);\n msg += `

    Total Budget Increase Recommended:
    `;\n msg += `Estimated daily spend: $${totalSpend.toFixed(2)}
    `;\n msg += `Estimated daily sales: $${totalSales.toFixed(2)}

    `;\n\n // Campaign Adjustments\n msg += "

    Campaign Adjustments:

      ";\n (data.campaign_adjustments || []).forEach(c => {\n msg += `
    • ${c.campaign_name}
        `;\n if (c.default_bid_multiplier !== undefined) {\n const percent = Math.round((1 - c.default_bid_multiplier) * 100);\n msg += `
      • Default bid × ${c.default_bid_multiplier} (–${percent}%)
      • `;\n }\n if (c.bid_adjustments) {\n msg += "
      • Bid adjustments:
          ";\n msg += `
        • Top of Search: ${c.bid_adjustments.top_of_search ?? 0}%
        • `;\n msg += `
        • Rest of Search: ${c.bid_adjustments.rest_of_search ?? 0}%
        • `;\n msg += `
        • Product pages: ${c.bid_adjustments.product_pages ?? 0}%
        • `;\n msg += "
      • ";\n }\n if (c.budget_change?.action !== "none") {\n msg += `
      • Budget: ${c.budget_change.action} by ${c.budget_change.percent}%
      • `;\n }\n if (c.projected_daily_spend_usd && c.projected_daily_sales_usd) {\n msg += `
      • Est. daily spend: $${c.projected_daily_spend_usd.toFixed(2)}
      • `;\n msg += `
      • Est. daily sales: $${c.projected_daily_sales_usd.toFixed(2)}
      • `;\n if (c.estimated_acos_percent !== undefined) {\n msg += `
      • ACoS: ${c.estimated_acos_percent}%
      • `;\n }\n if (c.estimated_roas_multiple !== undefined) {\n const color = c.estimated_roas_multiple < 1.0 ? 'red' : 'green';\n msg += `
      • ROAS: ${c.estimated_roas_multiple.toFixed(2)}x
      • `;\n }\n }\n msg += "
    • ";\n });\n msg += "
    ";\n\n // Keyword Recommendations\n if ((data.keyword_recommendations?.add_exact?.length || 0) > 0 ||\n (data.keyword_recommendations?.negative?.length || 0) > 0) {\n msg += "

    Keyword Recommendations:

      ";\n (data.keyword_recommendations.add_exact || []).forEach(k => {\n msg += `
    • Add exact: "${k.term}" in ${k.campaign_name} / ${k.ad_group_name} at $${k.suggested_bid}
    • `;\n });\n (data.keyword_recommendations.negative || []).forEach(n => {\n if (typeof n === 'string') {\n msg += `
    • Negative: "${n}"
    • `;\n } else {\n msg += `
    • Negative: "${n.term}" in ${n.campaign_name || 'Unspecified Campaign'}
    • `;\n }\n });\n msg += "
    ";\n }\n\n // Targeting Recommendations\n if ((data.targeting_recommendations || []).length > 0) {\n msg += "

    Targeting Recommendations:

      ";\n data.targeting_recommendations.forEach(t => {\n const valueText = t.value ? ` by ${t.value}` : "";\n msg += `
    • ${t.target} in ${t.campaign_name} / ${t.ad_group_name}: ${t.action}${valueText}
    • `;\n });\n msg += "
    ";\n }\n\n return msg;\n })()\n}}\n
    .
  4. Inloggning krävs: anslut era gmailOAuth2-uppgifter i Send Optimization Email.

Steg 6: testa och aktivera ert arbetsflöde

Kör ett manuellt test för att verifiera parsning, AI-utdata och e-postleverans innan ni aktiverar i produktion.

  1. Klicka på Execute Workflow för att köra Manual Run Trigger med ett live-test.
  2. Verifiera att filer hämtas av Retrieve Drive Files och laddas ner av Download Drive File.
  3. Bekräfta att Normalize Report Data outputar ett kombinerat JSON-objekt med nycklar som search_terms, campaigns och budgets.
  4. Kontrollera att AI Optimization Review returnerar JSON och att Send Optimization Email levererar ett HTML-mejl till den konfigurerade mottagaren.
  5. Slå om arbetsflödet till Active när det manuella testet lyckas.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Google Drive-inloggningar kan löpa ut eller kräva specifika behörigheter. Om något slutar fungera: kontrollera först Google-kopplingen i n8n:s Credentials-panel och bekräfta sedan att mappen är delad med samma konto.
  • Om du använder Wait-noder eller extern bearbetning varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in din tonalitet och dina budregler tidigt, annars kommer du att redigera resultaten i all evighet.

Vanliga frågor

Hur lång tid tar det att sätta upp den här automationen för Amazon Ads actions?

Cirka 30 minuter om dina Drive-, Gmail- och OpenAI-inloggningar är klara.

Behöver jag kunna koda för att automatisera Amazon Ads actions?

Nej. Du kopplar främst konton och väljer rätt Drive-mapp. Den enda “tekniska” delen är att verifiera att dina rapporter importeras korrekt formaterade första gången.

Är n8n gratis att använda för det här workflowet för Amazon Ads actions?

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 in kostnader för OpenAI API, som oftast är några cent per körning beroende på rapportstorlek.

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

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 klarar 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 Amazon Ads actions för flera annonskonton?

Ja, men gör det med eftertanke. De flesta duplicerar delarna “Retrieve Drive Files” och “Configure Email Settings” per konto och håller sedan en konsekvent namngivningsstandard så att logiken för “Assign File Label” och tolkningen inte blir förvirrad. Vanliga anpassningar är separata Gmail-mottagare per varumärke, en annan prompt per produktlinje och att filtrera Drive-filer till enbart exporter för “Last 30 Days”.

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

Oftast är det utgångna inloggningar eller att Drive-kontot saknar åtkomst till mappen du valde. Återanslut Google Drive i n8n och dubbelkolla sedan mappbehörigheterna och att workflowet pekar på rätt mapp-ID. Om det bara fallerar för vissa filer beror det ofta på filstorlek eller en export som fortfarande synkar när workflowet försöker ladda ner den.

Hur många rapporter kan den här automationen för Amazon Ads actions hantera?

I en typisk setup fungerar dussintals rapporter per körning utan problem, och om du self-hostar kan du skala vidare så länge din server har tillräckligt med minne för större XLSX-filer.

Är den här automationen för Amazon Ads actions bättre än att använda Zapier eller Make?

Ofta, ja. Det här workflowet är inte bara “flytta en fil och skicka ett mejl”; det förgrenar för XLSX vs CSV, slår ihop rapportunderlag, kör städning och anropar sedan en AI-modell med en strukturerad prompt. Den typen av flersteglogik kan bli dyr eller klumpig i Zapier/Make när du lägger till filter, formathantering och retries. n8n är också enklare att self-hosta, vilket spelar roll om du kör detta ofta. Om du bara behöver en enkel avisering “Drive-fil uppladdad → mejla mig” fungerar Zapier bra. Prata med en automationsexpert om du vill ha hjälp att välja.

När detta väl rullar slutar dina rapporter att vara “något du borde titta på” och blir i stället en kort lista med drag du kan göra i dag. Workflowet tar hand om de repetitiva delarna, så att du kan fokusera på besluten som faktiskt förändrar resultatet.

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