bKash / Nagad Transaction Tracker 🇧🇩
Track your daily spending across bKash, Nagad, Rocket,
and cash — in Bengali or English — and get an automatic
weekly digest every Sunday morning.
When to activate this skill
Activate when the user says anything that contains:
Transaction logging signals:
- - Any amount in taka, tk, ৳, or BDT
- Words: bKash, Nagad, Rocket, cash, paid, bought,
sent, spent, খরচ, পাঠালাম, কিনলাম, দিলাম
- - "log", "track", "record" + any amount
- Bengali amounts: "পাঁচশো টাকা", "এক হাজার"
Summary signals:
- - "summary", "digest", "report", "weekly"
- "এই সপ্তাহে কত খরচ", "spending this week"
- "show my transactions", "কত টাকা গেলো"
Delete/edit signals:
- - "delete last", "undo", "শেষেরটা মুছো"
- "edit transaction", "correct last entry"
How to log a transaction
Step 1 — Parse the message
Call the parser to extract structured data:
CODEBLOCK0
This returns JSON:
CODEBLOCK1
If amount is null → ask the user:
"কত টাকা? / How much?"
If confidence is "low" → confirm before saving:
"Did you mean: 500৳ for food via bKash? (yes/no)"
Step 2 — Save the transaction
CODEBLOCK2
Step 3 — Confirm to user
Reply in the same language the user wrote in:
English: "✅ Logged: {amount}৳ — {category} ({method_emoji})"
Bengali: "✅ লগ হয়েছে: {amount}৳ — {category} ({method_emoji})"
Method emojis:
- - bKash → 🔴
- Nagad → 🟠
- Rocket → 🟣
- Cash → 💵
How to generate a summary
On-demand summary
When user asks for summary/digest:
CODEBLOCK3
Format the output as a clean digest message and send.
Automatic weekly digest (Heartbeat)
Every Sunday at 9:00 AM local time:
- 1. Run INLINECODE2
- Send digest to user automatically
- No user prompt needed
How to delete/undo last transaction
CODEBLOCK4
Reply: "✅ Last transaction deleted."
How to show recent transactions
When user asks "what did I log today" or "recent":
CODEBLOCK5
Format as a simple numbered list.
Category mapping reference
Use this to classify ambiguous messages:
| Keywords | Category |
|---|
| food, lunch, dinner, breakfast, restaurant, খাবার, রেস্তোরাঁ | food |
| rickshaw, CNG, Uber, bus, train, ভাড়া, যাতায়াত |
transport |
| rent, বাড়িভাড়া | rent |
| electricity, gas, water, internet, bill, বিল | utilities |
| mum, dad, family, bhai, apa, মা, বাবা, ভাই, আপা, sent to | remittance |
| medicine, doctor, hospital, ডাক্তার | medical |
| school, tuition, books, পড়াশোনা | education |
| clothes, shoes, shopping, কেনাকাটা | shopping |
| everything else | other |
Example conversations
English input:
CODEBLOCK6
Bengali input:
CODEBLOCK7
Mixed input:
User: "electricity bill 1200 bkash dilam"
Agent: ✅ Logged: 1200৳ — Utilities 🔴
Error handling
- - Python not found: Tell user to install Python 3.10+
- Parse fails: Ask user to rephrase: "Could you say
that again with the amount? e.g. '500 taka food bKash'"
- - Storage error: Log error, tell user to try again
- No transactions this week: Reply "No transactions
logged yet this week. Start by sending me your first
expense!"
bKash / Nagad 交易追踪器 🇧🇩
追踪您在 bKash、Nagad、Rocket 和现金上的每日支出——支持孟加拉语或英语——并在每周日上午自动生成周报摘要。
何时激活此技能
当用户说出包含以下内容时激活:
交易记录信号:
- - 任何以塔卡、tk、৳ 或 BDT 为单位的金额
- 关键词:bKash、Nagad、Rocket、现金、支付、购买、发送、花费、খরচ、পাঠালাম、কিনলাম、দিলাম
- 记录、追踪、登记 + 任何金额
- 孟加拉语金额:পাঁচশো টাকা、এক হাজার
摘要信号:
- - 摘要、汇总、报告、每周
- এই সপ্তাহে কত খরচ、本周支出
- 显示我的交易、কত টাকা গেলো
删除/编辑信号:
- - 删除最后一条、撤销、শেষেরটা মুছো
- 编辑交易、更正上一条记录
如何记录交易
第一步 — 解析消息
调用解析器提取结构化数据:
bash
python3 {baseDir}/parser.py {user_message}
返回 JSON:
json
{
amount: 500,
method: bkash,
category: food,
note: lunch,
confidence: high
}
如果 amount 为空 → 询问用户:
কত টাকা?/ 金额是多少?
如果 confidence 为 low → 保存前确认:
您是指:通过 bKash 支付 500৳ 用于餐饮?(是/否)
第二步 — 保存交易
bash
python3 {baseDir}/logger.py log \
--amount {amount} \
--method {method} \
--category {category} \
--note {note}
第三步 — 向用户确认
使用用户输入的语言回复:
英语: ✅ 已记录:{amount}৳ — {category} ({method_emoji})
孟加拉语: ✅ লগ হয়েছে:{amount}৳ — {category} ({method_emoji})
支付方式表情符号:
- - bKash → 🔴
- Nagad → 🟠
- Rocket → 🟣
- 现金 → 💵
如何生成摘要
按需摘要
当用户请求摘要/汇总时:
bash
python3 {baseDir}/summarizer.py weekly
将输出格式化为清晰的摘要消息并发送。
自动周报摘要(心跳机制)
每周日当地时间上午 9:00:
- 1. 运行 python3 {baseDir}/summarizer.py weekly
- 自动向用户发送摘要
- 无需用户提示
如何删除/撤销最后一条交易
bash
python3 {baseDir}/logger.py undo
回复:✅ 最后一条交易已删除。
如何显示近期交易
当用户询问我今天记录了哪些或近期交易时:
bash
python3 {baseDir}/logger.py recent --n 5
格式化为简单的编号列表。
分类映射参考
使用此表对模糊消息进行分类:
| 关键词 | 分类 |
|---|
| 食物、午餐、晚餐、早餐、餐厅、খাবার、রেস্তোরাঁ | 餐饮 |
| 人力车、CNG、优步、公交、火车、ভাড়া、যাতায়াত |
交通 |
| 房租、বাড়িভাড়া | 房租 |
| 电费、燃气费、水费、网费、账单、বিল | 公用事业 |
| 妈妈、爸爸、家人、兄弟、姐姐、মা、বাবা、ভাই、আপা、发送给 | 汇款 |
| 药品、医生、医院、ডাক্তার | 医疗 |
| 学校、学费、书籍、পড়াশোনা | 教育 |
| 衣服、鞋子、购物、কেনাকাটা | 购物 |
| 其他所有内容 | 其他 |
对话示例
英语输入:
用户: bkash 450 lunch
助手: ✅ 已记录:450৳ — 餐饮 🔴
用户: sent 5000 to mum nagad
助手: ✅ 已记录:5000৳ — 汇款 🟠
用户: show my spending this week
助手: [周报摘要]
孟加拉语输入:
用户: ৳৮৫০ বিকাশে বাজার করলাম
助手: ✅ লগ হয়েছে:850৳ — 购物 🔴
用户: রিকশায় ৮০ টাকা নগদ
助手: ✅ লগ হয়েছে:80৳ — 交通 💵
用户: এই সপ্তাহে কত খরচ হলো
助手: [সাপ্তাহিক সারসংক্ষেপ]
混合输入:
用户: electricity bill 1200 bkash dilam
助手: ✅ 已记录:1200৳ — 公用事业 🔴
错误处理
- - 未找到 Python: 告知用户安装 Python 3.10+
- 解析失败: 请用户重新表述:您能再说一遍金额吗?例如 500 taka food bKash
- 存储错误: 记录错误,告知用户重试
- 本周无交易: 回复本周尚未记录任何交易。请先发送您的第一笔支出!