Mục lục (10 mục)
- Vấn đề: nút "Remove Duplicates" xóa xong là không biết đã xóa ai
- Giải pháp: công cụ phân loại thay vì xóa
- Chuẩn bị trước khi bắt đầu
- Bước 1: giao việc cho AI bằng một đoạn mô tả rõ ràng
- Bước 2: chạy thử và kiểm tra kết quả
- Bước 3: chạy thật
- Bước 4 (tùy chọn): biến thành công cụ dùng lâu dài cho cả đội
- Kết quả Anh/Chị nhận được
- Mở rộng sang các việc tương tự
- Bắt đầu từ việc nhỏ nhất
Anh/Chị gom danh sách khách hàng từ form đăng ký, Zalo và các đơn hàng trên sàn thương mại điện tử vào một file Excel, rồi nhận ra cùng một người xuất hiện hai, ba lần. Gửi tin khuyến mãi cho danh sách này thì khách nhận ba tin giống hệt nhau và khó chịu. Bài này hướng dẫn cách nhờ AI Agent viết công cụ lọc trùng, và quan trọng hơn là không xóa mất dữ liệu: người bị loại vẫn nằm ở một sheet riêng để Anh/Chị kiểm tra lại.
Đây là một bài trong chuỗi Agentic Working trên blog EGANY: mỗi bài lấy một việc văn phòng lặp đi lặp lại và chỉ cách để AI Agent làm thay, theo cách người không rành kỹ thuật cũng làm theo được.
Vấn đề: nút "Remove Duplicates" xóa xong là không biết đã xóa ai
Khách trùng xuất hiện vì rất đời thường:
- Một khách đăng ký form hai lần vì lần đầu tưởng chưa gửi được.
- Cùng một khách vừa nhắn Zalo vừa đặt hàng trên sàn, nên có mặt ở hai nguồn.
- Nhân viên sale nhập tay lại khách cũ, thêm một dòng mới.
Excel có sẵn nút Remove Duplicates (xóa dòng trùng), nhưng nút này có hai điểm yếu. Thứ nhất, nó xóa luôn mà không cho Anh/Chị biết đã xóa những dòng nào, nên nếu chọn nhầm cột thì dữ liệu mất mà không hay. Thứ hai, nó mặc định giữ dòng xuất hiện đầu tiên, trong khi nhiều khi Anh/Chị muốn giữ dòng đăng ký mới nhất vì thông tin mới thường chính xác hơn.
Với danh sách vài nghìn dòng, việc tự dò bằng mắt gần như không thể, còn xóa nhầm một khách quý thì rất khó phát hiện.
Giải pháp: công cụ phân loại thay vì xóa
Anh/Chị nhờ một AI Agent (ChatGPT, Claude hoặc Gemini đều được) viết công cụ nhỏ, hoạt động theo nguyên tắc "phân loại chứ không xóa". Công cụ làm bốn việc:
- Cho Anh/Chị chọn cột dùng để nhận ra khách trùng. Có thể là số điện thoại, hoặc email, hoặc cả hai, tùy Anh/Chị coi hai dòng như thế nào là cùng một người.
- Cho Anh/Chị chọn giữ dòng cũ nhất hay mới nhất. Với khách đăng ký lại, thường nên giữ dòng mới nhất.
- Tách kết quả ra hai sheet. Một sheet "Sạch" là danh sách đã lọc, dùng ngay được. Một sheet "Trùng" chứa tất cả những dòng bị loại.
- Không đụng vào file gốc. Kết quả luôn lưu thành file mới.
Điểm quan trọng nhất là sheet "Trùng". Nhờ nó, Anh/Chị có thể mở ra xem công cụ đã loại ai, nên yên tâm hơn nhiều so với một nút bấm xóa im lặng.
Chuẩn bị trước khi bắt đầu
Anh/Chị cần ba thứ:
- File Excel danh sách khách hàng (nên là file đã chuẩn hóa số điện thoại, vì số viết khác nhau sẽ không được nhận là trùng).
- Một bản sao để chạy thử.
- Một công cụ AI Agent chạy được mã trên máy tính, ví dụ Claude Code hoặc công cụ tương tự: Anh/Chị nói tiếng Việt, AI tự cài những gì cần và chạy luôn. Nếu chỉ dùng ChatGPT trên trình duyệt, Anh/Chị vẫn làm được, chỉ cần thêm bước cài Python theo hướng dẫn AI đưa ra.
Mẹo nhỏ: nếu danh sách chưa được chuẩn hóa số điện thoại, hãy làm bước đó trước. Hai số "0901234567" và "+84 901 234 567" là cùng một người, nhưng công cụ chỉ nhận ra khi chúng được viết giống nhau.
Bước 1: giao việc cho AI bằng một đoạn mô tả rõ ràng
Anh/Chị mở công cụ AI Agent và dán đoạn yêu cầu dưới đây. Có thể đổi tên cột cho đúng với file của mình.
Tôi có một file Excel danh sách khách hàng, gồm các cột như Họ tên, Số điện thoại,
Email, Ngày đăng ký, Nguồn. Có nhiều khách xuất hiện nhiều lần.
Hãy viết và chạy một công cụ bằng Python, có giao diện đơn giản cho người không
rành kỹ thuật:
1. Cho tôi chọn file Excel, rồi chọn cột dùng để nhận ra khách trùng từ danh sách
các cột có trong file (cho phép chọn một hoặc hai cột, ví dụ Số điện thoại
và Email).
2. Cho tôi chọn giữ dòng "Mới nhất" hay "Cũ nhất" dựa theo cột Ngày đăng ký.
Nếu không có cột ngày thì dùng thứ tự dòng trong file.
3. Khi bấm nút "Lọc", tạo một file Excel mới có hai sheet:
- Sheet "Sach": các dòng được giữ lại, mỗi khách một dòng.
- Sheet "Trung": TẤT CẢ các dòng bị loại, thêm cột "Trung voi dong" ghi rõ
dòng nào ở file gốc đang được giữ.
4. Bỏ qua các ô trống khi so sánh: hai dòng cùng để trống email thì KHÔNG
được coi là trùng nhau.
5. Không ghi đè file gốc. Khi xong, hiện thông báo: tổng số dòng, số dòng giữ lại,
số dòng bị loại.
6. Tạo thêm file run.bat để tôi nhấp đúp là chạy.Vì sao đoạn mô tả này hiệu quả:
- Yêu cầu hai sheet là chốt chặn an toàn. Mọi dòng bị loại đều còn đó để kiểm chứng, không có gì biến mất.
- Cột "Trùng với dòng" cho Anh/Chị thấy mỗi dòng bị loại là trùng với dòng nào đang được giữ, nên kiểm tra rất nhanh.
- Quy tắc "ô trống không tính là trùng" tránh một lỗi rất hay gặp: hàng trăm khách không điền email, nếu coi các ô trống là giống nhau thì công cụ sẽ gộp tất cả họ thành một người.
- Chọn một hoặc hai cột cho phép Anh/Chị quyết định mức chặt chẽ: chỉ cần trùng số điện thoại, hay phải trùng cả số điện thoại lẫn email.
Nói ngắn gọn: AI làm tốt khi Anh/Chị mô tả kết quả cụ thể và các trường hợp đặc biệt. Đây cũng là kỹ năng cốt lõi của Agentic Working: biết giao việc rõ ràng cho đồng nghiệp số.
Bước 2: chạy thử và kiểm tra kết quả
Chạy thử trên bản sao, tốt nhất là một file có vài chục dòng mà Anh/Chị biết trước có khách trùng. Sau đó mở file kết quả:
- Số dòng ở sheet "Sach" cộng với sheet "Trung" có bằng tổng số dòng ban đầu không? Nếu bằng, không có dòng nào bị mất.
- Mở sheet "Trung" và xem vài dòng: đó có thật sự là cùng một khách không?
- Khách đăng ký nhiều lần có được giữ đúng dòng mới nhất (hoặc cũ nhất) như Anh/Chị chọn không?
- Những khách để trống email có còn đủ mặt ở sheet "Sach" không?
Nếu có điểm chưa ưng, Anh/Chị nói lại với AI bằng lời thường, ví dụ:
- "Khi hai dòng trùng nhau, hãy gộp thông tin: lấy email từ dòng này nếu dòng kia để trống."
- "Thêm một cột đếm xem mỗi khách đã xuất hiện bao nhiêu lần."
- "Coi hai khách là trùng khi trùng số điện thoại HOẶC trùng email, chứ không cần cả hai."
AI sẽ sửa công cụ và Anh/Chị chạy lại. Thường chỉ cần một đến hai lần chỉnh là đúng ý.
Bước 3: chạy thật
Khi bản thử đã ổn, Anh/Chị chọn file danh sách thật và bấm "Lọc". Kết quả là:
- Sheet "Sach" sẵn sàng nhập vào hệ thống gửi tin hoặc phần mềm chăm sóc khách hàng.
- Sheet "Trung" lưu lại toàn bộ dòng bị loại, phòng khi cần đối chiếu.
Một lưu ý thực tế: lần đầu chạy trên danh sách thật, hãy liếc qua sheet "Trung" một lượt trước khi dùng sheet "Sach". Chỉ vài phút thôi, nhưng đủ để chắc chắn luật lọc của mình không loại nhầm người.
Bước 4 (tùy chọn): biến thành công cụ dùng lâu dài cho cả đội
Nếu bộ phận marketing hay chăm sóc khách hàng phải lọc trùng trước mỗi đợt gửi tin, Anh/Chị có thể nhờ AI đóng gói thành ứng dụng nhỏ có giao diện, để ai cũng tự dùng được:
- Bấm nút chọn file Excel.
- Chọn cột dùng để nhận ra khách trùng, chọn giữ dòng mới nhất hay cũ nhất.
- Bấm "Lọc" và nhận file kết quả hai sheet.
Khi viết yêu cầu, Anh/Chị chỉ cần nói rõ cả đội dùng Windows, macOS hay cả hai. AI sẽ viết ứng dụng và hướng dẫn cách cài.
Kết quả Anh/Chị nhận được
- Khách không còn nhận tin lặp lại: danh sách mỗi người một dòng, hình ảnh thương hiệu chuyên nghiệp hơn.
- Không sợ xóa nhầm: mọi dòng bị loại đều nằm ở sheet riêng, kiểm chứng được.
- Giữ đúng thông tin mới nhất: chọn được giữ dòng cũ hay mới thay vì phụ thuộc vào thứ tự file.
- Tiết kiệm chi phí gửi tin: không phải gửi nhiều lần cho cùng một người.
- Dùng lại được: mỗi đợt gom danh sách mới, chỉ cần chạy lại công cụ.
Mở rộng sang các việc tương tự
Cùng cách làm này, Anh/Chị có thể nhờ AI Agent xử lý thêm nhiều việc với dữ liệu khách hàng:
- Chuẩn hóa số điện thoại và họ tên trước khi lọc trùng.
- Đối chiếu danh sách khách mới với danh sách khách cũ để tìm người đã mua rồi.
- Gộp nhiều file danh sách từ các nguồn khác nhau thành một.
- Tách danh sách sạch thành nhiều file theo nhân viên sale phụ trách.
Các workflow như thế này được EGANY tập hợp trong Agentic Working Kit: bộ công cụ và kỹ năng cho AI Agent để tối ưu hiệu suất công việc trong vận hành doanh nghiệp. Nếu Anh/Chị đang bán hàng online và muốn đi xa hơn với website, Ecommerce CRO Kit tập trung vào xây dựng website và tối ưu tỉ lệ chuyển đổi cùng AI Agent.
Bản gốc của workflow này (kèm đoạn yêu cầu tiếng Anh) có trên AgenticWorking.io.
Bắt đầu từ việc nhỏ nhất
Đừng cố dọn toàn bộ dữ liệu khách hàng cùng một lúc. Hãy chọn danh sách sắp dùng cho đợt gửi tin gần nhất, lọc thử với số cột đơn giản nhất (chỉ số điện thoại), xem sheet "Trung" cho yên tâm, rồi mới mở rộng luật.
Nếu Anh/Chị muốn có người cùng xác định việc nào nên giao cho AI Agent trước và cách đưa vào vận hành cho cả đội, có thể đặt lịch tư vấn 1-1 với EGANY.


