בניית בוט למעקב הוצאות ב-Telegram עם Google Sheets

Piotr Grudzień
פורסם זמן קריאה: 12 דקות
שיחת Telegram אמיתית עם Pocket Ledger לצד סיכום Google Sheets המציג 12.20 EUR ו-6.00 USD

קפה, כרטיס אוטובוס, מחברת. קל לשכוח רכישות קטנות עד שפותחים את הגיליון. מה אם כדי לתעד רכישה תספיק הודעת Telegram אחת, וכדי לבדוק את החודש תספיק עוד אחת?

במדריך הזה נבנה את Pocket Ledger, מעקב הוצאות ב-Telegram עם Google Sheets. שלחו פרטי רכישה, אשרו את הנתונים המוצעים ובקשו את הסכום החודשי. הגיליון שומר את השורות ומחשב; הבוט מנהל את השיחה. כך נראית התוצאה המוגמרת.

היעד הראשון הוא קפה אחד שנשמר. השני הוא סכום שאפשר לבדוק בגיליון. תלמדו גם מדוע תשובת צ’אט שאומרת ״נשמר״ היא רק מחצית מהראיה.

הורידו את ערכת ההגדרות של Pocket Ledger לקבלת חוברת העבודה ההתחלתית המעוצבת, תמונת הפרופיל, הפרומפט, הגדרות ה-Actions ודף הבדיקות. ייבאו את חוברת העבודה לגיליון שיצר Quickchat AI, ואז עקבו אחר השלבים הבאים. הדוגמאות להעתקה משתמשות באנגלית ובנובמבר 2026 לכל אורכן, כדי שתוכלו להשוות את התוצאות לצילומי המסך.

מה צריך כדי לבנות מעקב הוצאות ב-Telegram?

צריך Telegram, חשבון Google וחשבון Quickchat AI. ההגדרה משתמשת באפשרויות לוח הבקרה ובנוסחה בגיליון; אין תוכנה שצריך לארח.

  1. צרו חשבון Quickchat AI, השלימו את האימות וצרו Agent בשם Pocket Ledger.
  2. הכינו חשבון Google לגיליון החדש. התחילו עם הרשומות הבדיוניות בהמשך.
  3. השתמשו בבוט Telegram חדש לתרגיל. הכינו חשבון Telegram שני ומהימן לבדיקת הגישה בסוף.

תוכנית Free של Quickchat AI מיועדת ללמידה אישית שאינה מסחרית וכוללת מכסה מוגבלת. שיחות AI ו-Simulation Testing צורכים קרדיטים. בדקו את התוכניות והמכסות העדכניות לפני בחירת תוכנית לשימוש מתמשך.

תרשים המציג Action אחת לכתיבת שורות הוצאות ו-Action נפרדת לקריאת הסיכום שני כיוונים, שתי Actions. שמירת שורה לא נותנת ל-Agent דרך לקרוא סיכומים קודמים.

שלב 1: איך מחברים את בוט ה-Telegram הפרטי?

BotFather יוצר את זהות הבוט. Quickchat AI מספק את ה-Agent שעונה להודעות שלו.

פתחו את @BotFather הרשמי, שלחו /newbot, תנו לבוט את השם Pocket Ledger ובחרו שם משתמש פנוי שמסתיים ב-bot. השתמשו ב-/setuserpic כדי להעלות את תמונת הפרופיל מהערכה. שמרו את הטוקן בסוד; תדביקו אותו ישירות ב-Quickchat AI.

BotFather יוצר את הבוט Pocket Ledger כשהטוקן שלו מוסתר

בחרו שם תצוגה ושם משתמש ייחודי. הטוקן של BotFather מוסתר.

ב-Quickchat AI פתחו External Apps → Telegram → Your own bot. בחלון Connect to Telegram הדביקו את פרטי ההזדהות ב-Bot Token. הפעילו Enable your own bot, ואז בחרו Save. המדריך ל-BotFather מסביר את המסכים בפירוט.

Quickchat AI מציג את Pocket Ledger מחובר כשהאפשרות Enable your own bot מופעלת הבוט המחובר נושא את אותו השם Pocket Ledger שתראו ב-Telegram.

