Phòng khám trong bài có thật, tôi để nguyên tên như trên Google Maps. Họ không liên quan tới bài này và tôi chưa hỏi họ. Tôi làm ngày 22/10/2026 và dừng ở tờ A5, không gửi tin nhắn hay in thẻ nào. Máy bạn chưa có agent thì xem bài cài agent trước.
Số đánh giá nằm ngay cạnh tên
Ai tìm "nha khoa" trên Google Maps cũng thấy số đánh giá in ngay cạnh tên phòng khám. Nhiều nơi làm tốt, khách về vui, nhưng chẳng ai nhắc khách viết vài dòng. Thế là con số đứng yên.
Chủ phòng khám đọc một dòng là hiểu: "Phòng khám anh/chị có 19 đánh giá. Nơi nhiều nhất khu này có 689." Việc bạn làm cho họ nhỏ thôi. Một link mở thẳng khung viết đánh giá, một tấm thẻ có mã QR đặt ở quầy, vài mẫu tin nhắn gửi khách sau buổi khám.
Chính sách nội dung của Google Maps (tôi đọc ngày 22/10/2026) cấm ba việc khi xin đánh giá:
- Tặng quà, giảm giá hay ưu đãi để đổi lấy đánh giá.
- Chỉ xin những khách đang vui, hoặc ngăn khách viết đánh giá xấu.
- Ép khách viết ngay tại chỗ.
Xin thì được, miễn là xin mọi khách và để họ viết thật. Tôi chép cả ba điều này vào câu lệnh viết tin nhắn ở bước 5.
Cách tôi chạy
Mỗi câu lệnh tôi giao cho một agent mới, nó chỉ biết đúng câu đó. Agent mở Chrome của tôi qua tiện ích Claude trong Chrome. Chrome này đăng nhập sẵn tài khoản Google, nên kết quả Maps trên máy bạn có thể hơi khác.
Bước nào làm trên trình duyệt thì có ảnh động ngay bên dưới. Tôi làm mờ số điện thoại các phòng khám, tên và ảnh tài khoản Google của tôi, cả mục "Gần đây" của Maps. Bước nào agent chỉ làm trong cửa sổ lệnh thì tôi dán lại chữ nó trả về.
Bước 1. Đọc danh sách trên Google Maps
Việc đầu tiên là tìm nơi đang thiếu đánh giá. Tôi bảo agent đọc danh sách nha khoa Quận 7 trên Maps. Chỉ đọc, không bấm gì.
Câu lệnh 1
Kết quả agent trả về: 12 dòng (tên dài tôi rút gọn)
| # | Tên | Sao | Đánh giá | Loại hình |
|---|---|---|---|---|
| 1 | Saigon Center Dental Clinic (quảng cáo) | 4,9 | 1.142 | Nha sĩ |
| 2 | Good Smile Dental Clinic (quảng cáo) | 4,8 | 214 | Phòng khám nha khoa |
| 3 | Nha Khoa Tâm Đức Smile Quận 7 | 4,8 | 188 | Phòng khám nha khoa |
| 4 | Nha Khoa Eden Quận 7 | 5,0 | 602 | Phòng khám nha khoa |
| 5 | Nha Khoa Peace Dentistry - Quận 7 | 4,9 | 186 | Phòng khám nha khoa |
| 6 | Nha Khoa Kim - 493 Nguyễn Thị Thập | 4,6 | 638 | Phòng khám nha khoa |
| 7 | Nha Khoa Việt Mỹ - Quận 7 | 4,4 | 271 | Phòng khám nha khoa |
| 8 | Nha khoa Lan Anh | 4,9 | 689 | Phòng khám nha khoa |
| 9 | Nha Khoa Kim - 60C Nguyễn Thị Thập | 4,7 | 400 | Phòng khám nha khoa |
| 10 | Nha Khoa VÕ NGUYỄN | 4,7 | 19 | Bác sĩ |
| 11 | Nha Khoa Khánh Phúc | 3,8 | 27 | Phòng khám nha khoa |
| 12 | Nha Khoa Thiên Đức | 4,6 | 22 | Phòng khám nha khoa |
Cả 12 nơi đều hiện số điện thoại trong danh sách, agent không chép số nào. Maps ghi "Bạn đã xem hết danh sách này" sau dòng 12. Agent lưu ý thêm: hai quảng cáo có địa chỉ ngoài Quận 7.
Tôi mở ảnh chụp cuối danh sách, so ba dòng cuối. Khớp số sao, khớp số đánh giá.
Chỉ có 12 nơi. Quận 7 chắc chắn nhiều nha khoa hơn thế, nhưng Maps chỉ trả bấy nhiêu cho lần tìm này.
Còn dòng lưu ý về hai quảng cáo thì lát nữa quay lại.
Chi tiết kiểm
Dòng 4, 5, 9 tôi chưa đối chiếu bằng mắt. Bản quay chỉ có 6 khung vì công cụ chụp màn hình bị treo mấy lần. Bốn khung cuối giống nhau nên trong bài tôi để 3 khung, và dòng 4, 9 không có trong ảnh.
Bước 2. Lọc ra nơi đang thiếu đánh giá
Tôi lọc theo ba điều: từ 4 sao trở lên (làm tốt), dưới 50 đánh giá (ít người viết), có số điện thoại (liên hệ được). Mấy ngưỡng này tôi tự đặt, chưa đo với phòng khám nào ở Việt Nam.
Câu lệnh 2Kết quả agent trả về (rút gọn)
Giữ lại 2: #10 Nha Khoa VÕ NGUYỄN (4,7 sao, 19 đánh giá), #12 Nha Khoa Thiên Đức (4,6 sao, 22 đánh giá). Dòng so sánh: "Tiệm anh/chị có 19 đánh giá. Tiệm nhiều nhất khu này có 1.142." Loại 10: #1 đến #9 vì từ 50 đánh giá trở lên (#6, #9 còn là chuỗi Nha Khoa Kim); #11 vì 3,8 sao. Agent tự cảnh báo: "Con số 1.142 có thể sai với chữ 'khu này'. Nó lấy từ tin quảng cáo #1 [...] Nếu bỏ tin quảng cáo ra, con số đúng là 689."
Còn lại hai nơi. Tôi tự lọc lại bằng tay, ra đúng hai nơi đó.
Rồi tới dòng so sánh. Agent viết 1.142, xong tự cảnh báo con số đó có thể sai.
Nó nói đúng. 1.142 là số của tin quảng cáo #1, mà phòng khám đó ở Quận 3. Bỏ quảng cáo ra thì nơi nhiều đánh giá nhất là Nha khoa Lan Anh với 689. Trên bản đồ, Lan Anh nằm trong khu Phú Mỹ Hưng, Quận 7. Tôi dùng 689 cho tờ A5.
Lỗi nằm ở câu lệnh của tôi. Đáng lẽ phải dặn thêm một câu: bỏ tin quảng cáo.
Giữa hai nơi còn lại, tôi cho Python bốc thăm. Ra #10 Nha Khoa VÕ NGUYỄN: 4,7 sao, 19 đánh giá, 483 Đường Lê Văn Lương, phường Tân Hưng, TP.HCM.
Chi tiết kiểm
Bảng không có cột "đóng cửa vĩnh viễn", nên điều kiện đó tôi chưa kiểm được. Nha Khoa VÕ NGUYỄN mang loại hình "Bác sĩ" trên Maps. Có thể đó là trang của riêng một bác sĩ. Lệnh bốc thăm là random.choice.
Bước 3. Lấy link mở thẳng khung viết đánh giá
Mỗi địa điểm trên Google có một mã riêng, gọi là place ID, giống số căn cước của phòng khám. Ghép mã đó vào sau một địa chỉ cố định là ra link mở thẳng khung viết đánh giá. Google để sẵn công cụ tra mã trong trang tài liệu Maps, dùng không mất tiền, không cần khoá API.
Câu lệnh 3
Kết quả agent trả về
Place ID: ChIJYyElKZgvdTERYKUBODIDH8E Link: https://search.google.com/local/writereview?placeid=ChIJYyElKZgvdTERYKUBODIDH8E Tên tiệm trên khung viết đánh giá: Nha Khoa VÕ NGUYỄN Địa chỉ công cụ hiện: 483 Đường Lê Văn Lương, Tân Hưng, Hồ Chí Minh 700000, Vietnam
Agent đóng khung bằng nút "Huỷ". Nó không chấm sao, không gõ chữ, không bấm Đăng.
Tôi mở ảnh agent chụp. Ô thông tin ghi đúng tên, mã và địa chỉ như trên. Khung đánh giá có tiêu đề "Nha Khoa VÕ NGUYỄN", năm sao còn trống, nút Đăng còn mờ.
Tự làm thì có ba chỗ dễ lạc. Công cụ tra mã không còn trang riêng như nhiều hướng dẫn cũ viết. Nó nằm trong trang tài liệu "Place IDs" của Google Maps Platform, kéo xuống chỗ có bản đồ và ô "Enter a location".
Đừng gõ lại mã bằng tay. Chữ I hoa với l thường, chữ O với số 0 nhìn gần như nhau. Bôi đen rồi copy cho chắc.
Link cũng không mở ra một trang riêng. Nó chuyển sang trang Google tìm tên phòng khám, rồi khung đánh giá mới nổi lên trên.
Bước 4. Thẻ đặt ở quầy
Khách thường đứng ở quầy vài phút lúc trả tiền hay chờ hẹn lịch tái khám. Một tấm thẻ nhỏ có mã QR đặt ở đó là đủ, khỏi ai phải mở miệng xin.
Câu lệnh 4Kết quả: PDF một trang A6 (105 × 148 mm)
Báo cáo agent trả về (rút gọn)
Khổ đúng 105.00 x 148.00 mm, 1 trang. Font Segoe UI, cả 3 kiểu đều được nhúng. Bản đầu bị dính font Helvetica không nhúng (reportlab tự chèn vào); đã sửa. Chữ lấy ra từ PDF khớp nguyên văn tên tiệm, lời nhắn và "BẢN MẪU". Đã xem ảnh phóng to: dấu đúng, không đè dòng trên, kể cả Ễ, ể, ậ, ệ. Dò các từ sao, 5, quà, tặng, giảm, ưu đãi, khuyến mãi, voucher, %, miễn phí, chiết khấu: không có từ nào. Mã QR: tôi tự viết một bộ đọc QR, đọc lại ảnh render từ PDF, ra đúng từng ký tự của link ở 600, 300, 150 và 100 dpi. Mã rộng 41 mm, viền trắng đủ. Để chắc bộ đọc không đọc bừa: mã của một link khác 1 ký tự thì đọc ra đúng link khác đó; mã bị lật 3 ô thì báo sai. Chưa kiểm: placeid có đúng của phòng khám không; quét bằng camera điện thoại thật; in thử (màu đang là RGB); mới mở bằng một trình đọc PDF.
Máy tôi không có sẵn thứ gì đọc được mã QR. Ở bài trước tôi không đọc lại được mã nào. Lần này agent tự viết luôn một bộ đọc mã, đọc lại tấm thẻ của chính nó, rồi cố tình làm hỏng vài ô để chắc bộ đọc không đọc bừa. Tôi chạy lại phần kiểm nó để lại, không mục nào lỗi.
Đọc tấm thẻ thì tôi vấp ở chữ "quét mã để để lại nhận xét". Hai chữ "để" đứng liền nhau.
Lỗi này của tôi. Câu đó tôi viết trong câu lệnh, agent chép y như được dặn. Làm thật thì nên viết "quét mã để viết nhận xét". Với nha khoa, "ghé phòng khám" cũng nghe tự nhiên hơn "ghé tiệm", chỗ này agent tự nhắc.
Chi tiết kiểm
- Script kiểm agent để lại có 18 mục, tôi chạy lại, cả 18 đều qua.
- Link dài đúng 79 ký tự, khớp số byte trong mã QR.
- Agent không biết place ID có đúng phòng khám không, vì nó chỉ nhận câu lệnh. Phần đó bước 3 đã kiểm: khung đánh giá hiện đúng tên.
Bước 5. Tin nhắn gửi khách sau buổi khám
Thẻ ở quầy chỉ gặp được khách đang đứng đó. Khách về rồi thì cần một tin nhắn.
Câu lệnh 5Kết quả agent trả về (link viết gọn thành [link])
Mẫu 1 (235 ký tự): Tiệm Nha Khoa VÕ NGUYỄN cảm ơn anh/chị đã ghé hôm nay. Nếu tiện, anh/chị viết vài dòng nhận xét thật về lần điều trị này giúp tiệm, khen hay góp ý đều quý: [link] Mẫu 2 (273 ký tự): Tiệm Nha Khoa VÕ NGUYỄN chào anh/chị. Lần điều trị vừa rồi chỗ nào chưa ổn, anh/chị cứ nói thẳng để tiệm sửa; chỗ nào ổn thì kể để người sau tham khảo. Khi tiện, anh/chị ghi nhận xét tại đây ạ: [link] Mẫu 3 (282 ký tự): Tiệm Nha Khoa VÕ NGUYỄN hỏi thăm anh/chị: răng sau điều trị có ê buốt gì không ạ? Có gì cứ nhắn tiệm. Lúc rảnh, mời anh/chị kể lại trải nghiệm ở tiệm, kể cả điều chưa vừa ý: [link] Không tiện cũng không sao ạ. Nhắc lại, gửi một lần sau 3 ngày (273 ký tự): Tiệm Nha Khoa VÕ NGUYỄN nhắc lại một lần duy nhất. Anh/chị chưa có dịp thì tiệm vẫn mong nghe nhận xét thật, tốt hay chưa tốt đều được: [link] Đã viết rồi hoặc không tiện thì anh/chị bỏ qua tin này ạ.
Agent lưu ý thêm: gửi bằng SMS thì tin tiếng Việt có dấu bị tính thành nhiều đoạn, gửi qua Zalo thì không sao.
Agent đếm ký tự bằng tay. Tôi cho máy đếm lại, tính cả link:
235. 273. 282. 273.
Khớp hết. Tôi đọc từng mẫu, so với ba điều Google cấm. Không mẫu nào có quà. Mẫu nào cũng mời cả khen lẫn chê, và cũng chẳng mẫu nào ép.
Mẫu 3 hỏi "răng sau điều trị có ê buốt gì không". Đó là câu hỏi chuyên môn. Khách trả lời "có" là phòng khám phải theo tiếp, nên dùng mẫu này hay không thì để phòng khám tự quyết.
Bước 6. Trang demo cho chủ phòng khám xem
Chủ phòng khám cần thấy tận mắt khách của họ sẽ nhận được gì. Tôi bảo agent dựng một trang web nhỏ làm mẫu.
Câu lệnh 6Kết quả: một file index.html
Mở trang demo. Nút trong trang mở khung đánh giá thật của Google, nên đừng bấm Đăng.
Báo cáo agent trả về (rút gọn)
Ô QR chỉ là chỗ trống, ghi rõ "in mã thật khi làm thẻ". Tôi cố ý không vẽ mã giả để ai lỡ quét cũng không bị hiểu lầm. Dưới nút có ba ghi chú cho chủ tiệm: Google có thể hỏi đăng nhập, cần kiểm khung mở ra có đúng tên tiệm, và chủ tiệm không tự viết đánh giá cho tiệm mình. Đã kiểm: không tải gì từ mạng; câu tin nhắn và hai link khớp nguyên văn (so bằng script); không có con số nào; 390px một cột, không cuộn ngang, nút cao 52px. Chưa kiểm: điện thoại thật, Safari, trình duyệt trong Zalo, bề rộng 320px, chế độ tối.
Ô mã QR trong trang để trống. Agent cố ý không vẽ mã giả, để lỡ ai quét cũng không hiểu lầm. Nó còn tự thêm dưới nút một dòng nhắc chủ phòng khám đừng tự viết đánh giá cho phòng khám của họ.
Tôi xem ảnh ở cả hai cỡ. Đủ ba phần, đúng thứ tự, chữ có dấu không lỗi, link dài tự xuống dòng trong bong bóng chat. Nút trong trang dùng đúng link đã thử ở bước 3.
Chữ trên tấm thẻ vẽ trong trang demo thì agent tự viết, khác chữ trên thẻ ở bước 4. Không sai luật gì. Làm thật thì nên dùng chung một lời.
Bước 7. Tờ A5 đưa chủ phòng khám
Cuối cùng là tờ giấy đưa tận tay chủ phòng khám. Trên đó là dòng so sánh đã sửa ở bước 2: 19 và 689.
Câu lệnh 7Kết quả: PDF một trang A5
Báo cáo agent trả về (rút gọn)
Khổ 148 × 210 mm, 1 trang; font Arial được nhúng (lần đầu có chỗ trỏ Helvetica không nhúng, tôi đã sửa); chữ nhỏ nhất 12 pt. Giải mã QR: máy không có thư viện đọc QR nên tôi tự viết bộ giải mã, render trang ở 600 dpi, đọc ra đúng https://example.com/ban-mau. Bộ giải mã giải đúng 46/46 mã mẫu, và báo lỗi khi tôi cố ý lật một ô hay lật cả mã. Chưa kiểm: quét bằng điện thoại thật, in ra giấy, mở bằng Acrobat hay Chrome.
Tôi xem ảnh. Đủ các dòng, dấu tiếng Việt đúng, mã QR có viền trắng. Agent này cũng tự viết bộ đọc mã như ở bước 4, và đọc ra đúng địa chỉ. Dù vậy, nó vẫn chưa bằng một lần cầm điện thoại lên quét.
Mã QR trên tờ này trỏ tới một địa chỉ giữ chỗ. Làm thật thì bạn thay bằng link trang demo đã đưa lên mạng.
Bước 8. Ghi mốc để báo cáo hằng tháng
Chủ phòng khám chỉ thấy việc này có ích khi thấy con số đổi. Nên ngày đầu tiên phải ghi lại số hiện tại.
Câu lệnh 8Kết quả agent trả về
ngày,số sao,số đánh giá,ghi chú 2026-10-22,"4,7",19,mốc trước khi bắt đầu
Chào anh/chị, báo cáo tháng [ ] của Nha Khoa VÕ NGUYỄN: - Tin xin đánh giá đã gửi khách: [ ] tin - Đánh giá mới trên Google trong tháng: [ ] - Tổng hiện tại: [ ] đánh giá, [ ] sao (Mốc ngày 22/10/2026: 19 đánh giá, 4,7 sao.) Anh/chị cần xem chi tiết thì nhắn tôi. [Tên bạn]
Mẫu tin dài 274 ký tự, chỗ nào chưa có số đều để [ ].
Agent này lại tự mở sổ ghi của tôi để lấy số, dù câu lệnh đã điền sẵn. Số không sai. Nhưng nó phá điều kiện mỗi agent chỉ biết đúng câu lệnh được giao, nên lần sau tôi sẽ dặn nó không đọc thư mục khác.
Bước 9. Đưa tận tay
Bước này tôi chưa làm. Cách làm thì đơn giản: tới phòng khám, đưa tờ A5, nói ngắn rằng đây là bản mẫu và họ chưa phải trả gì. Mấy câu nói lúc đưa giấy tôi đã thử ở bài dựng web cho tiệm, bước 5.
Những chỗ tôi vấp
- Câu lệnh 2 không dặn bỏ quảng cáo, nên con số so sánh lấy nhầm một phòng khám ở quận khác. Agent tự phát hiện và cảnh báo.
- Câu lệnh 4 có chữ "để để lại nhận xét", agent in y như vậy lên thẻ. Viết câu lệnh xong nên đọc to một lần.
- Công cụ chụp màn hình Chrome bị treo nhiều lần, chờ 30 giây rồi báo lỗi. Đợi vài giây chụp lại thì được, nhưng ảnh động bị thiếu khung.
- Công cụ tra place ID đã chuyển vào trang tài liệu Maps, không còn trang riêng.
- Một agent tự mở sổ ghi của tôi dù không cần.
- Python trên Windows báo lỗi khi in tên có dấu ra màn hình. Phải bật chế độ UTF-8.
Hai lỗi lớn nhất trong bài đều nằm ở câu lệnh của tôi. Một lần con AI tự bắt được. Một lần nó chép y nguyên lên thẻ.
Còn thiếu
- Chưa gửi tin nhắn nào, chưa cài gửi tự động sau mỗi buổi khám.
- Chưa quét mã QR bằng điện thoại, chưa in thẻ và tờ A5.
- Link đánh giá mới thử trên máy tính đã đăng nhập Google.
- Chưa hỏi phòng khám, nên cũng chưa biết "Bác sĩ" trên Maps là phòng khám hay trang cá nhân.
- Bộ này có kéo thêm đánh giá hay không thì phải có phòng khám dùng thử mới biết.