En kaffe, en bussbiljett, ett anteckningsblock. Små köp är lätta att glömma innan du hinner öppna ett kalkylark. Tänk om det räckte med ett Telegram-meddelande för att registrera ett köp och ett till för att kontrollera månadens summa?
I den här guiden bygger vi Pocket Ledger, en utgiftslogg i Telegram med Google Sheets. Skicka ett köp, bekräfta de föreslagna uppgifterna och fråga efter din månadssumma. Kalkylarket lagrar raderna och räknar; boten sköter samtalet. Här är det färdiga resultatet.

Samma resultat i arket. Kaffet för 4.50 EUR ökar 7.70 EUR till 12.20 EUR; 6.00 USD hålls separat.
Skärmbilderna följer en demo i verklig drift med fiktiva utgifter. Vi jämförde den sparade raden med Action-anropet i Inbox och sedan båda Telegram-svaren med värdena från Google Sheets. Personliga identifierare och autentiseringsuppgifter är dolda i de publicerade bilderna.
Första delmålet är ett sparat kaffe. Det andra är en summa som går att kontrollera i arket. Du får också se varför ”sparat” i ett chattsvar bara är halva beviset.
Ladda ner Pocket Ledgers startpaket med en formaterad startarbetsbok, avatar, prompt, Action-inställningar och testblad. Importera arbetsboken till arket som Quickchat AI skapat och följ sedan stegen nedan. De kopierbara exemplen använder genomgående engelska och november 2026 så att du kan jämföra dina resultat med skärmbilderna.
Vad behöver du för att bygga en utgiftslogg i Telegram?
Du behöver Telegram, ett Google-konto och ett Quickchat AI-konto. Lösningen använder inställningar i kontrollpanelen och en kalkylarksformel; inget program behöver driftas.
- Skapa ett Quickchat AI-konto, slutför verifieringen och skapa en Agent med namnet
Pocket Ledger. - Ha ett Google-konto redo för det nya arket. Börja med de fiktiva posterna nedan.
- Använd en ny Telegram-bot för övningen. Ha ett andra betrott Telegram-konto tillgängligt för åtkomsttestet i slutet.
Quickchat AI:s Free-plan är till för personligt, icke-kommersiellt lärande och har en begränsad kvot. AI-samtal och Simulation Testing använder krediter. Se aktuella planer och kvoter innan du väljer plan för löpande användning.
Två riktningar, två Actions. Att spara en rad ger inte Agenten möjlighet att läsa tidigare totalsummor.
Steg 1: Hur ansluter du din privata Telegram-bot?
BotFather skapar botens identitet. Quickchat AI tillhandahåller Agenten som besvarar meddelandena.
Öppna officiella @BotFather, skicka /newbot, döp boten till Pocket Ledger och välj ett ledigt användarnamn som slutar på bot. Använd /setuserpic för att ladda upp avataren från paketet. Håll token hemlig; du ska klistra in den direkt i Quickchat AI.

Öppna External Apps → Telegram → Your own bot i Quickchat AI. Klistra in autentiseringsuppgiften i Bot Token i dialogrutan Connect to Telegram. Slå på Enable your own bot och välj Save. BotFather-guiden beskriver skärmarna i detalj.
Den anslutna boten har samma Pocket Ledger-namn som du ser i Telegram.
Öppna den nya botens länk i Telegram, skicka /start och sedan Hello i den privata chatten. /start skickar välkomstmeddelandet; det vanliga meddelandet skapar konversationen i Inbox och den avsändarmetadata som behövs i stegen nedan. Låt Actions som hanterar personliga uppgifter vara inaktiva under konfigureringen.

