Du kollar Google Play-rankningar, klistrar in siffror i ett kalkylark, och så frågar någon: ”Vänta, gick det upp eller ner?” och plötsligt letar du igenom gamla flikar.
ASO-ansvariga känner av det först. Men en growth marketer som kör veckovisa experiment och en byrålead som rapporterar till kunder fastnar i samma loop. Den här SerpApi-automationen för rank tracking ger dig en strukturerad historik i Baserow plus en Slack-notis när rankningarna uppdateras.
Nedan ser du hur flödet körs, vad det uppdaterar och vad du kan justera för att matcha din sökordslista, språk/region och rapporteringsstil.
Så fungerar automationen
Hela n8n-workflowen, från trigger till slutresultat:
n8n Workflow Template: SerpApi till Baserow, appranking loggas + Slack-ping
flowchart LR
subgraph sg0["Schedule Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Keep Context", 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/slack.svg' width='40' height='40' /></div><br/>Slack"]
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/baserow.svg' width='40' height='40' /></div><br/>Update Rank in Baserow"]
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/baserow.svg' width='40' height='40' /></div><br/>Fetch Keywords from Baserow"]
n5["<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/>Prepare Search Queries"]
n6["<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/>Search PlayStore via SerpAPI"]
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/merge.svg' width='40' height='40' /></div><br/>Merge Data"]
n8["<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/>Get App Rank"]
n7 --> n8
n8 --> n3
n1 --> n6
n1 --> n7
n0 --> n4
n5 --> n1
n3 --> n2
n4 --> n5
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 n6 api
class n5,n8 code
classDef customIcon fill:none,stroke:none
class n2,n3,n4,n5,n6,n7,n8 customIcon
Problemet: rank tracking blir kalkylarksarkeologi
Sökordsrankningar låter enkelt tills du gör det konsekvent. Du tar fram en lista med sökord, kör sökningar, hittar din app (eller inte), och kopierar sedan resultat någonstans där du kan jämföra senare. Efter det behöver du fortfarande kontext: vad var föregående rank, när ändrades den, och är rörelsen verklig eller bara brus? Det jobbiga är inte första kontrollen. Det är den 20:e kontrollen, när ”snabbt” har blivit en veckoritual som tar en timme, faller när någon glömmer, och smyger in fel.
Det växer snabbt. Här är det som oftast går snett.
- Manuella rankkontroller hoppas över under hektiska veckor, så du tappar trendlinjen precis när en release eller kampanj går ut.
- Att kopiera och klistra in rankningar i ett ark leder till misstag, och de misstagen försämrar dina beslut.
- Team saknar en gemensam ”single source of truth”, vilket gör att standups blir diskussioner om vems siffra som är aktuell.
- Du upptäcker förändringar sent eftersom det inte finns någon puff i Slack när rankningarna uppdateras.
Lösningen: SerpApi-kontroller, loggning i Baserow, Slack-notiser
Det här flödet körs enligt schema (veckovis som standard, men dagligen är vanligt) och kontrollerar din Android-apps sökordsrankningar i Google Play via SerpApi. Det börjar med att hämta dina sökordsrader från en Baserow-tabell, bygger sedan en sökförfrågan för varje sökord och skickar den till SerpApi. Resultatet kommer tillbaka med data du kan tolka till ”vilken position har min app för det här sökordet”. Därefter uppdaterar det samma Baserow-rad med en ny Aktuell rank, flyttar den gamla Aktuell rank till Föregående rank och stämplar en Senast ändrad-tid. Till sist postar det ett enkelt Slack-meddelande så teamet vet att datan är redo att granskas.
Flödet startar med din schemalagda trigger och en hämtning av alla sökordsrader från Baserow. Därifrån loopar det igenom sökorden, frågar SerpApi och slår ihop svaret tillbaka till den ursprungliga radkontexten så att uppdateringarna blir korrekta. I slutet har Baserow historiken du behöver, och Slack ger ”glöm inte att titta”-ögonblicket.
Det här får du: automation vs. resultat
| Det här automatiserar flödet | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du följer 60 sökord varje vecka. Manuellt tar även en ”snabb” process kanske 1 minut att söka och bekräfta rank, plus en minut till att logga och hålla ordning på föregående värde, vilket landar runt 2 timmar. Med det här flödet sätter du upp det en gång, och den veckovisa körningen är i princip noll hands-on-tid: en minut för att se Slack-notisen, och sedan några minuter att skanna Baserow efter de som rört sig. Det är tid du kan lägga på listing-tester, inte datainmatning.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
- SerpApi för att hämta rankningsresultat från Google Play.
- Baserow för sökordsrader och lagring av rankhistorik.
- Slack för att notifiera teamet när rankningarna uppdateras.
Kunskapsnivå: Medel. Du kopplar credentials, mappar fält och justerar en eller två request-parametrar på ett säkert sätt.
Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
En schemalagd körning drar igång allt. n8n triggar veckovis (eller dagligen) så att rankkontrollerna sker även när ingen kommer ihåg att göra dem.
Dina sökordsrader hämtas från Baserow. Flödet läser varje rad (inklusive den nu sparade rankningen) så att historiken förblir intakt när det skriver in det nya värdet.
SerpApi frågas för varje sökord. n8n bygger förfrågan, anropar SerpApi, slår sedan ihop svaret med de ursprungliga raddetaljerna och tar fram appens position från de returnerade resultaten. Det finns också utrymme att flagga ”hittades inte”-resultat om du vill visa det tydligt.
Baserow uppdateras, sedan får Slack en ping. Varje rad uppdateras med Aktuell rank, Föregående rank och Senast ändrad. När uppdateringarna är klara postar Slack ett kort meddelande som ”Rankningar uppdaterade — granska i Baserow.”
Du kan enkelt ändra schemat och Slack-beteendet så att det matchar din rutin, oavsett om du vill köra dagliga kontroller eller ha en enda veckovis standup. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera Schedule Trigger
Konfigurera arbetsflödet så att det körs enligt ett planerat veckoschema.
- Lägg till eller öppna Planned Run Trigger och ställ in intervallregeln till weeks.
- Bekräfta att noden är den enda triggern och att den kopplar direkt till Retrieve Keyword Rows.
Steg 2: Anslut Baserow och hämta nyckelord
Hämta alla rader med nyckelord från er Baserow-tabell för rankningskontroller.
- Öppna Retrieve Keyword Rows och ställ in Database ID till
239215och Table ID till568021. - Aktivera Return All till
true. - Inloggningsuppgifter krävs: Anslut era baserowApi-inloggningsuppgifter.
Steg 3: Bygg sökförfrågningar och behåll radkontext
Förbered SerpAPI-förfrågningar och behåll radidentifierare för senare uppdateringar.
- I Build Search Requests, uppdatera JavaScript-koden för att ersätta
[CONFIGURE_YOUR_API_KEY]och[CONFIGURE_YOUR_TOKEN]med er SerpAPI-nyckel. - Ställ in appens package ID i Build Search Requests till ert faktiska paket:
const packageId = "practice.test.daily.testline";. - I Preserve Row Context, säkerställ att tilldelningarna mappar till uttryck: id =
{{$json.id}}, Keywords ={{$json.Keywords}}, currentRank ={{$json.currentRank}}, Previous Rank ={{$json["Previous Rank"]}}. - Preserve Row Context skickar utdata till både SerpAPI Play Store Lookup och Combine Context Streams parallellt.
0.Steg 4: Anropa SerpAPI, slå ihop data och beräkna rankning
Hämta Play Store-resultat och kombinera dem med radkontext för att beräkna appens position.
- Konfigurera SerpAPI Play Store Lookup med URL
https://serpapi.com/search.json, Send Query satt tilltrue, samt frågeparametrar inklusive engine =google_play, q ={{$json.Keywords}}, gl =in, hl =en, store =apps. - Ställ in Combine Context Streams till Mode
combineoch Combine BycombineByPosition. - I Derive App Position, uppdatera
const appId = "{app_package_name}";till ert faktiska package ID och behåll Mode somrunOnceForEachItem.
Steg 5: Uppdatera Baserow och skicka Slack-notifieringen
Skriv tillbaka de nya rankningarna till Baserow och notifiera ert team i Slack.
- Konfigurera Update Baserow Ranking med Database ID
239215, Table ID568021, och Row ID{{$json.id}}. - Ställ in fältvärden i Update Baserow Ranking: fält
4563204={{$json.currentRank}}och fält4563209={{$json.previousRank}}. - Inloggningsuppgifter krävs: Anslut era baserowApi-inloggningsuppgifter i Update Baserow Ranking.
- I Send Slack Update, ställ in Channel till ert kanal-ID och behåll Text som
🚀 RPSC App Rankings Just Updated! See how we're performing 👉 https://baserow.io/public/grid/mjkYq2wWb6vIE3MsB1RannZgclvdHKacNE3zEVrC5Bo. - Inloggningsuppgifter krävs: Anslut era slackApi-inloggningsuppgifter.
Steg 6: Testa och aktivera ert arbetsflöde
Kör ett manuellt test för att bekräfta att rankningar uppdateras och att notifieringar skickas korrekt innan ni aktiverar schemat.
- Klicka på Execute Workflow i editorn och följ hur data flödar från Planned Run Trigger via Send Slack Update.
- Verifiera att Baserow-rader uppdateras med nya värden för currentRank och previousRank.
- Bekräfta att Slack-kanalen tar emot uppdateringsmeddelandet.
- Slå om arbetsflödet till Active för att köra enligt veckoschemat.
Vanliga fallgropar
- Baserow-credentials kan gå ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera åtkomsten för din Baserow API-token i n8n-credentialen och bekräfta att Base/Table-valet fortfarande är giltigt.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
- SerpApi-förfrågningar kan komma tillbaka ”giltiga men ointressanta” när språk/region eller land inte är satt. Om rankningarna ser fel ut, kontrollera query-parametrarna i HTTP Request (hl/gl) och säkerställ att de matchar den butik du bryr dig om.
Vanliga frågor
Cirka 30 minuter om din Baserow-tabell är klar.
Nej. Du kopplar mest konton och bekräftar några fältmappningar. Den enda ”kodlika” delen är oftast att klistra in din SerpApi API-nyckel i HTTP Request-noden.
Ja. n8n har ett gratis alternativ för egen drift 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 SerpApi-kostnader baserat på hur många sökord du kontrollerar per körning.
Två alternativ: n8n Cloud (hanterat, enklast att sätta upp) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärd och klarar n8n bra. Egen drift ger obegränsade exekveringar men kräver grundläggande serveradministration.
Ja, och det är en smart justering. Ändra schematriggaren till att köra dagligen och justera sedan Slack-steget så att det skickar ett meddelande efter att alla rader har uppdaterats (i stället för att pinga per sökord). Vanliga anpassningar är att lägga till språk/land-parametrar (hl/gl) i SerpApi-förfrågan, spara en kolumn för ”App Package ID” och flagga saknade rankningar som ”hittades inte” i Baserow-raden.
Oftast är det ett API-nyckelproblem i HTTP Request-noden (saknas, inklistrad i fel fält eller roterad). Det kan också vara rate limiting om du kör stora sökordsbatchar direkt efter varandra, så det hjälper att glesa ut körningarna. Om svaren ser ”lyckade” ut men är tomma, kontrollera dina query-parametrar som land/språk och bekräfta att sökordsformatet matchar det du söker i Play Store.
Några hundra per körning är realistiskt för de flesta team.
Ofta, ja, eftersom det här flödet behöver loopa över många sökord, slå ihop data tillbaka till rätt rad och göra en tydlig uppdatering av ”föregående vs aktuell”. n8n hanterar den typen av logik utan att varje gren blir ett prissättningsproblem, och du kan köra det själv om du vill ha obegränsade exekveringar. Zapier eller Make kan fortfarande fungera om din sökordslista är liten och din logik är enkel. Men när du bryr dig om historik, batchning och att hålla ordning på kontexten är n8n oftast det lugnare valet. Om du vill ha en second opinion innan du bygger, prata med en automationsexpert.
Du får en konsekvent rankhistorik i Baserow och en Slack-puff när den är klar. Ärligt talat är det skillnaden mellan ”vi följer ASO” och att faktiskt använda datan vecka efter vecka.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.