Tự động xử lý OCR hóa đơn và biên lai và trích xuất dữ liệu vào Google Sheets
Tự động xử lý hóa đơn và biên lai bằng Gemini OCR, trích xuất dữ liệu trực tiếp vào Google Sheets từ nhiều kích hoạt bao gồm Google Drive, Gmail và Telegram. Workflow mạnh mẽ này đảm bảo sổ sách kế toán của bạn có tổ chức và hiệu quả, giảm đáng kể công sức thủ công và các lỗi tiềm ẩn.
Đối tượng sử dụng
Workflow này lý tưởng cho các doanh nhân bận rộn, nhà sáng lập startup, freelancer, chủ doanh nghiệp nhỏ, người làm kế toán và kế toán viên muốn loại bỏ các công việc sổ sách thủ công, lặp đi lặp lại và dễ xảy ra lỗi. Cho dù bạn thường xuyên quản lý chi phí từ biên lai giấy vật lý, hóa đơn kỹ thuật số hay tệp đính kèm email, workflow này sẽ hợp lý hóa đáng kể quy trình sổ sách kế toán của bạn và tiết kiệm đáng kể thời gian cũng như công sức mỗi tháng.
Giải thích
Việc nhập dữ liệu hóa đơn và biên lai thủ công nổi tiếng là tẻ nhạt, cực kỳ tốn thời gian và rất dễ xảy ra lỗi do con người. Sai sót trong sổ sách kế toán có thể dẫn đến sự thiếu chính xác về tài chính, các vấn đề tuân thủ và lãng phí tài nguyên. Bằng cách tự động hóa việc trích xuất dữ liệu hóa đơn, workflow này hợp lý hóa quy trình quản lý tài chính của bạn, cải thiện đáng kể độ chính xác, giảm chi phí vận hành và cho phép bạn chuyển hướng các nguồn lực và sự chú ý quý giá vào các hoạt động kinh doanh chiến lược, tạo ra doanh thu.
Giải thích workflow
Template này cung cấp một giải pháp tự động, mạnh mẽ để trích xuất dữ liệu hóa đơn và biên lai bằng Gemini API của Google cho OCR (Nhận dạng ký tự quang học) thông qua các yêu cầu HTTP trực tiếp.
- Flow chính (Kích hoạt Google Drive): Workflow chính được kích hoạt (Google Drive Trigger New Files) bất cứ khi nào có một tệp mới (PDF hoặc hình ảnh) được thêm vào một thư mục Google Drive được chỉ định. Nó sử dụng node SplitInBatches (Loop Over Items) để xử lý các tệp đến từng cái một. Đối với mỗi tệp, nó:
- Tải xuống tệp (Google Drive Get Receipt).
- Chuyển đổi sang base64 (Move file to base64 string).
- Gửi dữ liệu tệp và một prompt chi tiết đến Gemini API (model gemini-2.0-flash được chỉ định trong node Prompt, gửi qua node Gemini API HTTP Request). Prompt yêu cầu đầu ra JSON có cấu trúc với các trường và định dạng cụ thể (như dấu phẩy thập phân, không có ký hiệu tiền tệ và một trường tiền tệ riêng biệt).
- Phân tích phản hồi JSON (node JSON to string, Parse string).
- Thêm dữ liệu đã trích xuất (Ngày hóa đơn, Danh mục, Người gửi, Tiền tệ, v.v.), cùng với tên tệp gốc và liên kết đến tệp, vào một Google Sheet được chỉ định (Add to Google Sheets).
- Bao gồm các node Wait để giúp quản lý các giới hạn tốc độ tiềm ẩn.
- Flow bổ sung 1 (Kích hoạt Gmail): Một trình kích hoạt bổ sung (Gmail Trigger) giám sát tài khoản Gmail của bạn để tìm các email có nhãn cụ thể. Khi một email phù hợp có tệp đính kèm đến:
- Nó lặp qua các email và tệp đính kèm.
- Nó đổi tên tệp đính kèm bằng định dạng YYYY-MM-DD_SenderUsername (ví dụ: 2025-04-19_some.sender) bằng cách sử dụng node Create File Name.
- Nó lưu tệp đính kèm đã đổi tên vào thư mục Google Drive được chỉ định (Google Drive Save Files), sau đó kích hoạt quy trình OCR cốt lõi ở trên.
- Flow bổ sung 2 (Kích hoạt Telegram): Một trình kích hoạt tùy chọn khác (Telegram Trigger Image) cho phép bạn chuyển tiếp ảnh chụp biên lai vật lý đến bot Telegram đã cấu hình của bạn:
- Nó đổi tên tệp hình ảnh bằng định dạng YYYY-MM-DD_Telegram (ví dụ: 2025-04-19_Telegram) thông qua node Create File Name For Telegram.
- Nó lưu hình ảnh đã đổi tên vào thư mục Google Drive được chỉ định (Google Save Files 2), cũng kích hoạt quy trình OCR cốt lõi.
Điểm Nổi Bật
- Công nghệ OCR tiên tiến: Sử dụng Gemini API của Google để nhận dạng và trích xuất dữ liệu từ hóa đơn/biên lai với độ chính xác cao.
- Đa nguồn đầu vào: Tự động xử lý tệp từ Google Drive, tệp đính kèm trong Gmail và hình ảnh gửi qua Telegram.
- Tự động hóa hoàn toàn: Loại bỏ việc nhập liệu thủ công, tự động chuyển dữ liệu được trích xuất vào Google Sheets.
- Tiết kiệm thời gian & Giảm lỗi: Giải phóng thời gian của bạn và giảm thiểu sai sót thường gặp khi nhập liệu thủ công.
- Đầu ra có cấu trúc: Dữ liệu được trả về dưới dạng JSON theo định dạng yêu cầu, dễ dàng tích hợp và sử dụng.
- Linh hoạt & Tùy chỉnh: Dễ dàng điều chỉnh prompt, danh mục, trường dữ liệu cần trích xuất, và cấu hình các trình kích hoạt.
- Tích hợp mạnh mẽ: Kết nối các công cụ làm việc phổ biến (Google Workspace, Telegram) thành một quy trình liền mạch.
Các bước thiết lập
- Thông tin xác thực (Credentials): Thêm các thông tin xác thực sau vào n8n, sử dụng tên được chỉ định trong template hoặc tên của riêng bạn:
- Google OAuth2: Cho Google Drive, Google Sheets, Gmail.
- Telegram: Cho trình kích hoạt bot Telegram.
- Gemini API Key: Lấy API key miễn phí từ Google AI Studio. Bạn sẽ cần dán key này trực tiếp vào Query Parameters của node Gemini API (HTTP Request) trong workflow.
- Google Drive: Tạo một thư mục cụ thể trong Google Drive của bạn nơi tất cả hóa đơn/biên lai sẽ được lưu trữ và xử lý từ đó. Cập nhật Thư mục đích (target Folder) trong các node Google Drive Trigger New Files, Google Drive Save Files, và Google Save Files 2 để sử dụng thư mục bạn đã chỉ định.
- Google Sheets: Tạo một Google Sheet mới, hoặc sao chép Sheet template này. Đảm bảo nó có các cột khớp với các trường đầu ra mong muốn (xem danh sách mặc định bên dưới, bao gồm cả Tiền tệ). Cập nhật Bảng tính đích (target Spreadsheet) và Tên Trang tính (Sheet Name) trong node Add to Google Sheets để trỏ đến sheet của bạn.
- Gmail (Tùy chọn): Tạo một nhãn trong Gmail (ví dụ: “receipts”). Cập nhật bộ lọc Nhãn (Label filter) trong node Gmail Trigger để sử dụng nhãn bạn đã tạo. Cân nhắc thiết lập bộ lọc trong Gmail để tự động áp dụng nhãn này cho các email liên quan.
- Telegram (Tùy chọn): Cấu hình node Telegram Trigger Image với thông tin xác thực bot của bạn.
- Node Gemini API: Mở node Gemini API (HTTP Request). Trong phần “Query Parameters”, thay thế API key giữ chỗ bằng Gemini API Key thực tế của bạn. Xác minh URL sử dụng đúng tên model bằng cách tham chiếu giá trị model của node Prompt (mặc định là gemini-2.0-flash).
- Tùy chỉnh Prompt: Mở node Prompt (Set).
- Quan trọng, thay đổi dòng đầu tiên “My company is Sisu Digital…” để phản ánh công ty của bạn hoặc xóa nó nếu không cần thiết.
- Xem lại danh sách các danh mục và các hướng dẫn định dạng cụ thể (ví dụ: dấu phẩy cho số thập phân, không có ký hiệu tiền tệ, định dạng ngày, “N/A” cho ghi chú) để đảm bảo chúng phù hợp với yêu cầu của bạn. Bạn có thể điều chỉnh các chi tiết này ở đây.
- Kích hoạt Workflow: Kiểm tra từng đường dẫn kích hoạt (tải lên Drive, Gmail được gắn nhãn, ảnh Telegram) bằng các tệp/email/tin nhắn mẫu, sau đó kích hoạt workflow.
Cách tùy chỉnh workflow này theo nhu cầu của bạn
- Gemini Prompt/Model: Sửa đổi văn bản prompt, danh sách danh mục hoặc các hướng dẫn định dạng chi tiết trong node Prompt (Set). Bạn cũng có thể thay đổi giá trị model trong node Prompt để sử dụng một model Gemini khác (đảm bảo model hỗ trợ API endpoint được sử dụng trong node HTTP Request).
- Các trường được trích xuất: Sửa đổi prompt trong node Prompt để trích xuất các trường khác nhau hoặc thay đổi định dạng. Cập nhật logic phân tích cú pháp trong node Parse string nếu cần, và đảm bảo các cột Google Sheet của bạn khớp trong node Add to Google Sheets. Các trường được trích xuất mặc định (dựa trên prompt đã cập nhật) là:
- Ngày hóa đơn (Invoice Date): (DD/MM/YYYY)
- Danh mục (Category): (Từ danh sách định sẵn)
- Người gửi (Sender): (Công ty phát hành)
- Mô tả (Description): (Chi tiết ngắn gọn)
- Số tiền (0% VAT) (Amount (0% VAT)): (Số tiền ròng, dấu phẩy thập phân, không có ký hiệu tiền tệ)
- VAT %: (Số tỷ lệ, dấu phẩy thập phân, không có dấu %, “0,0” nếu không có)
- Tổng cộng (Total): (Số tiền gộp, dấu phẩy thập phân, không có ký hiệu tiền tệ)
- Tiền tệ (Currency): (Viết tắt viết hoa, ví dụ: “EUR”, “USD”)
- Ghi chú (Note): (Ghi chú liên quan, hoặc “N/A”)
- (Được thêm bởi workflow): Tên tệp (File Name), URL tệp (File URL)
- Trình kích hoạt & Đích (Triggers & Targets): Bật/tắt hoặc sửa đổi các trình kích hoạt Gmail và Telegram. Chọn thư mục Google Drive, Google Sheet và nhãn Gmail mong muốn trực tiếp trong các node tương ứng.
- Đặt tên tệp (File Naming): Điều chỉnh mã Javascript trong các node Create File Name (cho Gmail) hoặc Create File Name For Telegram để thay đổi mẫu đổi tên. Định dạng hiện tại: YYYY-MM-DD_SenderUsername (Gmail), YYYY-MM-DD_Telegram (Telegram).
- Phương pháp cấu hình (Configuration Method): Cập nhật cấu hình như thư mục, sheet và nhãn trực tiếp trong các node liên quan. Để quản lý nhiều cài đặt dễ dàng hơn, hãy cân nhắc thêm một node ‘Set’ trung tâm vào đầu workflow để xác định các giá trị này và sử dụng biểu thức để tham chiếu chúng trong các node khác.
Lưu ý quan trọng
- Độ chính xác của AI: Các mô hình AI có thể mắc lỗi. Luôn xem xét dữ liệu được trích xuất vào Google Sheets về độ chính xác, đặc biệt với định dạng cụ thể như dấu phân cách thập phân. Workflow này tự động hóa rất nhiều nhưng yêu cầu xác minh cuối cùng.
- Bảo mật dữ liệu: Dữ liệu bạn cung cấp sẽ được gửi đến API bên ngoài để xử lý ngôn ngữ và phân tích văn bản cho quy trình AI cộng tác. Việc truyền dữ liệu tiềm ẩn rủi ro bảo mật. Để an toàn, tuyệt đối không cung cấp dữ liệu nhạy cảm (thông tin cá nhân, tài chính, y tế, bí mật kinh doanh…) để tránh rò rỉ hoặc lạm dụng thông tin.
- Sử dụng Gemini API: Template này sử dụng Gemini API thông qua HTTP Request. Lưu ý đến giới hạn tốc độ API của Google, chính sách sử dụng và chi phí tiềm ẩn liên quan đến model được sử dụng (mặc định là gemini-2.0-flash), đặc biệt nếu bạn thay đổi nó. Theo dõi các điều khoản của Google.
- Vòng lặp và Chờ (Loops and Waits): Workflow sử dụng các node SplitInBatches và Wait để xử lý các mục riêng lẻ và tạm dừng thực thi, điều này giúp ngăn chặn việc đạt đến giới hạn tốc độ API nhưng xử lý các tệp tuần tự thay vì song song.
Về trách nhiệm hỗ trợ
- Workflow này được cung cấp nguyên trạng (as-is) để thuận tiện cho bạn. Hãy sử dụng nó một cách có trách nhiệm và thoải mái xây dựng dựa trên nó cho nhu cầu riêng của bạn!
- Workflow này đã được kiểm tra kỹ lưỡng và được xác nhận là hoạt động hoàn hảo tại thời điểm phát hành. Tuy nhiên, sự phức tạp trong thiết lập hoặc các lỗi không mong muốn có thể xảy ra tùy thuộc vào môi trường, tùy chỉnh hoặc thay đổi API của bạn.
- Xin lưu ý rằng mình không thể cung cấp hỗ trợ hoặc xử lý sự cố cá nhân hóa cho template này (nếu không thu phí!). Nếu bạn gặp sự cố, vui lòng gửi tin nhắn cho mình mô tả vấn đề. Nếu vấn đề được xác định là lỗi thực sự trong template được chia sẻ, mình sẽ cố gắng để khắc phục và cập nhật workflow. Nếu không, vấn đề có thể là do cấu hình sai hoặc sửa đổi từ phía bạn. Trong những trường hợp đó, mình gợi ý bạn nên sử dụng ChatGPT hoặc tham khảo tài liệu n8n để tự gỡ lỗi.