פתחו את הקישור של הבוט החדש ב-Telegram, שלחו /start ואז שלחו Hello בשיחה הפרטית. /start שולח את הודעת הפתיחה; ההודעה הרגילה יוצרת את השיחה ב-Inbox ואת נתוני המטא של השולח שנדרשים בשלבים הבאים. השאירו את ה-Actions שמטפלות בנתונים אישיים כבויות בזמן ההגדרה.

Pocket Ledger משיב ל-start ול-Hello בשיחת Telegram פרטית אמיתית

התשובה ל-Hello מאשרת ש-Telegram מגיע ל-Agent שלכם. השיחה שמתחילה ב-Hello מופיעה גם ב-Quickchat Inbox.

פתחו את השיחה ב-Quickchat AI דרך Inbox → Details → Visitor. מצאו את Telegram User Id ואת Telegram Chat Type (מפתחות המטא-נתונים הם telegram_user_id ו-telegram_chat_type). העתיקו את מזהה המשתמש המספרי בעזרת הפקד שמופיע בריחוף, וודאו שסוג השיחה הוא private.

פרטי המבקר ב-Inbox מציגים את השדה Telegram User Id ואת Telegram Chat Type בערך private, כשהנתונים האישיים מוסתרים קחו את מזהה השולח שלכם מהשדה הזה. המזהים האישיים מוסתרים בצילום המסך; השתמשו בערך האמיתי שלכם.

המזהה מגיע ממטא-נתוני השולח של Telegram. שם המשתמש שלכם, מספר שהוקלד בהודעה והמזהה של הבוט עצמו הם דברים שונים. בשלבים הבאים תשתמשו במזהה השולח כדי להגביל את שתי ה-Actions.

שלב 2: איך מכינים את הגיליון ב-Google Sheets?

האינטגרציה של Google Sheets יוצרת גיליון ו-Action התחלתית. השתמשו באותו קובץ כדי שה-Action והרשאת Google יתייחסו לאותו משאב.

  1. פתחו Actions & MCPs → Add Action → Google Sheets ואשרו גישה לחשבון Google. מדריך החיבור ל-Google Sheets מסביר את ההסכמה ואת ההגדרה ההתחלתית.
  2. כבו מיד את ה-Action ההתחלתית. היא נוצרת כשהיא פעילה. שמרו על השם log_lead_to_google_sheet, כי החיבור מחדש מחפש אותה לפי השם. נשנה את תפקידה לשמירת הוצאות.
  3. פתחו את הגיליון שנוצר ותנו לו את השם Pocket Ledger demo. בקובץ ההדגמה החדש הזה, בחרו File → Import → Upload, בחרו את pocket-ledger-starter.xlsx מהערכה ואז בחרו Replace spreadsheet. לאחר מכן לחצו על Import data. כך תכינו את Expenses ואת Summary בתוך הקובץ ש-Quickchat AI יכול לגשת אליו. השתמשו באפשרות הזו רק בגיליון ההדגמה החדש.
  4. בדקו את שלוש השורות ההתחלתיות להלן. ב-Summary, הסכומים ההתחלתיים צריכים להיות 7.70 EUR ו-6.00 USD. שלב 6 מסביר את הנוסחה ומחבר את ה-Action הקוראת.

חלון החיבור ל-Google Sheets ב-Quickchat AI שמסביר את הגיליון וה-Action ההתחלתית שייווצרו התחילו בחיבור ל-Google Sheets. האישור יוצר את הגיליון שבו משתמשות שתי ה-Actions.

מעדיפים ליצור את הלשוניות בעצמכם? שנו את שם הלשונית ההתחלתית ל-Expenses. עבור הדוגמאות האלה באנגלית, הגדירו File → Settings → Locale → United States. עצבו את A:D ואת F:H כ-Plain text, ואת E כ-Number עם שתי ספרות אחרי הנקודה, ואז הדביקו את הבלוק הבא ב-A1. הקפיאו את שורת הכותרות והרחיבו את העמודות. הוסיפו את Summary לפי שלב 6. Google מתעדת גם ייבוא חוברת עבודה של Excel לגיליון קיים.

העתקת שלוש ההוצאות ההתחלתיות
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

הלשונית Expenses האמיתית לפני השמירה מ-Telegram, עם שלוש רכישות התחלתיות בדיוניות שלוש הוצאות התחלתיות, מוכנות לרביעית. הסכומים הם מספרים ב-E; קודי המטבע הם ערכי טקסט נפרדים ב-F.

