We run customer support for small Thai online shops that take orders through LINE Official Accounts. The most time-consuming part was never the chat — it was verifying bank-transfer slips: customers paste a transfer screenshot or reference number into the chat, and someone had to open a banking app and match the amount before shipping.
We wired the whole check into Node-RED and it cut verification from minutes to seconds per order. Sharing the pattern in case it helps anyone automating order ops:
Flow outline
http inreceives the LINE webhook (oremail in/ IMAP for bank notification mails on a dedicated inbox).- A
functionnode normalizes the payload and extracts amount, transfer reference and timestamp (regex per bank message format — every Thai bank has a slightly different one, so keep one regex map per bank). - Matching: keep expected payments in context (order id → expected amount, valid time window). A
switchnode routes: exact match / amount mismatch / duplicate / no reference found. - Only mismatch cases go to a human queue — that was the big win: roughly 90% of slips never need a person.
- Replies go through the LINE Messaging API
pushendpoint viahttp request, with per-customer rate limiting so retry storms never spam customers.
Lessons
- Store matched slips with a
filenode (JSONL) instead of memory, so restarts don't wipe the audit trail. - Duplicate detection matters more than OCR: impatient customers re-send the same slip 3-4 times.
- Answer the webhook fast and push heavy work downstream — LINE times out quickly.
Happy to go deeper on any step. We also wrote up the slip-verification checklist we hand to shop admins here: แผนภูมิตัดสินใจก่อนอนุมัติสลิปโอน (ฉบับร้าน 1–5 คน)