I. Đặt vấn đề

Như các bạn thấy, ngày nay Facebook đang là một mạng xã hội linh hoạt nhất, đáp ứng những nhu cầu như là: chat, streaming, marketing sản phẩm,...với mức chi phí thấp và cho hiệu quả cao. Vì vậy, Facebook trở thành một nền tảng tổ chức sự kiện,  bán hàng online mới.

Sự phát triển của Facebook tạo điều kiện thuận lợi cho việc buôn bán các sản phẩm online. Bạn sẽ thấy không thiếu những bài đăng tin rao vặt, trao đổi và thậm chí người ta còn lập ra các fanpage để giải quyết nhu cầu trao đổi hàng hoá với nhau.

Lượng thông tin trên facebook rất dồi dào để khai thác, và nhất là thông tin về người dùng.

Trong blog lần này, mình sẽ đề cập đến bài toán quay số trúng thưởng. Đúng hơn, đây là bài toán khai thác thông tin người dùng bằng cách tổ chức một event quay số trúng thưởng

II. Phân tích đề bài

Có phải các bạn từng thấy những bài đăng quảng cáo sản phẩm mới, hoặc các sự kiện give away như:

"Hãy nhập số có 3 chữ số vào bình luận, bạn sẽ có cơ hội trúng thưởng sản phẩm sau..."

hay là

"Hãy cmt theo cú phát Tên-SĐT-MSP và bạn sẽ có cơ hội nhận các sp sau"

Chiêu trò này hoạt động như sau:

  • Đầu tiên bạn cmt thông tin của mình vào bài đăng
  • Sau đó nhân viên của cửa hàng sẽ thu thập thông tin của bạn
  • Từ những thông tin đó sẽ...làm gì thì ai mà biết =]]

Như vậy các công việc của nhân viên sẽ như sau:

  • thu thập các kết quả từ khách hàng trong phần comment
  • Sử dụng hệ thống quay số tự động
  • tìm kiếm khách hàng trúng thưởng
  • gửi thông báo

II. Ý tưởng

Các công việc trên thấy đơn giản, lặp đi lặp lại nhưng lại tốn quá nhiều thời gian .

UIPATH có thể giúp chúng ta xây dựng một con robot tự động có thể giải quyết các công việc của nhân viên

Robot sẽ thực hiện những công việc:

Toàn bộ những công việc này có thể được stream lên màn hình và được tự động hoá .

Vì vậy khách hàng có thể tin tưởng vào tính minh bạch trong quá trình quay số tự động

III. Ngắn gọn về UIPATH

Nó là cái gì

Bạn có thể hiểu UIPATH như là một công cụ lập trình mà bạn có thể lập trình nên thứ bạn muốn bằng GUI .

UIPATH cung cấp thao tác lập trình bằng giao diện, các component kéo thả, các mũi tên điều hướng, sự sắp xếp công việc từ trên xuống dưới . Kèm với đó là khả năng lưu trữ các biến dữ liệu .

Với UIPATH bạn chẳng cần phải học cú pháp ngôn ngữ mà chỉ cần chú tâm tới logic, sau đó bạn chỉ việc kéo thả để tạo nên một công cụ giúp bạn thực hiện các công việc của mình hiệu quả hơn .

(Và dĩ nhiên, bạn cũng có thể can thiệp sâu vào code)

Về giao diện chính của UIPATH

Giao diện của UIPATH khá đơn giản, trong đó có 2 phần chính sẽ chứa các công cụ design và các component là Activity Pane và Ribbon

IV. Xây dựng con robot bằng UIPATH

1. Lấy kết quả random từ Random.org

  • UIPATH cung cấp các công cụ để có thể điều khiển trình thứ 3 hoạt động .

Đầu tiên chúng tả sẽ sử dụng Activity OpenBrowser để mở trang web Random.org

tiếp theo chúng ta sẽ sử dụng Sequence để thể hiện các công việc lấy kết quả random

  • Công việc tiếp theo sẽ là sử dụng tính năng recording web để lưu các thao tác lấy dữ liệu random:  (đó là icon 2 hình tròn đồng tâm ở dưới)
  • Đầu tiên là sử dụng sự kiện click để bấm vào "Generate"

Sau đó dùng tính năng CopyText để lấy dữ liệu

  • Bạn có thể dễ dàng lưu trữ kết quả bằng cách gán vào biến toàn cục

bằng cách click vào element 'Get Text' và thay đổi biến của phần output trong properties

Mình sẽ đặt tên giá trị này là randomResult

2. Lấy dự đoán từ khách hàng

Các công việc ở phần này như sau:

Mở bài đăng quảng cáo → Lấy dữ liệu → Xuất dữ liệu ra file Excel

  • Bước 1 - Mở bài đăng quảng cáo : Chúng ta lại dùng OpenBrowser để mở bài đăng quảng cáo
Ví dụ đây là bài đăng của mình
  • Bước 2 - Lấy dữ liệu: Tiếp hành việc thu thập dữ liệu bằng tính năng DataScraping ở ngay trên Ribbon
Công việc thu thập dữ liệu chỉ là click lập đi lập lại mỗi thông tin bạn muốn lấy 2 lần, đặt tên cột bạn muốn lưu
Lấy link Facebook của khách hàng bằng cách chọn vào option Extract Url
Và dữ liệu chúng ta thu được sẽ trông như thế này

Để thu thập tiếp những dữ liệu khác thì hãy lựa chọn Extract Correlated Data

Về việc thu tập dữ liệu về thời gian chúng ta sẽ tiếp tục các thao tác như trên nhưng chúng ta sẽ can thiệp sâu hơn vào cấu trúc của html

Như các bạn thấy đấy "1d" không phải là kết quả chúng ta mong muốn bởi vì nó không có gì khác biệt giữa các comment

Chúng ta sẽ sử dụng Develop tool của trình duyệt để xem thông tin về thời gian

OK! Chúng ta thấy data-utiem là dữ liệu phù hợp để ta biết được bình luận nào là sớm nhất, việc của chúng ta chỉ là điều chỉnh dữ liệu scraping sao cho đúng bằng cách click vào Edit Data Definition

Chúng ta chỉ việc thay attr="text" → attr="data-utiem"  

Vậy là chúng ta được dữ liệu như sau

Chúng ta sẽ lưu data này vào biến ExtraDataTable

  • Bước 3 - Xuất dữ liệu ra file Excel : Chúng ta sẽ sử dụng Excel Appication Scope cùng với Write Range để lưu kết quả  vào Excel

Tổng kết lại quy trình thu thập dữ liệu người dùng sẽ như sau

3. Tìm kiếm khách hàng trúng thưởng

Công việc được mô tả như sau

  • Đầu tiên chúng ta sẽ đọc file Excel
  • Sort theo thời gian 
  • Lấy ra kết quả khách hàng có comment đúng với kết quả random
  • Chọn khách hàng comment đầu tiên
  • Thông báo ra màn hình

Vậy là chúng ta đã xây dựng xong ứng dụng robot rồi :"3~

Tổng hợp

Chúng ta sẽ có được con robot làm những việc như sau

V. Chốt lại

Bây giờ chúng ta chỉ việc nghỉ ngơi, đọc báo, rồi đợi con robot chạy ra kết quả rồi thông báo cho khách hàng thôi

“A robot for every person”, have fun :3