Öppna samtalet i Quickchat AI under Inbox → Details → Visitor. Leta upp Telegram User Id och Telegram Chat Type (metadatanycklarna är telegram_user_id och telegram_chat_type). Kopiera det numeriska användar-ID:t med kontrollen som visas när du håller pekaren över det och kontrollera att chattypen är private.
Hämta ditt avsändar-ID från detta fält. Personliga identifierare är dolda i skärmbilden; använd ditt eget faktiska värde.
ID:t kommer från Telegrams avsändarmetadata. Ditt användarnamn, en siffra inskriven i ett meddelande och botens eget ID är andra saker. Du använder avsändar-ID:t för att begränsa båda Actions i nästa steg.
Steg 2: Hur förbereder du Google-kalkylarket?
Google Sheets-integrationen skapar ett kalkylark och en första Action. Återanvänd filen så att Action och Googles behörighet avser samma resurs.
- Öppna Actions & MCPs → Add Action → Google Sheets och auktorisera ditt Google-konto. Anslutningsguiden för Google Sheets förklarar samtycket och startkonfigurationen.
- Stäng av den första Action direkt. Den skapas aktiv. Behåll namnet
log_lead_to_google_sheet, eftersom återanslutningen använder namnet för att hitta den. Vi ändrar dess uppgift till att spara utgifter. - Öppna det skapade kalkylarket och döp det till
Pocket Ledger demo. I den här nya demofilen väljer du File → Import → Upload, väljerpocket-ledger-starter.xlsxfrån paketet och sedan Replace spreadsheet. Klicka på Import data. Då förbereds bådeExpensesochSummaryi filen som Quickchat AI har åtkomst till. Använd alternativet endast i det nya demoarket. - Kontrollera de tre startraderna nedan. I
Summaryska startsummorna vara EUR 7.70 och USD 6.00. Steg 6 förklarar formeln och ansluter Action som läser sammanställningen.
Börja med Google Sheets-anslutningen. Auktoriseringen skapar kalkylarket som båda Actions använder.
Vill du hellre skapa flikarna själv? Döp om startfliken till Expenses. För dessa engelska exempel väljer du File → Settings → Locale → United States. Formatera A:D och F:H som Plain text och E som Number med två decimaler. Klistra sedan in blocket nedan i A1. Frys rubrikraden och bredda kolumnerna. Lägg till Summary enligt steg 6. Google beskriver också hur du importerar en Excel-arbetsbok till ett befintligt ark.
Kopiera de tre första utgifterna
date month item category amount currency note conversation_url
2026-11-01 2026-11 coffee food 4.50 EUR synthetic example
2026-11-02 2026-11 bus ticket transport 3.20 EUR synthetic example
2026-11-03 2026-11 notebook stationery 6.00 USD synthetic example
Tre startutgifter, redo för den fjärde. Beloppen är tal i E; valutakoderna är separata textvärden i F.
Kolumnen conversation_url länkar varje ny utgift till dess samtal. Lämna den tom för de tre manuellt inmatade exemplen. Googles drive.file-behörighet omfattar filer som appen skapat eller uttryckligen fått tillgång till; denna lösning använder det integrationsskapade arket och ger inte åtkomst till hela din Drive.
Steg 3: Hur begränsar du utgifterna till din egen chatt?
Ställ in Run only when på varje Action som läser eller skriver i loggen. Båda villkoren måste stämma, så ditt ID räcker inte ensamt i en gruppchatt.
| Metadatanyckel | Jämförelse | Värde |
|---|---|---|
telegram_user_id | equals | Ditt verkliga numeriska avsändar-ID från steg 1 |
telegram_chat_type | equals | private |
- Öppna den inaktiva
log_lead_to_google_sheetoch hitta Run only when. - Lägg till båda villkoren ovan. Använd exakt rätt metadatanycklar och ID:ts siffror, utan användarnamn eller
@-prefix. - Spara Action utan att aktivera den. Lägg samma villkor på läs-Action när du skapar den i steg 6.
Sparåtgärdens villkor i den lokala demon. Ersätt det fiktiva ID:t med ditt riktiga avsändar-ID och upprepa båda villkoren på läs-Action.
Båda villkoren behövs på båda Actions. En annan avsändare eller en gruppchatt måste nekas innan en HTTP-förfrågan når Google Sheets.
Detta är Action-villkor som upprätthålls på servern. Att skriva ”svara bara mig” i prompten är ingen åtkomstkontroll. Begränsa även arkets delning och åtkomsten till ditt Quickchat AI-konto.
Steg 4: Hur får du boten att spara en bekräftad utgift?
Anpassa den första Action till att lägga till en rad i arkets kolumnordning. Ange When to run → AI decides så att den kan vänta på bekräftelse. Ge sedan Agenten en bekräftelseregel innan du aktiverar den.
Konfigurera utgiftsfälten
Under What to ask the user first ersätter du lead-fälten med dessa parametrar. Behåll parameternamnen exakt som de visas.
| Parameternamn | Datatyp | Obligatoriskt | Beskrivning att ange |
|---|---|---|---|
date | Text | Ja | Utgiftsdatum i YYYY-MM-DD, bekräftat av ägaren. Fråga om det saknas. |
month | Text | Ja | YYYY-MM från det bekräftade datumet. |
item | Text | Ja | Kort namn på inköpet. |
category | Text | Ja | Enkel kategori som ägaren godkänt, till exempel mat eller transport. |
amount | Decimal Number | Ja | Positivt numeriskt belopp utan valutasymbol. |
currency | Text | Ja | Bekräftad ISO-valutakod, till exempel EUR eller USD. Klargör tvetydiga symboler. |
note | Text | Nej | Valfri anteckning. Lämna tom om ingen angetts. |
Behåll arkets verkliga ID från befintlig API Endpoint. Ändra intervallet till Expenses!A:H, behåll metoden POST och ange Query Params som valueInputOption=RAW och insertDataOption=INSERT_ROWS. Ta bort dubbla parametrar om de redan finns i URL:en.
Kopiera referensen för append-förfrågan
POST https://sheets.googleapis.com/v4/spreadsheets/YOUR_CREATED_SHEET_ID/values/Expenses!A:H:append
Query Params:
valueInputOption = RAW
insertDataOption = INSERT_ROWS
Headers:
Authorization = Bearer {{google_sheets_access_token}}
Content-Type = application/json
YOUR_CREATED_SHEET_ID är en förklarande platshållare. Behåll det verkliga ID som redan finns i start-URL:en; skriv inte över det med platshållaren. Välj befintlig Google Sheets System Token i Authorization-värdet och den inbyggda variabeln för samtals-URL i kroppen.
Skriv följande på fliken Body:
{"values":[["{{date}}","{{month}}","{{item}}","{{category}}","{{amount}}","{{currency}}","{{note}}","{{conversation_url}}"]]}
Lokal konfiguration av utgifts-Action. Kroppen definierar cellordningen; beloppsparameterns format definierar dess numeriska typ.
Behåll citattecknen runt {{amount}} i redigeraren. Denna exakta platshållare avser en Decimal Number-parameter, så ersättningen ger ett JSON-tal som 4.5. Utan citattecknen blir redigerarens JSON ogiltig. Kontrollera i det färdiga arket att E är numerisk och tas med i formeln.
Googles append-API lägger till raden. RAW behåller text, som en anteckning som börjar med =, bokstavligt i stället för att beräkna den som en formel. Den numeriska parametern anger beloppets typ.
Kopiera beskrivningen för spar-Action
Save one personal expense to the configured Google Sheet. Call only after the owner explicitly confirms the proposed date, item, category, amount and currency. Ask for missing or ambiguous fields before saving. After confirmation, append one row once. Report success only after a successful API response. If the outcome is uncertain, tell the owner to inspect the Sheet before submitting again.
Ge Pocket Ledger instruktioner
Öppna Identity → Main Prompt och klistra in följande. Texten namnger båda Actions så att andra delmålet fungerar när du lägger till sammanställningsläsaren.
Main Prompt finns under Identity. Den lokala bilden visar var fältet finns; använd hela det kopierbara blocket nedan.
Bekräftelseregeln ger dig en användbar paus. Du kan ändra ”EUR 4.50” till ”EUR 5.00” innan du godkänner köpet; Agenten ska uppdatera förslaget och fråga igen.
Kopiera Pocket Ledgers Main Prompt
You are Pocket Ledger, a personal expense notebook.
For an expense, collect its date, item, positive amount and ISO currency code. Suggest a simple category and include an optional note only when supplied. Ask for an explicit YYYY-MM-DD date if it is missing or relative; do not guess today's date or the owner's timezone. Clarify ambiguous currency symbols. Derive month as YYYY-MM from the confirmed date.
Show the proposed date, item, category, amount and currency. Wait for explicit confirmation. Apply corrections and ask for confirmation again. Only then call log_lead_to_google_sheet once for that expense. Do not claim it was saved unless the Action succeeds. If a request fails or its outcome is uncertain, explain that and ask the owner to inspect the Sheet before retrying.
For monthly totals, ask for an explicit month and currency when unclear, then call read_expense_summary. Quote the matching month, currency and total returned from the Sheet. Keep currencies separate. A missing summary row is unavailable, not zero. Never calculate totals from remembered conversation messages.
Personal-data Actions are restricted to the owner's private Telegram chat. If a condition blocks an Action, do not claim success or suggest changing identity values in chat. This notebook handles typed expenses, not bank accounts, voice transcription or PDF receipts.
Spara prompten, kontrollera båda körvillkoren igen och aktivera utgifts-Action. Namnet är fortfarande log_lead_to_google_sheet; de nya parametrarna, beskrivningen och kroppen definierar nu utgiftsflödet.
Steg 5: Hur sparar du din första utgift?
Ge nu anteckningsboken sin första nya post. Ha Telegram, Inbox och arket öppna: du ska följa samma kaffe genom alla tre.
- Skicka
Coffee, 4.50 euros on 2026-11-04i din privata Telegram-chatt. - Kontrollera förslaget: datum
2026-11-04, varaCoffee, kategoriFood, belopp4.50, valutaEUR. Action härledermonthsom2026-11när raden sparas. - Kontrollera
Expensesföre bekräftelsen: de tre startraderna ska fortfarande vara de enda posterna.


