Voice messages
When you send a voice message, SAFIA transcribes the audio using Whisper (via Groq) and then processes the transcript exactly as if you had typed it. The response always comes back as text.Record and send
Hold the microphone button in Telegram and speak your message naturally. SAFIA accepts any length, but shorter messages tend to transcribe more accurately.
🎙 “I just paid 120 thousand for a taxi to the airport”
SAFIA downloads the file
SAFIA shows Listening… while it retrieves the audio file from Telegram’s servers. The file is saved temporarily on disk.
Transcription runs
The audio is sent to Whisper via Groq for speech-to-text. SAFIA’s status message updates to Thinking… once transcription completes. The local file is deleted immediately after.
Transcript is processed
The transcribed text enters SAFIA’s conversation pipeline the same way a typed message would. SAFIA calls any relevant tools — for example, recording the expense — and replies in text.
Noted! I’ve recorded Rp 120.000 for Transportasi 🚕. Your transport spending this week is now Rp 340.000.
Requirements
Tips for clear transcription
Speak the amounts clearly
Say “seratus dua puluh ribu” or “one hundred twenty thousand” — Whisper handles both Indonesian and English well.
Mention the category
“Taxi fare” or “lunch at the canteen” gives SAFIA enough context to pick the right expense category automatically.
Keep it focused
One topic per voice note produces the cleanest results. If you want to log three separate expenses, three short notes beat one long ramble.
Avoid heavy background noise
Transcription accuracy drops significantly in loud environments like traffic or crowded restaurants.
What SAFIA cannot do with voice
- Identify speakers — if multiple people speak in one recording, the result may be jumbled.
- Play audio back — SAFIA always responds in text, never in voice.
- Process non-financial speech — SAFIA will still reply, but it’s optimised for financial tasks and may not be the right tool for general conversation.
Photo scanning
Send a photo of a receipt, invoice, or payslip and SAFIA will extract the key financial details and record the transaction for you — no typing required.Take or choose a photo
Open Telegram’s attachment menu and send a photo of your document. A direct camera shot works best; screenshots of digital receipts are also fine.📸 [Photo of a café receipt — subtotal Rp 75.000, discount voucher –Rp 10.000, total Rp 65.000]
SAFIA scans the document
SAFIA shows Scanning document… while it sends the image to a vision model. The model reads the text, identifies amounts, and calculates the correct final figure.For receipts with discounts or vouchers, SAFIA uses the net amount you actually paid — not the pre-discount subtotal. For payslips, it uses your take-home (net) salary, not the gross figure.
What makes a good photo
Good lighting
Shoot in daylight or a well-lit room. Shadows across printed text are the most common cause of extraction errors.
Flat and straight
Lay the receipt on a flat surface and shoot from directly above. Angled shots cause the vision model to misread digits.
Full receipt in frame
Make sure the total line at the bottom is visible. Cropped receipts may cause SAFIA to use a subtotal instead of the final amount.
Avoid glare
Shiny thermal paper (the kind used by most point-of-sale printers) reflects light. Tilt the paper slightly or use diffused light.
Supported document types
| Document | What SAFIA extracts |
|---|---|
| Supermarket / café receipt | Items, discounts, final total |
| Restaurant bill | Total charged, any service fee |
| Online-shopping invoice | Order total after vouchers |
| Payslip / salary slip | Net take-home amount, pay period |
| Utility or phone bill | Amount due |
What SAFIA cannot process
- Very blurry or dark photos — the vision model needs legible text. Re-take the photo in better conditions.
- Handwritten totals with unclear handwriting — printed text extracts reliably; messy handwriting may be misread.
- Multi-page documents sent as a single photo — send each page separately if the relevant total is on a different page.