העמודה conversation_url תקשר כל הוצאה חדשה לשיחה שלה. השאירו אותה ריקה בשלוש הדוגמאות שהוזנו ידנית. הרשאת drive.file של Google חלה על קבצים שהאפליקציה יצרה או שקיבלה אליהם גישה מפורשת; המתכון הזה משתמש בגיליון שנוצר באינטגרציה ולא מעניק גישה לכל ה-Drive.

שלב 3: איך מגבילים את ההוצאות לשיחה שלכם בלבד?

הגדירו Run only when בכל Action שקוראת או כותבת בפנקס. שני התנאים חייבים להתקיים, ולכן המזהה שלכם לבדו אינו מספיק בשיחה קבוצתית.

מפתח מטא-נתוניםהשוואהערך
telegram_user_idequalsמזהה השולח המספרי האמיתי שלכם משלב 1
telegram_chat_typeequalsprivate
  1. פתחו את ה-Action הכבויה log_lead_to_google_sheet ומצאו Run only when.
  2. הוסיפו את שני התנאים למעלה. השתמשו במפתחות המדויקים ובספרות המזהה, בלי שם משתמש או קידומת @.
  3. שמרו את ה-Action כשהיא עדיין כבויה. החילו את אותם תנאים גם על ה-Action הקוראת שתיצרו בשלב 6.

עורך Action ההוצאות עם תנאי הפעלה של מזהה הבעלים ושיחה פרטית תנאי ה-Action השומרת בהדגמה המקומית. החליפו את המזהה הבדיוני במזהה השולח האמיתי וחזרו על שני התנאים גם ב-Action הקוראת.

תרשים רעיוני המחייב את זהות הבעלים ושיחת Telegram פרטית לפני הפעלת כל אחת מה-Actions האישיות שני התנאים שייכים לשתי ה-Actions. שולח אחר או שיחה קבוצתית צריכים להיחסם לפני שבקשת HTTP מגיעה ל-Google Sheets.

אלו תנאי Actions שנאכפים בשרת. כתיבת ״ענה רק לי״ בפרומפט אינה בדיקת גישה. הגבילו גם את שיתוף הגיליון ואת הגישה לחשבון Quickchat AI.

שלב 4: איך גורמים לבוט לשמור הוצאה שאושרה?

התאימו את ה-Action ההתחלתית להוספת שורה לפי סדר עמודות הגיליון. הגדירו When to run → AI decides, כדי שתוכל להמתין לאישור. לאחר מכן תנו ל-Agent כלל אישור לפני ההפעלה.

הגדרת שדות ההוצאה

תחת What to ask the user first, החליפו את שדות הלידים בפרמטרים הבאים. שמרו על שמות הפרמטרים בדיוק כפי שהם מוצגים.

פרמטרפורמטחובההתיאור שיש להזין
dateTextכןתאריך ההוצאה בפורמט YYYY-MM-DD, מאושר על ידי הבעלים. לשאול אם חסר.
monthTextכןYYYY-MM מתוך התאריך שאושר.
itemTextכןשם קצר של הרכישה.
categoryTextכןקטגוריה פשוטה שהוסכמה עם הבעלים, למשל אוכל או תחבורה.
amountDecimal Numberכןסכום מספרי חיובי ללא סמל מטבע.
currencyTextכןקוד מטבע ISO מאושר, למשל EUR או USD. לברר סמלים עמומים.
noteTextלאהערה אופציונלית. להשאיר ריק אם לא נמסרה.

שמרו על מזהה הגיליון האמיתי מתוך API Endpoint הקיים. שנו את הטווח ל-Expenses!A:H, השאירו את השיטה POST והגדירו Query Params כ-valueInputOption=RAW ו-insertDataOption=INSERT_ROWS. הסירו פרמטרים כפולים אם הם כבר נמצאים בכתובת.

העתקת הגדרת בקשת ההוספה
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 הוא מציין מקום לצורכי הסבר. שמרו על המזהה האמיתי שכבר מופיע בכתובת ההתחלתית; אל תדרסו אותו במציין המקום. בחרו ב-System Token הקיים של Google Sheets בערך Authorization ובמשתנה המובנה של כתובת השיחה בגוף הבקשה.

בלשונית Body הזינו:

{"values":[["{{date}}","{{month}}","{{item}}","{{category}}","{{amount}}","{{currency}}","{{note}}","{{conversation_url}}"]]}