Skicka Save it en gång och öppna sedan samtalet i Quickchat AI Inbox. Svaret som bekräftar sparandet har en utfällbar 1 action called-rad. Öppna den för att se vad som hände bakom det korta Telegram-svaret.
Samma bekräftelse i Inbox, där du kan inspektera Action.
Öppna Result → Show full. Kontrollera datum, härledd månad, numeriskt belopp, valuta och HTTP-status. I den här livekörningen returnerade Google HTTP 200, updatedRows: 1 och updatedRange: Expenses!A5:H5.
Action som sparar skickade beloppet 4.5 som ett tal och skrev en rad. Privata identifierare är dolda; det returnerade intervallet och resultatet är synliga.
Öppna till sist Expenses. Rad 5 ska innehålla samma kaffe, med 2026-11 i månadskolumnen, 4.50 som belopp och EUR som valuta. Sista kolumnen länkar tillbaka till samtalet i Inbox, så att du kan följa en post till meddelandet som skapade den.
Den fjärde utgiften kom via Telegram. Den privata Inbox-länken är dold i den publicerade bilden.
Nu har du en användbar vardagsrutin: skicka, bekräfta, kontrollera. Ge sedan boten något tillförlitligt att läsa när du frågar vart månadens pengar tog vägen.
Steg 6: Hur frågar du efter en månadssumma?
Låt Google Sheets beräkna summan och låt läs-Action hämta den. När matematiken ligger i arket går svaret att kontrollera även efter att samtalet avslutats.
Lägg till en Summary-flik
Om du importerade startarbetsboken är Summary och dess formler redan förberedda. Startvärdena är EUR 7.70 och USD 6.00; när kaffet sparas ändras bara EUR-raden. Följ stegen nedan om du skapar arket manuellt.
Utgångspunkten: två valutor, två oberoende summor.
- Skapa en flik med namnet
Summary. Ange Plain text för A:B och skriv sedanmonth,currency,totali A1:C1. - Ange
2026-11ochEURi A2:B2, därefter2026-11ochUSDi A3:B3. - Skriv denna formel i C2 och fyll ned till C3. Formatera C som tal med två decimaler.
=SUMIFS(Expenses!$E$2:$E$501,Expenses!$B$2:$B$501,A2,Expenses!$F$2:$F$501,B2)
Funktionen SUMIFS summerar belopp vars månad och valuta matchar sammanställningsraden. Om arkets nationella inställning kräver semikolon mellan argumenten ersätter du formelns kommatecken med semikolon. Tal i JSON-förfrågningar använder fortfarande decimalpunkt.
Markera C2 för att se formeln bakom EUR 12.20. USD-raden står kvar på 6.00.
De ursprungliga 7,70 EUR plus det nya kaffet för 4,50 EUR blir 12,20 EUR. Anteckningsboken för 6,00 USD hör till en egen summa.
Startformeln omfattar raderna 2 till 501. I den avbildade körningen slutar dess tre intervall på 502 efter att den nya raden infogats. Sheets kan justera referenser när rader infogas; kontrollera att alla tre Expenses-intervall följer samma rader och utöka dem tillsammans innan poster hamnar utanför det täckta intervallet. Lägg till en sammanställningsrad för varje kombination av månad och valuta du vill fråga om.
Lägg till läs-Action
Öppna Actions & MCPs → Add Action → API Action. Använd Generate med förfrågan nedan; genererade Actions börjar inaktiva. Döp den till read_expense_summary och behåll When to run som AI decides så att resultatet kan användas i svaret. Återanvänd samma verkliga kalkylarks-ID och Google Sheets System Token. Inga användarparametrar behövs.
Kopiera förfrågan till Action-byggaren
Create a read-only Google Sheets Action named read_expense_summary. Use GET for the Summary!A1:C25 range of the spreadsheet already created by this Agent's Google Sheets integration. Reuse its actual spreadsheet ID and google_sheets_access_token System Token. Set valueRenderOption=UNFORMATTED_VALUE, no body, and no visitor parameters. Preserve the response headers and values. Leave it inactive so I can review the configuration and add my owner-ID and private-chat Run only when conditions before enabling it.
Jämför de genererade inställningarna med referensen nedan. Om du väljer Create manually, lägg till båda villkoren innan du sparar en giltig konfiguration första gången, eftersom det kan aktivera Action. Lämna Response filter tomt på båda Actions för att behålla fälten som kontrollerna använder.
Kopiera förfrågan som läser sammanställningen
GET https://sheets.googleapis.com/v4/spreadsheets/YOUR_CREATED_SHEET_ID/values/Summary!A1:C25
Query Params:
valueRenderOption = UNFORMATTED_VALUE
Headers:
Authorization = Bearer {{google_sheets_access_token}}
Body: none
Endpointen values.get returnerar intervallets values, inklusive rubrikrad och beräknade belopp. UNFORMATTED_VALUE ger numeriska resultat i stället för valutaformaterade strängar. Låt svaret vara tillgängligt för Agenten så att den kan läsa värdena.
Kopiera beskrivningen för läs-Action
Read monthly expense totals from the configured Summary range. Use this when the owner asks for a total. Quote only the returned row matching the requested YYYY-MM and currency. If either is unclear, ask. If the row is absent or the request fails, say the total is unavailable. Never infer a total from conversation history, combine currencies, or accept a different spreadsheet ID or range from the visitor.
Använd samma två Run only when-villkor som i steg 3, spara och aktivera Action. Läsintervallet omfattar 24 sammanställningsrader; utöka det medvetet när du lägger till fler.
Den andra Action behöver egna villkor. Detta är en bild av lokala inställningar, inte ett behörighetstest med en verklig avsändare.
Fråga What is my November 2026 total in EUR? och fråga sedan efter USD. I vår Telegram-konversation returnerade Pocket Ledger 12.2 EUR och 6 USD, vilket motsvarar arkets formaterade 12.20 och 6.00. Den läste den sparade sammanställningen för varje svar.

