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

CoinGecko + Google Sheets: krypto och FX i sync

Rickard Andersson Partner, Nodenordic.se

Prisavstämningar är bedrägligt irriterande. En flik för BTC, en annan för ETH, en tredje för FX, och sedan klistrar du in värden i ett kalkylark och hoppas att du inte blandade ihop kolumner eller tidsstämplar.

Marknadsanalytiker som bygger veckorapporter känner igen det här. Detsamma gäller grundare som följer runway i flera valutor, och ops-ansvariga som försöker hålla dashboards konsekventa. En CoinGecko Sheets-synk fixar det stökiga, så att dina siffror slutar driva.

Det här arbetsflödet gör n8n till ett litet “mikro-API” som returnerar korrekt formaterad BTC/ETH + FX-data vid begäran, och gör det enkelt att lagra och använda i Google Sheets. Du ser vad det automatiserar, vad du får tillbaka och hur team vanligtvis kopplar in det i dashboards.

Så fungerar automatiseringen

Hela n8n-flödet, från trigger till slutligt utdata:

n8n Workflow Template: CoinGecko + Google Sheets: krypto och FX i sync

Problemet: prisdata blir snabbt rörig

Om du någon gång har försökt hålla krypto och FX i samma Google Sheet vet du hur det brukar gå fel. Det börjar enkelt, sedan kommer verkligheten ikapp. BTC uppdateras “nu”, FX uppdaterades “någon gång idag”, och din dashboard blir i det tysta en lappad duk av tidsstämplar som inte matchar. Någon frågar varför EUR-konverteringen ser fel ut, du spårar tillbaka, och det visar sig att ett värde kopierades från en annan källa. Det är tid du inte får tillbaka, och värre: det naggar förtroendet för själva kalkylarket.

Friktionen byggs på. Här är var det vanligtvis faller isär.

  • Manuella uppslag blir en daglig vana, och den vanan äter cirka 20 minuter om dagen när du räknar in kontroller och dubbelkoller.
  • Fält glider över tid eftersom en källa kallar det “price”, en annan kallar det “rate”, och ditt ark blir inkonsekvent.
  • Dashboards uppdateras vid olika tidpunkter, vilket gör att du inte kan jämföra krypto-rörelser med FX-rörelser med trygghet.
  • Ett litet copy-paste-fel kan få ringar på vattnet i rapporter, fakturor eller beslut som bygger på arket.

Lösningen: ett mikro-API som matar Sheets med strukturerad data

Det här n8n-flödet skapar en enkel GET-endpoint (en webhook) som du kan anropa när du behöver färska siffror. När endpointen träffas hämtar den USD-baserade FX-kurser från ExchangeRate-API och kryptopriser från CoinGecko för BTC och ETH, inklusive 24-timmars förändring. n8n slår sedan ihop båda svaren och formar dem till en prydlig JSON-payload med konsekventa fältnamn som btc.price, eth.change_24h, usd_eur och usd_ngn, plus en ISO-tidsstämpel. Till sist svarar den direkt med HTTP 200 så att det som anropade den (ett sheet-script, en dashboard, ett internt verktyg) får ett förutsägbart, återanvändbart resultat.

Flödet startar när din app (eller ett enkelt script) anropar /crypto-fx. Två publika dataanrop körs parallellt, sedan slår n8n ihop utdata och formaterar ett korrekt svar. Därifrån kan du lagra det i Google Sheets på en timer, eller använda det live för en dashboard-visning.

Det du får: automatisering vs. resultat

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

Säg att du uppdaterar ett Google Sheet två gånger om dagen för en liten dashboard: BTC-pris, ETH-pris, samt USD→EUR och USD→NGN. Manuellt är det fyra uppslag och noggrann copy-paste, vilket brukar landa på cirka 5 minuter per gång när du verifierar att du inte råkade ta ett gammalt värde. Säg 20 minuter per uppdatering, ungefär 40 minuter per dag. Med det här flödet är ditt “arbete” ett webhook-anrop och en skrivning till Sheets, vilket är närmare en minuts insats medan n8n hämtar i bakgrunden.

Det här behöver du

  • n8n-instans (testa n8n Cloud gratis)
  • Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
  • CoinGecko för BTC/ETH-priser och 24h-förändring
  • ExchangeRate-API för att hämta USD-baserade FX-kurser
  • Google Sheets för att lagra och visualisera de returnerade värdena