עורך Body האמיתי של API Endpoint עם שורת ההוצאה ותגיות הפרמטרים הגדרה מקומית של Action ההוצאות. הגוף קובע את סדר התאים; הפורמט של פרמטר הסכום קובע את הטיפוס המספרי.

השאירו את המרכאות סביב {{amount}} בעורך. מציין המקום המדויק הזה מפנה לפרמטר Decimal Number, ולכן ההחלפה מייצרת מספר JSON כגון 4.5. הסרת המרכאות הופכת את ה-JSON בעורך ללא תקין. בגיליון שנוצר, בדקו ש-E מספרית ונכללת בנוסחה.

API append של Google מוסיף את השורה. RAW משאיר טקסט, למשל הערה שמתחילה ב-=, כטקסט מילולי במקום לחשב אותו כנוסחה. הפרמטר המספרי מספק את טיפוס הסכום.

העתקת תיאור ה-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.

מתן הוראות ל-Pocket Ledger

פתחו Identity → Main Prompt והדביקו את הטקסט הבא. הוא מציין את שתי ה-Actions בשמן, כך שהיעד השני יעבוד לאחר הוספת קריאת הסיכום.

עורך Main Prompt של Pocket Ledger ב-Quickchat AI Main Prompt נמצא ב-Identity. הצילום המקומי מציג את מיקום השדה; השתמשו בבלוק המלא להעתקה שלהלן.

כלל האישור נותן לכם רגע מועיל לבדיקה. אפשר לתקן ״4.50 EUR״ ל-״5.00 EUR״ לפני אישור הרכישה; ה-Agent אמור לעדכן את ההצעה ולבקש אישור שוב.

העתקת Main Prompt של Pocket Ledger
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.

שמרו את הפרומפט, בדקו שוב את שני תנאי ההפעלה והפעילו את Action ההוצאות. השם נשאר log_lead_to_google_sheet; הפרמטרים, התיאור והגוף החדשים מגדירים כעת את תהליך ההוצאות.

שלב 5: איך שומרים את ההוצאה הראשונה?

עכשיו הוסיפו לפנקס את הרשומה החדשה הראשונה. השאירו את Telegram, את Inbox ואת הגיליון פתוחים: תעקבו אחרי אותו קפה בשלושתם.

  1. בשיחת Telegram הפרטית שלכם, שלחו Coffee, 4.50 euros on 2026-11-04.
  2. בדקו את ההצעה: תאריך 2026-11-04, פריט Coffee, קטגוריה Food, סכום 4.50, מטבע EUR. ה-Action גוזרת את month כ-2026-11 כשהיא שומרת את השורה.
  3. לפני האישור, בדקו את Expenses: שלוש השורות ההתחלתיות עדיין צריכות להיות הרשומות היחידות.

שלחו Save it פעם אחת, ואז פתחו את השיחה ב-Inbox של Quickchat AI. לתשובת אישור השמירה מצורף אזור נפתח בשם 1 action called. פתחו אותו כדי לראות מה קרה מאחורי התשובה הקצרה ב-Telegram.

תשובת אישור שמירת הקפה ב-Quickchat Inbox עם האזור הנפתח של קריאת Action אחת אותו אישור ב-Inbox, עם ה-Action זמינה לבדיקה.

פתחו את Result → Show full. בדקו את התאריך, החודש שנגזר ממנו, הסכום המספרי, המטבע וסטטוס ה-HTTP. בהרצה החיה הזו, Google החזירה HTTP 200, ‏updatedRows: 1 ו-updatedRange: Expenses!A5:H5.

ה-Action של ההוצאות פתוחה ב-Inbox ומציגה את הקלט האמיתי ואת התגובה המוצלחת להוספת שורה אחת, כשהמזהים האישיים מוסתרים ה-Action השומרת שלחה את הסכום 4.5 כמספר וכתבה שורה אחת. המזהים האישיים מוסתרים; הטווח שהוחזר והתוצאה נשארים גלויים.

לבסוף, פתחו את Expenses. שורה 5 אמורה להכיל את אותו קפה, עם 2026-11 בעמודת החודש, 4.50 בסכום ו-EUR במטבע. העמודה האחרונה מקשרת בחזרה לשיחה ב-Inbox, כך שאפשר לעקוב מהרשומה אל ההודעה שיצרה אותה.

