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
flowchart LR
subgraph sg0["Flow 1"]
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/webhook.dark.svg' width='40' height='40' /></div><br/>Webhook"]
n1["<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/>Get Fiat Exchange Rates"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Get Crypto Prices"]
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/code.svg' width='40' height='40' /></div><br/>Build JSON"]
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/webhook.dark.svg' width='40' height='40' /></div><br/>Respond"]
n3 --> n4
n0 --> n1
n0 --> n2
n4 --> n5
n2 --> n3
n1 --> n3
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,n1,n2,n5 api
class n4 code
classDef customIcon fill:none,stroke:none
class n0,n1,n2,n3,n4,n5 customIcon
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
| Vad det här arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
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.
- Lägg till noden Incoming Webhook Trigger och ställ in HTTP Method på
POST. - Ställ in Path på
crypto-fx. - Ställ in Response Mode på
responseNodeför att använda Return Webhook Reply för svaret.
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.
- Konfigurera Fetch Fiat Rates med URL satt till
https://api.exchangerate-api.com/v4/latest/USD. - 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. - 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.
Steg 3: Slå ihop och transformera data
Kombinera båda dataströmmarna och bygg en enhetlig JSON-payload för API-svaret.
- Lägg till noden Combine Data Streams och anslut Fetch Fiat Rates till input 2 och Retrieve Crypto Quotes till input 1.
- Lägg till noden Assemble JSON Payload och ställ in JavaScript Code på
let 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 Streams → Assemble JSON Payload definierar transformationskedjan för data.
Steg 4: Konfigurera webhook-svaret
Returnera den sammanställda payloaden som webhook-svar.
- Lägg till noden Return Webhook Reply och anslut den till Assemble JSON Payload.
- Lämna standardalternativen om ni inte behöver egna headers eller statuskoder.
Assemble JSON Payload → Return 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.
- Klicka på Execute Workflow och skicka en POST-förfrågan till Incoming Webhook Trigger test-URL.
- Bekräfta att svaret innehåller fälten
btc,eth,usd_eur,usd_ngnochtsfrån Return Webhook Reply. - Byt till webhook-URL:en för produktion och ställ workflowet på Active för användning live.
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
Cirka 30 minuter om n8n redan körs.
Nej. Du konfigurerar främst webhook-URL:en och mappar fält till Google Sheets (eller kopierar en färdig Apps Script-snutt).
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.
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.
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.
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.
Om du self-hostar n8n beror det främst på din server och hur ofta publika endpoints tolererar förfrågningar.
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.