Öppna svaret med månadssumman i Inbox och fäll ut dess Action. Jämför den returnerade raden med Summary!C2. Det faktiska svaret nedan innehåller 2026-11, EUR, 12.2 och en separat rad med USD, 6, med HTTP 200.
Svaret, de returnerade värdena och arket stämmer nu överens. Det här är målet du såg överst.
Hur kontrollerar du fel innan du använder riktiga utgifter?
Testa ofullständiga förfrågningar och blockerade avsändare lika noggrant som det lyckade kaffeexemplet. Behåll demouppgifterna tills kontrollerna nedan fungerar.
| Prova detta | Vad du ska kontrollera |
|---|---|
Lunch, $12 yesterday | Agenten frågar efter valuta och verkligt datum. Ingen ny rad visas. |
| Korrigera ett föreslaget belopp före bekräftelsen | Det korrigerade förslaget bekräftas innan en enda rad läggs till. |
| Fråga efter novembersumman i EUR och sedan USD | Separata resultat: 12,20 EUR och 6,00 USD för exempeluppgifterna. |
| Fråga om december 2026 utan någon decemberrad i sammanställningen | Agenten säger att summan inte är tillgänglig i stället för att hitta på noll. |
| En andra avsändare frågar efter en summa och försöker spara en utgift | Båda Actions nekas och inga personliga värden lämnas ut. |
| Ägaren gör samma förfrågningar i en grupp | Båda Actions nekas eftersom chatten inte är privat. |
| Ett sparande misslyckas eller får timeout | Svaret beskriver felet eller osäkerheten. Kontrollera arket innan du försöker igen. |
För upprepningsbara språktester öppnar du Testing → Create Dataset → Paste messages och använder paketets meddelanden och utvärderingskriterier. Kör ett helt samtal separat för bekräftelseförloppet. Metadata i Preview eller Simulation är testdata; de bevisar inte att en verklig andra Telegram-avsändare blockeras.
Det lokala datasetet är förberett för testning. Att det finns är inte samma sak som en genomförd Simulation eller bevis för en skrivning i Google Sheets.
Om beteendet blir fel ändrar du en relevant instruktion, upprepar samma indata och granskar anropet och arket igen. Ett för tidigt append-anrop motiverar exempelvis en granskning av sparåtgärdens bekräftelseformulering. Bekräftelse är en instruktion, inte en unikhetsgaranti i databasen. Efter en timeout är det viktigare att kontrollera arket än att trycka på skicka igen.
När flödet fungerar tar du bort de fiktiva utgiftsraderna, behåller rubriker och formler och lägger till sammanställningsrader för de månader och valutor du verkligen använder. Ditt första riktiga inköp kan följa samma lilla rutin som kaffet.
Kan en AI-assistent hjälpa till att konfigurera Pocket Ledger?
En ansluten assistent för kontohantering kan förbereda Agenten och granska Action-inställningarna. Följ Manage with AI via Quickchat AI:s ChatGPT-listning eller Claude-listning. Ge den startpaketet och denna förfrågan:
Help me configure Pocket Ledger from this setup kit. Inspect the available Quickchat AI tools first. Prepare the Main Prompt and the two HTTP Actions using the exact field names, numeric amount type and fixed ranges. Keep log_lead_to_google_sheet as the starter name. Ask me to complete Google OAuth and Telegram Bot Token setup in the dashboard. Apply both owner/private run conditions before enabling either Action. Do not run credit-consuming tests or append expenses until I ask. Report any setting your tools cannot configure so I can complete it in the dashboard.
Ägaren slutför Googles samtycke och Telegram-anslutningen. Granska inställningarna och utför samma kontroller ovan oavsett vem som matat in dem.
Vanliga frågor
Hur registrerar jag utgifter i Telegram med Google Sheets?
Anslut en Telegram-bot till en Quickchat AI Agent och auktorisera Google Sheets. Konfigurera en Action som lägger till en utgift efter bekräftelse och en annan som läser en formelbaserad månadssammanställning. Begränsa båda Actions till ditt Telegram-användar-ID och en privat chatt.
Kan boten berätta hur mycket jag har spenderat den här månaden?
Ja, om den efterfrågade månaden och valutan har en rad i det konfigurerade Summary-intervallet. Google Sheets beräknar summan med SUMIFS och läs-Action hämtar den. En Action som bara lägger till rader kan inte hämta summor, och en saknad sammanställningsrad är inte noll.
Kan någon annan läsa mina utgifter genom Telegram-boten?
Båda Actions som hanterar personliga uppgifter måste kräva ditt verifierade telegram_user_id och telegram_chat_type lika med private. Villkoren blockerar anrop från andra avsändare och grupper. Testa båda fallen innan du lägger till personliga uppgifter och begränsa även åtkomsten till arket och Quickchat AI-kontot.
Är den här utgiftsloggen i Telegram gratis?
Att skapa en Telegram-bot är gratis. Quickchat AI:s Free-plan stödjer personligt, icke-kommersiellt lärande med ett begränsat antal AI-krediter. AI-svar och Simulation Testing använder krediter; löpande användning beror på tillgänglig kvot och plan.
Behöver jag Apps Script, Python eller en automationsserver?
Lösningen använder Quickchat AI Actions och en Google Sheets-formel. Du klistrar in de medföljande förfrågningsinställningarna, JSON-kroppen och prompten i kontrollpanelen; du driftsätter inte Apps Script, en Python-bot eller en automationsserver.
Kan jag använda mitt befintliga utgiftsark?
Den här lösningen använder kalkylarket som Quickchat AI:s Google Sheets-integration skapar. Dess drive.file-auktorisering ger inte obegränsad åtkomst till din Drive. Ersätt inte kalkylarks-ID:t med en valfri befintlig fil och anta att den går att nå.
Kan boten läsa kvittofoton eller röstmeddelanden?
Den här guiden gäller skrivna utgifter. Kvittoavläsning behöver ett separat test av bildleverans och bekräftelse i Telegram innan du förlitar dig på den. Rösttranskribering och tolkning av PDF-kvitton ingår inte i denna konfiguration.
Hur hanteras olika valutor och dubbla poster?
Varje valuta får en separat månadssumma; lösningen växlar inte valutor. Bekräftelse minskar oavsiktliga poster men ger inget atomiskt skydd mot dubbletter. Om ett sparande får timeout kontrollerar du arket innan du skickar igen.