Google Sheets אחרי האישור ב-Telegram, עם הקפה החדש בשורה 5 של Expenses ההוצאה הרביעית הגיעה דרך Telegram. הקישור הפרטי ל-Inbox מוסתר בתמונה שפורסמה.

כעת יש לכם הרגל שימושי לשגרה: לשלוח, לאשר ולבדוק. בהמשך ניתן לבוט מקור אמין לקריאה כשתשאלו לאן הלך הכסף החודש.

שלב 6: איך מבקשים סיכום חודשי?

תנו ל-Google Sheets לחשב את הסכום, ול-Action הקוראת להביא אותו. שמירת החישוב בגיליון מאפשרת לבדוק את התשובה גם אחרי שהשיחה מסתיימת.

הוספת לשונית Summary

אם ייבאתם את חוברת העבודה ההתחלתית, Summary והנוסחאות שלה כבר מוכנים. ערכי ההתחלה הם 7.70 EUR ו-6.00 USD; שמירת הקפה משנה רק את שורת EUR. אם אתם בונים את הגיליון ידנית, עקבו אחר השלבים להלן.

הלשונית Summary ההתחלתית מציגה 7.70 EUR ו-6.00 USD לפני שמירת הקפה נקודת ההתחלה: שני מטבעות, שני סכומים נפרדים.

  1. צרו לשונית בשם Summary. הגדירו את A:B כ-Plain text, ואז הזינו month, currency, total ב-A1:C1.
  2. הזינו 2026-11 ו-EUR ב-A2:B2, ואז 2026-11 ו-USD ב-A3:B3.
  3. הזינו את הנוסחה הזו ב-C2 ומלאו כלפי מטה עד C3. הגדירו את C כמספר עם שתי ספרות אחרי הנקודה.
=SUMIFS(Expenses!$E$2:$E$501,Expenses!$B$2:$B$501,A2,Expenses!$F$2:$F$501,B2)

הפונקציה SUMIFS מחברת סכומים שהחודש והמטבע שלהם תואמים לשורת הסיכום. אם הגדרות האזור בגיליון מחייבות נקודה-פסיק בין ארגומנטים, החליפו את הפסיקים בנוסחה בנקודה-פסיק. מספרים בבקשות JSON עדיין משתמשים בנקודה עשרונית.

הנוסחה האמיתית ב-Summary וסכומי נובמבר המעודכנים אחרי שמירת הקפה בחרו C2 כדי לראות את הנוסחה שמאחורי 12.20 EUR. שורת USD נשארת 6.00.

חישוב לדוגמה המשאיר את 12.20 EUR של נובמבר נפרדים מ-6.00 USD 7.70 EUR ההתחלתיים ועוד הקפה החדש בסך 4.50 EUR נותנים 12.20 EUR. המחברת בסך 6.00 USD שייכת לסיכום נפרד.

הנוסחה ההתחלתית מכסה את שורות 2 עד 501. בהרצה המצולמת הזו, שלושת הטווחים שלה מסתיימים ב-502 אחרי הכנסת השורה החדשה. Sheets עשוי לעדכן הפניות בזמן הכנסת שורות; בדקו ששלושת הטווחים ב-Expenses נשארים עם אותם גבולות, והרחיבו אותם יחד לפני שרשומות יחרגו מהטווח המכוסה. הוסיפו שורת סיכום חודש/מטבע לכל צירוף שתרצו לשאול עליו.

הוספת ה-Action הקוראת

פתחו Actions & MCPs → Add Action → API Action. השתמשו ב-Generate עם הבקשה להלן; Actions שנוצרות כך מתחילות כבויות. קראו לה read_expense_summary והשאירו את When to run על AI decides, כדי שהתוצאה תוכל לשמש בתשובה. השתמשו שוב באותו מזהה גיליון אמיתי ובאותו Google Sheets System Token. אין צורך בפרמטרים שמספק המשתמש.

העתקת הבקשה לבונה Actions
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.

השוו את ההגדרות שנוצרו לדוגמה הבאה. אם בוחרים Create manually, הוסיפו את שני התנאים לפני השמירה התקינה הראשונה, שעלולה להפעיל את ה-Action. השאירו את Response filter ריק בשתי ה-Actions כדי לשמר את השדות המשמשים לבדיקות.

העתקת בקשת קריאת הסיכום
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

