This is a submission for the Postmark Challenge: Inbox Innovators.
π§Ύ TrackLah!
Freelancers and small businesses in Singapore often receive payments through peer-to-peer apps like PayLah! or PayNow, and clients typically confirm these transactions by emailing or messaging a screenshot. Manually checking each payment notification, extracting details, and updating a financial record or spreadsheet can be time-consuming and error-prone β especially with different formats, currencies, and inconsistent communication.
TrackLah! solves the problem by automatically parsing incoming emails (using Postmark's inbound email parsing feature), extracting payment information using OCR, and updating a Google Sheet to track each transaction. It ensures freelancers get real-time updates, avoid missed payments, and maintain a centralized record of all incoming funds β without lifting a finger.
π¦ Features
- β Extracts text from payment screenshots (e.g., PayLah!, PayNow)
- π€ Uses OCR.space API to parse text from image attachments
- πΈ Identifies amount and currency from text
- π Appends or updates rows in a Google Sheet
- βοΈ Health check endpoint
π¦ Upcoming Features
- π Generate invoices to clients
- π‘οΈ Ignores duplicate MessageIDs
π§± Tech Stack
- Frontend: React 18
- Backend: Node.js, Express
- Email: Postmark (Transactional API)
- Deployment: Fly.io
- Secrets: .env / environment variables
- Version Control: Git & GitHub
π Sequence Diagram
π¦ Live Demo
How It Works
1. Send an Email
Compose an email to b5fec6c3607a2f29c77a448e01fedcf6@inbound.postmarkapp.com using any email client.
See /examples/
for payment screenshots you can attach to the email.
2. Trigger the Automation
The system receives and processes the email via Postmark inbound webhook.
3. Observe the Result
Updates will appear automatically in the connected Google Spreadsheet (you'll see a new row added).
https://docs.google.com/spreadsheets/d/19cZqjmo9-ZA1uyiAFQNiCbnNKZoQ0O-hrkYDSPclysI
Notes
- Only the first attachment will be processed per email.
- The Google Spreadsheet is read/write protected β edits are only made through this integration.
Code Repository
https://github.com/tanyonghe/track-lah
Top comments (1)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.