Om du driver en AI-bot i Telegram eller WhatsApp kan kostnaderna kännas lite “mystiska”. Ena dagen ser allt bra ut. Sedan får du en API-faktura och inser att du inte har någon aning om vilka konversationer (eller vilken kund) som drev upp topparna.
Det är här automatisering för tokenkostnadsspårning hjälper. Det träffar byråägare som fakturerar kunder hårdast, men marknadsteam som kör community-botar känner av det också. Till och med en ensam konsult med en Telegram-bot slutar med att gissa när de borde logga.
Det här flödet fångar varje interaktion, summerar tokens, uppskattar USD och lägger till det i Google Sheets. Du får se hur det fungerar, vad du behöver och var folk oftast kör fast.
Så fungerar den här automatiseringen
Här är hela arbetsflödet du kommer att sätta upp:
n8n Workflow Template: Telegram + Google Sheets: spåra ai-tokenkostnader
flowchart LR
subgraph sg0["Telegram Flow"]
direction LR
n0@{ icon: "mdi:message-outline", form: "rounded", label: "Send Email", pos: "b", h: 48 }
n1@{ icon: "mdi:database", form: "rounded", label: "Get Contacts", pos: "b", h: 48 }
n2@{ icon: "mdi:database", form: "rounded", label: "Log", pos: "b", h: 48 }
n3@{ icon: "mdi:location-exit", form: "rounded", label: "Create Event", pos: "b", h: 48 }
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/>Clean Up"]
n5@{ icon: "mdi:database", form: "rounded", label: "Errors", pos: "b", h: 48 }
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/telegram.svg' width='40' height='40' /></div><br/>Error Response"]
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/telegram.svg' width='40' height='40' /></div><br/>Response"]
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/>Clean_Up"]
n9@{ icon: "mdi:robot", form: "rounded", label: "AI Agent", pos: "b", h: 48 }
n10["<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/>Evolution API"]
n11["<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 Media"]
n12@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Audio or Text Separation", pos: "b", h: 48 }
n13@{ icon: "mdi:cog", form: "rounded", label: "Convert to File", pos: "b", h: 48 }
n14@{ icon: "mdi:robot", form: "rounded", label: "Audio Transcription", pos: "b", h: 48 }
n15["<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/telegram.svg' width='40' height='40' /></div><br/>Telegram"]
n16@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Filter", pos: "b", h: 48 }
n17@{ icon: "mdi:swap-vertical", form: "rounded", label: "Text Mapping", pos: "b", h: 48 }
n18@{ icon: "mdi:brain", form: "rounded", label: "Chat Model", pos: "b", h: 48 }
n19@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Input Source", pos: "b", h: 48 }
n20@{ icon: "mdi:swap-vertical", form: "rounded", label: "Map", pos: "b", h: 48 }
n21@{ icon: "mdi:swap-vertical", form: "rounded", label: "Map1", pos: "b", h: 48 }
n22["<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/>WhatsApp"]
n23["<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/>WhatsApp Erro"]
n24@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Input Source1", pos: "b", h: 48 }
n2 --> n19
n20 --> n12
n21 --> n17
n5 --> n24
n16 --> n9
n9 --> n4
n9 --> n8
n4 --> n2
n8 --> n5
n15 --> n21
n11 --> n13
n18 -.-> n9
n0 -.-> n9
n3 -.-> n9
n1 -.-> n9
n19 --> n22
n19 --> n7
n17 --> n16
n10 --> n20
n24 --> n23
n24 --> n6
n13 --> n14
n14 --> n17
n12 --> n11
n12 --> n17
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 n15 trigger
class n9,n14 ai
class n18 aiModel
class n12,n16,n19,n24 decision
class n1,n2,n5 database
class n10,n11,n22,n23 api
class n4,n8 code
class n0 disabled
class n1 disabled
class n3 disabled
classDef customIcon fill:none,stroke:none
class n4,n6,n7,n8,n10,n11,n15,n22,n23 customIcon
Varför det här spelar roll: AI-kostnader är osynliga tills det gör ont
AI-chatt känns billig i stunden. Några svar här, en transkribering av ett röstmeddelande där, och allt rullar vidare. Problemet är att du inte ser mätaren i realtid. När ekonomi frågar “Varför ökade användningen?” sitter du och gräver i chattloggar och försöker återskapa vad som hände. Det tar tid och är ärligt talat opålitligt. Om du stödjer flera kanaler (Telegram plus WhatsApp) blir det dubbelt rörigt eftersom varje plattform berättar en annan historia.
Det går snabbt att dra iväg. Här är var det oftast fallerar i den dagliga driften.
- Tokenanvändning finns i modellernas dashboards, inte i ditt rapporteringsflöde, så ingen kollar förrän på fakturadagen.
- Manuell loggning överlever aldrig en stressig vecka, särskilt när flera teammedlemmar svarar på meddelanden.
- Kundfakturering blir “bästa försök”, vilket leder till obekväma avskrivningar och scope creep.
- När du lägger till röstmeddelanden dyker transkriberingskostnader upp, och spend blir ännu svårare att förklara i efterhand.
Vad du bygger: tokenloggning från Telegram/WhatsApp till Google Sheets
Den här automatiseringen lyssnar på inkommande meddelanden från Telegram och/eller WhatsApp (via en webhook). Om meddelandet är text går det vidare direkt. Om det är ett ljudmeddelande hämtar flödet mediafilen, konverterar den till ett användbart format och transkriberar innan det fortsätter. Därefter kör en AI-agent din avsedda assistentlogik med en chattmodell (konfigurerad via OpenRouter), och flödet normaliserar resultatet så att tokenräkningar och metadata är korrekt formaterade. Till sist lägger det till en ny rad i Google Sheets med prompt-tokens, completion-tokens, totalt antal tokens, tidsstämplar samt avsändare/kanal. Valfritt kan det räkna fram en enkel USD-uppskattning så att du kan granska spend utan att öppna en AI-dashboard.
Flödet startar med Telegram Trigger eller en WhatsApp-webhook-intagning. Sedan routar det ingångskällan, hanterar text eller ljud och kör AI-agenten. I slutet loggar det användningen i Sheets och skickar ett bekräftelsemeddelande (eller registrerar ett fel och notifierar dig) beroende på vad som hände.
Det du bygger
| Vad som automatiseras | Vad du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att din bot hanterar cirka 20 konversationer per dag över Telegram och WhatsApp, och du vill ha tokensummor plus kostnadsnoteringar för varje. Manuellt kan du lägga 5 minuter per konversation på att kolla dashboards och klistra in siffror i ett ark, vilket är ungefär 100 minuter per dag. Med det här flödet sker loggningen automatiskt efter varje meddelande, så ditt “jobb” blir en snabb veckogenomgång i Google Sheets (kanske 20 minuter). Det är en rejäl tidsbesparing, och faktureringsunderlaget finns redan på plats.
Innan du börjar
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- Google Sheets för användningslogg och rapportering.
- Telegram-bot för att ta emot meddelanden och svara.
- WhatsApp Evolution API (valfritt) för att fånga WhatsApp-chattar via webhook.
- OpenRouter API-nyckel (hämta den från din OpenRouter-dashboard) för att köra chattmodellen och rapportera tokenanvändning.
Kunskapsnivå: Medel. Du kopplar konton, redigerar ett Sheet-ID och bekräftar webhook-/Telegram-inställningar.
Vill du att någon bygger detta åt dig? Prata med en automatiseringsexpert (gratis 15-minuters konsultation).
Steg för steg
Ett meddelande kommer in från Telegram eller WhatsApp. Telegram använder en bot-trigger, medan WhatsApp kommer in via ett webhook-intag. Ett routningssteg (Switch) taggar källan så att svar och felnotiser går till rätt plats.
Flödet gör röriga indata till felfri text. Om meddelandet innehåller ljud hämtar det mediafilen, konverterar den och transkriberar med en OpenAI-transkriberingsnod. Om det redan är text hoppar det över ljudspåret och mappar fälten du vill logga (användare/kanal, meddelande, tidsstämpel).
Din AI-agent körs och sedan extraherar flödet användning. AI Orchestrator anropar chattmodellen (via OpenRouter) och skapar både ett svar och användningsmetadata. Kod-/normaliseringsnoder formar om utdata så att du får konsekventa “prompt-tokens”, “completion-tokens” och “totalt antal tokens”, även när olika meddelandetyper kommer in.
Google Sheets blir ditt källsystem. En Google Sheets-nod lägger till en ny rad i din loggflik. Vid lyckat resultat kan flödet skicka en snabb bekräftelse tillbaka till Telegram eller WhatsApp; vid fel registrerar det en felrad och skickar en varning.
Du kan enkelt justera kalkylarkets kolumner så att de matchar din faktureringsmodell utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: Konfigurera webhook-triggern
Konfigurera inkommande kanaler så att arbetsflödet kan ta emot webhook-payloads och Telegram-meddelanden.
- Lägg till och öppna Webhook Intake, och kopiera sedan Test URL för inledande testning.
- Öppna Telegram Trigger och ställ in vilka uppdateringstyper ni vill ta emot (t.ex. message, audio).
- Bekräfta flödet: Webhook Intake → Map Webhook Payload och Telegram Trigger → Map Telegram Payload.
Autentiseringsuppgifter krävs: Anslut era Telegram API-autentiseringsuppgifter i Telegram Trigger.
Steg 2: Anslut Google Sheets
Förbered loggningsdestinationerna som används för användningsspårning och felregistrering.
- Öppna Update Usage Log och välj kalkylarket och fliken där användningsrader ska skrivas.
- Öppna Record Error Log och välj kalkylarket och fliken för felposter.
- Säkerställ att båda noderna mappar de kolumner ni förväntar er (t.ex. timestamp, input source, message, model).
Autentiseringsuppgifter krävs: Anslut era Google Sheets-autentiseringsuppgifter i Update Usage Log och Record Error Log.
Steg 3: Konfigurera AI Orchestrator
Konfigurera AI-lagret som tolkar input och koordinerar valfria verktyg.
- Öppna Chat Model Engine och välj er OpenRouter-modell och temperature vid behov.
- Öppna AI Orchestrator och koppla Chat Model Engine som dess språkmodell.
- Om ni planerar att använda verktyg, behåll Dispatch Email Alert, Retrieve Contact List och Generate Calendar Event aktiverade och anslutna till AI Orchestrator.
Autentiseringsuppgifter krävs: Anslut era OpenRouter-autentiseringsuppgifter i Chat Model Engine.
Autentiseringsuppgifter krävs: Anslut era OpenAI-autentiseringsuppgifter i Transcribe Audio.
OpenAI-autentiseringsuppgifter för Transcribe Audio krävs när ljud skickas genom arbetsflödet.
Steg 4: Konfigurera input-mappning och ljudhantering
Normalisera inkommande data så att både webhook- och Telegram-payloads går in i samma bearbetningsflöde.
- I Map Webhook Payload mappar ni inkommande webhook-fält till ert interna schema (t.ex. message text, media URL, sender).
- I Map Telegram Payload mappar ni Telegram-fält till samma schema som webhook-mappningen.
- Konfigurera Detect Audio vs Text för att routa ljudmeddelanden till Fetch Media File och textmeddelanden direkt till Map Text Fields.
- Verifiera ljudflödet: Fetch Media File → Convert Media File → Transcribe Audio → Map Text Fields.
- Använd Filter Records för att filtrera bort ofullständiga eller tomma meddelanden innan de når AI Orchestrator.
Steg 5: Konfigurera output och routning vid lyckat resultat
Definiera hur lyckade AI-resultat normaliseras och skickas tillbaka till användare och loggar.
- Säkerställ att AI Orchestrator skickar output till Normalize Output och därefter till Update Usage Log.
- Verifiera routningen från Update Usage Log till Route Input Source för källmedvetna svar.
- Route Input Source skickar output parallellt till både Post WhatsApp Reply och Send Success Notice—konfigurera formatet för respektive svar.
Autentiseringsuppgifter krävs: Anslut era Telegram API-autentiseringsuppgifter i Send Success Notice.
Steg 6: Lägg till felhantering
Fånga AI- eller bearbetningsfel och routa notifieringar på rätt sätt.
- Bekräfta att AI Orchestrator skickar fel-output till Normalize Error Output.
- Från Normalize Error Output, verifiera flödet till Record Error Log och därefter Route Error Source.
- Route Error Source skickar output parallellt till både Post WhatsApp Error och Send Error Notice—konfigurera respektive meddelandepayload.
Autentiseringsuppgifter krävs: Anslut era Telegram API-autentiseringsuppgifter i Send Error Notice.
Steg 7: Testa och aktivera ert arbetsflöde
Kör end-to-end-tester för att validera både lyckade flöden och felvägar innan ni går live.
- Klicka på Execute Workflow och skicka en test-webhook till Webhook Intake eller ett testmeddelande till Telegram Trigger.
- Bekräfta att lyckade körningar skapar rader i Update Usage Log och triggar output från Post WhatsApp Reply och Send Success Notice.
- Simulera ett fel (t.ex. ogiltig input) och verifiera att Record Error Log, Post WhatsApp Error och Send Error Notice tar emot förväntad data.
- När allt ser korrekt ut, växla arbetsflödet till Active för produktion.
Felsökningstips
- Google Sheets-inloggningar kan löpa ut eller behöva specifika behörigheter. Om saker slutar fungera, kontrollera åtkomsten för det anslutna Google-kontot i n8n-credentials och bekräfta att arket först är delat med det kontot.
- Om du använder Wait-liknande timing (till exempel mediabearbetning och transkribering) varierar bearbetningstiderna. Öka eventuell väntetid eller lägg till retry-logik om efterföljande noder misslyckas på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in din varumärkeston och regler för “vad som ska loggas” tidigt i AI-agentens instruktioner, annars kommer du att redigera utdata för alltid.
Snabba svar
Cirka 30 minuter om dina Telegram/WhatsApp- och Google Sheets-konton är redo.
Nej. Du kopplar mest inloggningar och klistrar in rätt Sheet-detaljer.
Ja. n8n har ett gratis alternativ för egen hosting 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 OpenRouter/OpenAI-användning, vilket beror på din modell och hur pratsam din bot är.
Två alternativ: n8n Cloud (hanterad, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och hanterar n8n bra. Egen hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det borde du sannolikt göra. Du kan ändra vad som loggas genom att redigera stegen “Map Text Fields” och “Update Usage Log” (till exempel lägga till ett kundnamn, kampanj eller intern projektkod). Om du bara vill ha Telegram, inaktivera WhatsApp-webhook-routen; om du bara vill ha WhatsApp kan du göra tvärtom. Många team justerar också AI-agentens instruktioner så att den returnerar en konsekvent “use case label” att lagra i Sheets.
Oftast är det en behörighetsfråga eller fel kalkylarks-ID. Bekräfta att Google-kontot i n8n har åtkomst till målarket, och kontrollera sedan dokument-ID och fliknamn i Google Sheets-noden igen. Om du nyligen ändrade arkets struktur (bytte namn på kolumner eller fliken), uppdatera mappningen så att append-åtgärden fortfarande matchar. Det kan också fallera om din Google-auktorisering har löpt ut, så autentisera om inloggningen och kör en testkörning.
Mer än nog för de flesta små team: hundratals chattmeddelanden per dag är realistiskt om din n8n-instans är rätt dimensionerad. Om du kör egen hosting är körningar inte begränsade av n8n, men din server och API:ernas rate limits blir den verkliga flaskhalsen. På n8n Cloud beror gränsen på planen, så tung användning kan knuffa dig till en betald nivå. Google Sheets kan också bli begränsningen om du skriver för många rader för snabbt, så batching eller en databas är bättre vid högre volym.
Ofta, ja. Det här flödet innehåller förgrening (Telegram vs WhatsApp), felroutning och valfri ljudtranskribering, och sådana flerstegsvägar kan bli dyra eller klumpiga i Zapier. n8n ger dig också möjligheten till egen hosting, vilket är nyttigt när meddelandevolymen växer. Samtidigt: om ditt enda mål är “skicka tokenanvändning till ett ark” med en källa och utan ljud kan Zapier eller Make kännas enklare. Om du vill ha en second opinion, prata med en automatiseringsexpert så sanity-checkar vi din setup.
När detta väl rullar slutar AI-användning att vara en överraskning och blir en rapport. Flödet sköter den repetitiva loggningen så att du faktiskt kan styra kostnaderna.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.