נקודת הקצה values.get מחזירה את ה-values בטווח, כולל הכותרת והסכומים שחושבו. UNFORMATTED_VALUE מחזיר תוצאות מספריות במקום מחרוזות בפורמט מטבע. השאירו את התגובה זמינה ל-Agent כדי שיוכל לקרוא את הערכים.

העתקת תיאור ה-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.

החילו את אותם שני תנאי Run only when משלב 3, שמרו והפעילו את ה-Action. טווח הקריאה כולל 24 שורות סיכום; הרחיבו אותו במכוון כשאתם מוסיפים עוד שורות.

Action קריאת סיכום ההוצאות עם אותם תנאים של מזהה הבעלים ושיחה פרטית ה-Action השנייה זקוקה לתנאים משלה. זהו צילום של הגדרות מקומיות ולא בדיקת הרשאה של שולח אמיתי.

שאלו What is my November 2026 total in EUR?, ואז שאלו על USD. בשיחת Telegram שלנו, Pocket Ledger החזיר 12.2 EUR ו-6 USD, בהתאם לערכים המעוצבים 12.20 ו-6.00 בגיליון. הוא קרא את הסיכום השמור עבור כל תשובה.

התשובות האמיתיות ב-Telegram לסכומי נובמבר ב-EUR וב-USD אחרי שמירת הקפה

שאלה אחת לכל מטבע. Pocket Ledger קורא את הגיליון במקום לחבר סכומים מהודעות צ'אט שהוא זוכר.

פתחו את תשובת הסכום החודשי ב-Inbox והרחיבו את ה-Action שלה. השוו את השורה שהוחזרה ל-Summary!C2. התגובה החיה להלן כוללת 2026-11, ‏EUR, ‏12.2 ושורה נפרדת עם USD, ‏6, עם HTTP 200.

ה-Action לקריאת סיכום ההוצאות ב-Inbox מחזירה את סכומי נובמבר האמיתיים ב-EUR וב-USD מ-Google Sheets התשובה, הערכים שהוחזרו והגיליון תואמים עכשיו. זו נקודת הסיום שראיתם בראש העמוד.

איך בודקים טעויות לפני שימוש בהוצאות אמיתיות?

בדקו בקשות חסרות ושולחים חסומים באותה יסודיות שבה בודקים את שמירת הקפה. השאירו את נתוני ההדגמה עד שהבדיקות הבאות יצליחו.

מה לנסותמה לבדוק
Lunch, $12 yesterdayה-Agent שואל על המטבע ועל התאריך האמיתי. לא מופיעה שורה חדשה.
לתקן סכום מוצע לפני האישורההצעה המתוקנת מאושרת לפני הוספת שורה אחת.
לבקש את סיכום נובמבר ב-EUR ואז ב-USDתוצאות נפרדות: 12.20 EUR ו-6.00 USD עבור נתוני הדוגמה.
לשאול על דצמבר 2026 כשאין שורת סיכום לדצמברה-Agent אומר שהסכום אינו זמין במקום להמציא אפס.
שולח נוסף מבקש סכום ומנסה לשמור הוצאהשתי ה-Actions נדחות ולא נחשפים ערכים אישיים.
הבעלים שולח את אותן בקשות בקבוצהשתי ה-Actions נדחות כי השיחה אינה פרטית.
שמירה נכשלת או חורגת מהזמןהתשובה מדווחת על כישלון או חוסר ודאות. בודקים את הגיליון לפני ניסיון נוסף.

לבדיקות שפה חוזרות, פתחו Testing → Create Dataset → Paste messages והשתמשו בהודעות ובקריטריוני ההערכה שבערכה. הריצו שיחה מלאה בנפרד לבדיקת רצף האישור. המטא-נתונים של Preview או Simulation הם נתוני בדיקה; הם אינם מוכיחים ששולח Telegram אמיתי נוסף נחסם.

מערך הבדיקה של Pocket Ledger בממשק Testing האמיתי של Quickchat AI מערך הנתונים המקומי מוכן לבדיקה. עצם קיומו אינו ריצת Simulation שהושלמה ואינו הוכחה לכתיבה ב-Google Sheets.

אם התנהגות כלשהי נכשלת, שנו הוראה רלוונטית אחת, חזרו על אותו קלט ובדקו שוב את הקריאה ואת הגיליון. למשל, הוספה מוקדמת מחייבת בחינה של ניסוח האישור ב-Action השומרת. אישור הוא הוראה, לא הבטחת ייחודיות במסד הנתונים. אחרי חריגה מהזמן, בדיקת הגיליון חשובה יותר משליחה נוספת.

