Chia sẻ bởi Nguyễn Tú
Mọi người dùng kéo khoảng dưới 2000 tin thôi nhé, flow chạy nhiều nó hay tự bị ngắt ở đoạn IF :))
DOWNLOAD: https://romhub.io/n8n/Crawl_Messenger_to_Google_Docs
Bước 1: Đăng nhập bizflow.vn hoặc n8n cũng được, nhưng mà cái này mình làm trên bizflow nên nhỡ import vào n8n mà không chạy thì chịu nhé :v rồi chọn tạo Work Flow mới => Chọn Import from file => Chọn file Crawl_Message_Messenger.json
Bước 2: Thêm Credential cho Facebook Graph API và Google (cái này mọi người chịu khó tự đọc docs của n8n làm nhé, hoặc lên Google search là ra, làm mất 5-10p thôi) rồi thêm Credential cho toàn bộ Node Facebook Graph API và Google Docs
Bước 3: Lấy thread id của khách hàng muốn crawl tin nhắn, vào SmaxAi => Livechat => Mở hội thoại của khách hàng => Chọn biểu tượng Bot => Tab Attributes => Tìm attribute facebook.conversion_id rồi copy lấy cái id này
Quay lại bizflow => paste id vừa copy vào ô Node trong 2 Node Facebook Graph API
Bước 4: Tạo 2 file Google Docs, 1 file để lưu dữ liệu raw và 1 file lưu dữ liệu đã chỉnh sửa lại, cái này mình giải thích sau nhé :D
Rồi copy link của file Raw paste vào Node Google Docs
LƯU Ý: nhớ paste đúng như ảnh dưới nhé
Sau đó bấm Test workflow, rồi mở file docs final ra ngồi đợi thôi :v
Nếu muốn crawl tin nhắn của hội thoại khác thì xóa hết nội dung trong 2 file docs này đi, copy ID khác rồi thay vào Node Facebook Graph API => Chạy flow là được nhé
Cách hoạt động của flow cho ai muốn custom :D
Khi bấm chạy, flow sẽ hoạt động như sau:
- Node Facebook Graph API sẽ trả về Thông tin hội thoại từ facebook, bao gồm nội dung của 20 tin nhắn gần nhất (người gửi, id người gửi, id tin nhắn, nội dung tin nhắn,...) và API để lấy 20 tin nhắn tiếp theo hoặc 20 tin nhắn trước đó (nếu có nhé)
- Node Code dùng để lấy các thông tin cần thiết từ dữ liệu facebook trả về (lấy người gửi với nội dung tin thôi, mấy thông tin khác thì bỏ)
Node Google Docs để lưu dữ liệu mà Node Code đã lọc => lưu lên Google Sheets (file Raw) - Node Facebook Graph API sẽ trả về dữ liệu từ mới nhất => cũ nhất => file raw cũng sẽ lưu tin nhắn từ mới nhất tới cũ nhất
Node If sẽ kiểm tra xem Node Facebook Graph API có trả về API để lấy tiếp 20 tin sau không, nếu có thì lại gọi api rồi quay lại Code => lặp lại tới khi nào quét được hết hội thoại thì thôi
Cuối cùng sau khi lưu toàn bộ hội thoại lên Docs => lấy đoạn hội thoại bị ngược đó xuống => dùng Node Code để đảo ngược lại nội dung (từ cũ nhất tới mới nhất) => lưu vào file final