Svårighetsnivå: Medel. Du är bekväm med att redigera en webhook-URL och mappa några fält till ett sheet.

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

Så fungerar det

En klient träffar din webhook-endpoint. Du anropar n8n:s webhook-sökväg (GET /crypto-fx) från valfri plats: en liten dashboard, ett Google Apps Script, eller till och med ett webbläsartest medan du validerar utdata.

Två publika datakällor hämtas parallellt. n8n kör en HTTP-förfrågan till ExchangeRate-API för USD-baserade FX-kurser och en annan till CoinGecko för BTC/ETH-pris och 24-timmars förändringsvärden.

Svaren kombineras och struktureras. En merge slår ihop båda payloads, sedan formar ett kodsteg utdata till ett stabilt JSON-format med förutsägbara fältnamn och en tidsstämpel.

Flödet svarar direkt. Noden Respond to Webhook returnerar JSON (HTTP 200), vilket innebär att ditt sheet-script eller din dashboard får exakt det den förväntar sig utan extra mapping.

Du kan enkelt ändra listan över coins och FX-par för att matcha dina rapporteringsbehov. Se hela implementationsguiden nedan för alternativ för anpassning.

Steg-för-steg-guide för implementation

Steg 1: Konfigurera webhook-triggern

Konfigurera ingångspunkten som tar emot inkommande POST-förfrågningar för er Crypto FX API.

  1. Lägg till noden Incoming Webhook Trigger och ställ in HTTP MethodPOST.
  2. Ställ in Pathcrypto-fx.
  3. Ställ in Response ModeresponseNode för att använda Return Webhook Reply för svaret.

Tips: Webhook-URL:en kommer att inkludera sökvägen crypto-fx – kopiera den från nodens webhook-URL-fält efter att ni har sparat.

Steg 2: Anslut de parallella datakällorna

Konfigurera de två HTTP-förfrågningarna som körs samtidigt för att hämta fiatkurser och kryptopriser.

  1. Konfigurera Fetch Fiat Rates med URL satt till https://api.exchangerate-api.com/v4/latest/USD.
  2. Konfigurera Retrieve Crypto Quotes med URL satt till https://api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum&vs_currencies=usd&include_24hr_change=true.
  3. Anslut Incoming Webhook Trigger till både Fetch Fiat Rates och Retrieve Crypto Quotes.

Incoming Webhook Trigger skickar utdata parallellt till både Fetch Fiat Rates och Retrieve Crypto Quotes.

⚠️ Vanlig fallgrop: Om något av API:erna är rate-limited kan merge-steget vänta på saknad data. Testa varje URL i en webbläsare för att bekräfta tillgänglighet.

Steg 3: Slå ihop och transformera data

Kombinera båda dataströmmarna och bygg en enhetlig JSON-payload för API-svaret.

  1. Lägg till noden Combine Data Streams och anslut Fetch Fiat Rates till input 2 och Retrieve Crypto Quotes till input 1.
  2. Lägg till noden Assemble JSON Payload och ställ in JavaScript Codelet fx,cg;for(const it of $input.all()){ if(it.json?.rates) fx=it.json; if(it.json?.bitcoin) cg=it.json; } const payload={ btc:{ price: cg?.bitcoin?.usd ?? null, change_24h: cg?.bitcoin?.usd_24h_change ?? null }, eth:{ price: cg?.ethereum?.usd ?? null, change_24h: cg?.ethereum?.usd_24h_change ?? null }, usd_eur: fx?.rates?.EUR ?? null, usd_ngn: fx?.rates?.NGN ?? null, ts: new Date().toISOString() }; return [{json: payload}];.

Combine Data StreamsAssemble JSON Payload definierar transformationskedjan för data.

Steg 4: Konfigurera webhook-svaret

Returnera den sammanställda payloaden som webhook-svar.

  1. Lägg till noden Return Webhook Reply och anslut den till Assemble JSON Payload.
  2. Lämna standardalternativen om ni inte behöver egna headers eller statuskoder.

Assemble JSON PayloadReturn Webhook Reply slutför svarskedjan.

Steg 5: Testa och aktivera ert workflow