לאחר שהתהליך עובד, מחקו את שורות ההוצאות הבדיוניות, השאירו את הכותרות והנוסחאות והוסיפו שורות סיכום לחודשים ולמטבעות שבהם אתם באמת משתמשים. הרכישה האמיתית הראשונה יכולה לעבור את אותה שגרה קצרה כמו הקפה.

האם עוזר AI יכול לסייע בהגדרת Pocket Ledger?

עוזר מחובר לניהול חשבון יכול להכין את ה-Agent ולבדוק את הגדרות ה-Actions. פעלו לפי Manage with AI באמצעות הרישום של Quickchat AI ב-ChatGPT או הרישום ב-Claude. תנו לו את ערכת ההגדרות ואת הבקשה הזו:

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.

הבעלים משלים את הסכמת Google ואת חיבור Telegram. בדקו את ההגדרות והריצו את אותן בדיקות ללא קשר למי הזין אותן.

שאלות נפוצות

איך עוקבים אחרי הוצאות ב-Telegram עם Google Sheets?

מחברים בוט Telegram ל-Quickchat AI Agent ומאשרים גישה ל-Google Sheets. מגדירים Action אחת להוספת הוצאה אחרי אישור ואחרת לקריאת סיכום חודשי המבוסס על נוסחאות. מגבילים את שתיהן למזהה משתמש ה-Telegram שלכם ולשיחה פרטית.

האם הבוט יכול להגיד כמה הוצאתי החודש?

כן, כאשר לחודש ולמטבע המבוקשים יש שורה בטווח Summary שהוגדר. Google Sheets מחשב את הסכום באמצעות SUMIFS, וה-Action הקוראת מביאה אותו. Action שמוסיפה שורות בלבד אינה יכולה לקרוא סכומים, ושורת סיכום חסרה אינה אפס.

האם מישהו אחר יכול לקרוא את ההוצאות שלי דרך בוט ה-Telegram?

שתי ה-Actions של הנתונים האישיים חייבות לדרוש את telegram_user_id המאומת שלכם ואת telegram_chat_type בערך private. התנאים האלה חוסמים קריאות משולחים אחרים ומקבוצות. בדקו את שני המקרים לפני הוספת נתונים אישיים, והגבילו גם את הגישה לגיליון ולחשבון Quickchat AI.

האם מעקב ההוצאות הזה ב-Telegram חינמי?

יצירת בוט Telegram היא בחינם. תוכנית Free של Quickchat AI תומכת בלמידה אישית שאינה מסחרית עם מכסת קרדיטים מוגבלת של AI. תשובות AI ו-Simulation Testing צורכים קרדיטים; שימוש מתמשך תלוי במכסה הזמינה ובתוכנית.

האם צריך Apps Script, Python או שרת אוטומציה?

המתכון משתמש ב-Quickchat AI Actions ובנוסחת Google Sheets. מדביקים את הגדרות הבקשות, גוף ה-JSON והפרומפט שסופקו בלוח הבקרה; לא פורסים Apps Script, בוט Python או שרת אוטומציה.

האם אפשר להשתמש בגיליון ההוצאות הקיים שלי?

המתכון משתמש בגיליון שנוצר על ידי האינטגרציה של Google Sheets ב-Quickchat AI. הרשאת drive.file אינה מעניקה גישה בלתי מוגבלת ל-Drive. אל תחליפו את מזהה הגיליון בקובץ קיים כלשהו בהנחה שהוא נגיש.

האם הבוט יכול לקרוא תמונות קבלות או הודעות קוליות?

המדריך עוסק בהוצאות מוקלדות. חילוץ נתונים מקבלות דורש בדיקה נפרדת של העברת תמונה ואישור ב-Telegram לפני שמסתמכים עליו. תמלול קול וניתוח קבלות PDF אינם חלק מההגדרה הזו.

איך מטפלים במטבעות שונים וברשומות כפולות?

לכל מטבע יש סיכום חודשי נפרד; המתכון אינו ממיר מטבעות. אישור מפחית רשומות לא מכוונות, אך אינו מספק מניעה אטומית של כפילויות. אם השמירה חורגת מהזמן, בדקו את הגיליון לפני שליחה חוזרת.

Quickchat AI Quickchat AI Ask Quickchat AI a question