Verifiera webhook-svaret och slå på workflowet för användning i produktion.

  1. Klicka på Execute Workflow och skicka en POST-förfrågan till Incoming Webhook Trigger test-URL.
  2. Bekräfta att svaret innehåller fälten btc, eth, usd_eur, usd_ngn och ts från Return Webhook Reply.
  3. Byt till webhook-URL:en för produktion och ställ workflowet på Active för användning live.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • CoinGecko kan rate-limita vid hög belastning. Om du ser 429-svar i n8n:s körningsloggar, lägg till en kort Wait-node eller anropa endpointen mer sällan.
  • Om du hämtar in detta till Google Sheets via Apps Script spelar cachning roll. Utan den kan en dashboard-uppdatering trigga flera webhook-anrop och göra “slumpmässiga” fel mer sannolika.
  • Webhook-URL:er är lätta att blanda ihop. Använd n8n Production-URL:en utanför editorn och bekräfta att Webhook-noden är satt till GET med sökvägen crypto-fx.

Vanliga frågor

Hur lång tid tar det att sätta upp den här CoinGecko Sheets-synk-automatiseringen?

Cirka 30 minuter om n8n redan körs.

Behöver jag kodkunskaper för att automatisera CoinGecko Sheets-synk?

Nej. Du konfigurerar främst webhook-URL:en och mappar fält till Google Sheets (eller kopierar en färdig Apps Script-snutt).

Är n8n gratis att använda för det här CoinGecko Sheets-synk-flödet?

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å ta hänsyn till att CoinGecko- och ExchangeRate-API-anropen i det här flödet använder publika endpoints utan nyckel, så det brukar inte bli någon direkt API-kostnad för datan.

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

Två alternativ: n8n Cloud (hanterat, enklast uppsättning) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och klarar n8n bra. Self-hosting ger obegränsade körningar men kräver grundläggande serverhantering.

Kan jag anpassa det här CoinGecko Sheets-synk-flödet för fler coins och fler valutor?

Ja, och det är huvudskälet till att flödet är användbart på lång sikt. Du kan utöka CoinGecko HTTP-förfrågan till att inkludera fler coin-ID:n (till exempel lägga till solana) och sedan uppdatera kodnoden “Assemble JSON Payload” för att skriva ut extra fält. På FX-sidan kan du läsa fler valutakoder från FX-svaret och lägga till dem i samma JSON. Om du behöver enkel åtkomstkontroll kan du lägga till en enkel secret-kontroll i kodnoden och returnera en 401 när den saknas.

Varför misslyckas min CoinGecko-anslutning i det här flödet?

Oftast beror det på rate limiting eller ett tillfälligt avbrott uppströms. Kontrollera n8n:s körningsdetaljer för en 429 eller en timeout från HTTP-noden “Retrieve Crypto Quotes”, sänk sedan hur ofta du anropar webhooken eller lägg till en kort Wait och försök igen. Bekräfta också att du träffar Production webhook-URL:en, inte Test-URL:en.

Hur många förfrågningar klarar den här CoinGecko Sheets-synk-automatiseringen?

Om du self-hostar n8n beror det främst på din server och hur ofta publika endpoints tolererar förfrågningar.

Är den här CoinGecko Sheets-synk-automatiseringen bättre än att använda Zapier eller Make?

För ett pull-baserat “mikro-API” som detta passar n8n helt enkelt bättre eftersom du kan exponera en webhook-endpoint, slå ihop flera HTTP-svar och forma payloaden exakt som ditt sheet eller din dashboard förväntar sig. Zapier och Make kan också göra HTTP-anrop, men att bygga ett rent, återanvändbart API-liknande svar blir ofta klumpigt snabbt. Kostnad är en annan faktor: self-hosting undviker körningsbaserad prissättning, vilket spelar roll när en dashboard-refresh kan trigga flera anrop. Nackdelen är uppsättningen. Vill du ha det hanterat är n8n Cloud den smidigare vägen. Prata med en automationsexpert om du väljer mellan verktyg.

När detta väl körs slutar du jaga siffror mellan flikar. Ditt sheet förblir konsekvent, din dashboard förblir ärlig, och du får tillbaka den tiden varje 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.

×

Använd mall

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

Launch login modal Launch register modal