{
  "version": "1.2",
  "lastUpdated": "2026-08-11",
  "market": "Vietnam",
  "locale": "vi",
  "license": "https://creativecommons.org/licenses/by/4.0/",
  "licenseLabel": "CC BY 4.0 — attribution: heypeko.com",
  "sourceUrl": "https://heypeko.com/vi/chuan-minh-bach-loyalty",
  "scoring": {
    "pass": 1,
    "partial": 0.5,
    "fail": 0,
    "unknown": 0
  },
  "criteria": [
    {
      "id": "quyen-duoc-nhin-thay",
      "name": "Tiêu chí 1 — Quyền được nhìn thấy",
      "question": "Thành viên có tự xem được số điểm, hạng thành viên và danh sách voucher của mình mà không cần hỏi nhân viên không?",
      "subCriteria": [
        {
          "id": "c1_balance",
          "name": "1a. Khách xem được số điểm"
        },
        {
          "id": "c1_tier",
          "name": "1b. Khách xem được hạng"
        },
        {
          "id": "c1_vouchers",
          "name": "1c. Khách xem được voucher"
        }
      ]
    },
    {
      "id": "quyen-tu-doi-thuong",
      "name": "Tiêu chí 2 — Quyền tự đổi thưởng, mọi kênh",
      "question": "Thành viên có tự đổi được phần thưởng, và có đổi được trên đơn online / đơn giao hàng chứ không chỉ tại quầy không?",
      "subCriteria": [
        {
          "id": "c2_self",
          "name": "2a. Khách tự đổi thưởng"
        },
        {
          "id": "c2_channels",
          "name": "2b. Phạm vi kênh đổi"
        }
      ]
    },
    {
      "id": "quyen-duoc-lien-he",
      "name": "Tiêu chí 3 — Quyền được liên hệ giữa các lần ghé",
      "question": "Thành viên có nhận được gì giữa hai lần ghé, trên kênh họ thực sự đọc — và đó có phải những loại tin nhắn ảnh hưởng đến việc quay lại không?",
      "subCriteria": [
        {
          "id": "c3_channel",
          "name": "3a. Kênh nhắn tin"
        },
        {
          "id": "c3_triggers",
          "name": "3b. Loại trigger"
        }
      ]
    },
    {
      "id": "dang-ky-khong-phu-thuoc-thu-ngan",
      "name": "Tiêu chí 4 — Đăng ký không phụ thuộc thu ngân",
      "question": "Khách có tự tham gia được mà không cần nhân viên khởi xướng — và nếu có, cái gì ngăn gian lận?",
      "subCriteria": [
        {
          "id": "c4_paths",
          "name": "4a. Đường đăng ký"
        },
        {
          "id": "c4_integrity",
          "name": "4b. Kiểm soát toàn vẹn"
        }
      ]
    },
    {
      "id": "pham-vi-dang-ky",
      "name": "Tiêu chí 5 — Phạm vi đăng ký: chỉ người trả tiền, hay cả bàn?",
      "question": "Những người không trả tiền — phần còn lại của bàn, của nhóm, người đi cùng — có tham gia được chương trình ngay trong lần ghé đó không?",
      "subCriteria": [
        {
          "id": "c5_scope",
          "name": "5. Phạm vi đăng ký"
        }
      ]
    }
  ],
  "vendors": [
    {
      "id": "peko",
      "name": "PEKO",
      "score": 9.5,
      "maxScore": 10,
      "unknownCount": 0,
      "strength": "Điểm mạnh nhất theo tài liệu: đăng ký không đi qua thu ngân — QR tự phục vụ, check-in tại quán và quét hóa đơn bằng OCR chạy trên mọi POS.",
      "scores": {
        "c1_balance": {
          "verdict": "pass",
          "note": "Đạt — thành viên xem điểm trong Zalo OA / trang thành viên, không cần hỏi nhân viên."
        },
        "c1_tier": {
          "verdict": "pass",
          "note": "Đạt — hạng thành viên hiển thị cho khách."
        },
        "c1_vouchers": {
          "verdict": "pass",
          "note": "Đạt — danh sách voucher đang có hiệu lực hiển thị cho khách."
        },
        "c2_self": {
          "verdict": "pass",
          "note": "Đạt — khách tự đổi thưởng từ ví thành viên."
        },
        "c2_channels": {
          "verdict": "pass",
          "note": "Tại quầy + online — đổi được cả trên đơn online và tại quán."
        },
        "c3_channel": {
          "verdict": "pass",
          "note": "Đạt — Zalo OA và ZNS (VN)."
        },
        "c3_triggers": {
          "verdict": "pass",
          "note": "Khách lâu không ghé, điểm sắp hết hạn, voucher sắp hết hạn, tiến độ lên hạng, sinh nhật, tin sau giao dịch."
        },
        "c4_paths": {
          "verdict": "pass",
          "note": "QR tự phục vụ, check-in tại quán, và quét hóa đơn bằng OCR — không yêu cầu tích hợp POS."
        },
        "c4_integrity": {
          "verdict": "pass",
          "note": "Giới hạn quét theo giờ/ngày, giới hạn tuổi hóa đơn, ngưỡng giá trị hóa đơn, so trùng ảnh giữa các khách với ngưỡng tương đồng cấu hình được, phát hiện quét thất bại liên tiếp, hành động theo mức rủi ro (chặn / giữ kiểm tra / thông báo)."
        },
        "c5_scope": {
          "verdict": "partial",
          "note": "Đạt — với điều kiện triển khai: QR phải được đặt tại bàn hoặc trong quán để người không thanh toán cũng tham gia được; nếu quán không triển khai QR thì chỉ còn đường quét hóa đơn, và trần người trả tiền quay lại."
        }
      },
      "sources": [
        {
          "label": "heypeko.com — sản phẩm",
          "href": "https://heypeko.com/product"
        },
        {
          "label": "heypeko.com — giá",
          "href": "https://heypeko.com/pricing-details"
        },
        {
          "label": "heypeko.com — tích hợp POS",
          "href": "https://heypeko.com/integrations"
        }
      ],
      "openQuestions": []
    },
    {
      "id": "kiotviet",
      "name": "KiotViet",
      "score": 0.5,
      "maxScore": 10,
      "unknownCount": 6,
      "strength": "Điểm mạnh nhất theo tài liệu: tích điểm gắn liền với màn hình bán hàng, phù hợp quán gần như toàn bộ đơn tại quầy.",
      "scores": {
        "c1_balance": {
          "verdict": "fail",
          "note": "Không đạt — tài liệu mô tả điểm được quản lý trên ứng dụng của cửa hàng; không nêu cổng để khách tự xem số điểm."
        },
        "c1_tier": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        },
        "c1_vouchers": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        },
        "c2_self": {
          "verdict": "fail",
          "note": "Không đạt — tài liệu nêu việc dùng điểm để thanh toán diễn ra trên màn hình bán hàng; không nêu khách tự đổi."
        },
        "c2_channels": {
          "verdict": "partial",
          "note": "Tại quầy — theo tài liệu, việc dùng điểm gắn với màn hình bán hàng. Đơn online/giao hàng: không rõ từ tài liệu công khai."
        },
        "c3_channel": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        },
        "c3_triggers": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        },
        "c4_paths": {
          "verdict": "fail",
          "note": "Không đạt — tài liệu mô tả cửa hàng thiết lập và ghi nhận thông tin khách; không nêu đường khách tự đăng ký."
        },
        "c4_integrity": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        },
        "c5_scope": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        }
      },
      "sources": [
        {
          "label": "kiotviet.vn — tích điểm khách hàng",
          "href": "https://www.kiotviet.vn/tich-diem-khach-hang/"
        },
        {
          "label": "kiotviet.vn — hướng dẫn tích điểm",
          "href": "https://www.kiotviet.vn/huong-dan-su-dung-kiotviet/retail-tich-diem/tich-diem/"
        }
      ],
      "openQuestions": [
        "1b. Khách xem được hạng",
        "1c. Khách xem được voucher",
        "3a. Kênh nhắn tin",
        "3b. Loại trigger",
        "4b. Kiểm soát toàn vẹn",
        "5. Phạm vi đăng ký"
      ]
    },
    {
      "id": "ipos",
      "name": "iPOS.vn",
      "score": 3,
      "maxScore": 10,
      "unknownCount": 6,
      "strength": "Điểm mạnh nhất theo tài liệu: phạm vi kênh đổi thưởng — voucher áp dụng được tại POS, trên iPOS WebOrder và các kênh đối tác liên kết.",
      "scores": {
        "c1_balance": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        },
        "c1_tier": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        },
        "c1_vouchers": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        },
        "c2_self": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        },
        "c2_channels": {
          "verdict": "pass",
          "note": "Tại quầy + online — tài liệu nêu voucher áp dụng được tại máy POS và trên kênh bán online iPOS WebOrder cùng kênh đối tác liên kết."
        },
        "c3_channel": {
          "verdict": "pass",
          "note": "Đạt — Zalo OA (tài liệu nêu đăng ký và theo dõi qua Zalo OA)."
        },
        "c3_triggers": {
          "verdict": "partial",
          "note": "Đạt một phần — tài liệu nêu kịch bản sinh nhật, nhắc khách quay lại, voucher hết hạn, nhắc áp dụng voucher, đặt bàn. Điểm hết hạn và tiến độ lên hạng: không rõ từ tài liệu công khai."
        },
        "c4_paths": {
          "verdict": "partial",
          "note": "Đạt một phần — tài liệu nêu tích điểm tự động qua số điện thoại hoặc mã thành viên và theo dõi qua Zalo OA; đường tự đăng ký bằng QR hoặc quét hóa đơn: không rõ từ tài liệu công khai."
        },
        "c4_integrity": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        },
        "c5_scope": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        }
      },
      "sources": [
        {
          "label": "ipos.vn — iPOS CRM",
          "href": "https://ipos.vn/san-pham/phan-mem-cham-soc-khach-hang-ipos-crm/"
        }
      ],
      "openQuestions": [
        "1a. Khách xem được số điểm",
        "1b. Khách xem được hạng",
        "1c. Khách xem được voucher",
        "2a. Khách tự đổi thưởng",
        "4b. Kiểm soát toàn vẹn",
        "5. Phạm vi đăng ký"
      ]
    },
    {
      "id": "sapo-fnb",
      "name": "Sapo FnB",
      "score": 3.5,
      "maxScore": 10,
      "unknownCount": 6,
      "strength": "Điểm mạnh nhất theo tài liệu: trang tài khoản khách hàng thân thiết, nơi khách tự theo dõi điểm và hạng của mình.",
      "scores": {
        "c1_balance": {
          "verdict": "pass",
          "note": "Đạt — tài liệu nêu trang tài khoản khách hàng thân thiết để khách tự theo dõi điểm."
        },
        "c1_tier": {
          "verdict": "pass",
          "note": "Đạt — hạng thành viên hiển thị trên trang khách hàng theo tài liệu."
        },
        "c1_vouchers": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        },
        "c2_self": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        },
        "c2_channels": {
          "verdict": "pass",
          "note": "Tại quầy + website — tài liệu nêu đổi điểm đa kênh từ cửa hàng đến website. Đơn giao hàng qua app đối tác: không rõ từ tài liệu công khai."
        },
        "c3_channel": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        },
        "c3_triggers": {
          "verdict": "partial",
          "note": "Đạt một phần — tài liệu nêu gửi ưu đãi cá nhân hoá và cấu hình thời gian điểm hết hạn; danh sách trigger cụ thể: không rõ từ tài liệu công khai."
        },
        "c4_paths": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        },
        "c4_integrity": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        },
        "c5_scope": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        }
      },
      "sources": [
        {
          "label": "sapo.vn — chăm sóc khách hàng đa kênh",
          "href": "https://www.sapo.vn/phan-mem-quan-ly-cham-soc-khach-hang-da-kenh.html"
        },
        {
          "label": "sapo.vn — quản lý nhà hàng",
          "href": "https://www.sapo.vn/phan-mem-quan-ly-nha-hang.html"
        }
      ],
      "openQuestions": [
        "1c. Khách xem được voucher",
        "2a. Khách tự đổi thưởng",
        "3a. Kênh nhắn tin",
        "4a. Đường đăng ký",
        "4b. Kiểm soát toàn vẹn",
        "5. Phạm vi đăng ký"
      ]
    },
    {
      "id": "misa-cukcuk",
      "name": "MISA CukCuk",
      "score": 0.5,
      "maxScore": 10,
      "unknownCount": 9,
      "strength": "Điểm mạnh nhất theo tài liệu: quy trình quản lý khách hàng ngay trong phần mềm bán hàng của nhà hàng.",
      "scores": {
        "c1_balance": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        },
        "c1_tier": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        },
        "c1_vouchers": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        },
        "c2_self": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        },
        "c2_channels": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        },
        "c3_channel": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        },
        "c3_triggers": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        },
        "c4_paths": {
          "verdict": "partial",
          "note": "Đạt một phần — tài liệu nêu nhân viên thêm khách hàng mới vào danh sách tại phần mềm; đường khách tự đăng ký: không rõ từ tài liệu công khai."
        },
        "c4_integrity": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        },
        "c5_scope": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        }
      },
      "sources": [
        {
          "label": "cukcuk.vn — CukCuk POS",
          "href": "https://www.cukcuk.vn/cukcuk-pos/"
        },
        {
          "label": "cukcuk.vn — quản lý khách hàng nhà hàng",
          "href": "https://www.cukcuk.vn/24827/phan-mem-quan-ly-khach-hang-nha-hang/"
        },
        {
          "label": "cukcuk.vn — phần mềm tích điểm",
          "href": "https://www.cukcuk.vn/40919/phan-mem-tich-diem-cho-khach-hang/"
        }
      ],
      "openQuestions": [
        "1a. Khách xem được số điểm",
        "1b. Khách xem được hạng",
        "1c. Khách xem được voucher",
        "2a. Khách tự đổi thưởng",
        "2b. Phạm vi kênh đổi",
        "3a. Kênh nhắn tin",
        "3b. Loại trigger",
        "4b. Kiểm soát toàn vẹn",
        "5. Phạm vi đăng ký"
      ]
    },
    {
      "id": "posapp",
      "name": "PosApp",
      "score": 8.5,
      "maxScore": 10,
      "unknownCount": 1,
      "strength": "Điểm mạnh nhất theo tài liệu: Zalo Mini App cho khách xem điểm, hạng và voucher, cộng nhiều đường đăng ký kể cả QR đặt món tại bàn.",
      "scores": {
        "c1_balance": {
          "verdict": "pass",
          "note": "Đạt — tài liệu nêu khách xem điểm trên Zalo Mini App."
        },
        "c1_tier": {
          "verdict": "pass",
          "note": "Đạt — tài liệu nêu khách xem hạng thẻ trên Zalo Mini App."
        },
        "c1_vouchers": {
          "verdict": "pass",
          "note": "Đạt — tài liệu nêu khách nhận, lưu và xem voucher trong Mini App."
        },
        "c2_self": {
          "verdict": "pass",
          "note": "Đạt — tài liệu nêu khách tự đổi điểm nhận ưu đãi hoặc quà tặng trong Mini App."
        },
        "c2_channels": {
          "verdict": "pass",
          "note": "Tại quầy + online — tài liệu nêu voucher dùng được tại cửa hàng hoặc khi mua online, và có QR Order."
        },
        "c3_channel": {
          "verdict": "pass",
          "note": "Đạt — Zalo OA và ZNS."
        },
        "c3_triggers": {
          "verdict": "pass",
          "note": "Sinh nhật, cảm ơn sau mua, khách chưa quay lại sau 30 ngày, đạt ngưỡng chi tiêu để thăng hạng, thông báo biến động điểm. Điểm và voucher hết hạn: không rõ từ tài liệu công khai."
        },
        "c4_paths": {
          "verdict": "pass",
          "note": "Đạt — tài liệu nêu quét QR đặt món tại bàn tự thu thông tin, QR ưu đãi in trên hóa đơn đơn app giao hàng, khách tự đăng ký bằng số điện thoại hoặc Zalo, và tích điểm tại quầy."
        },
        "c4_integrity": {
          "verdict": "partial",
          "note": "Đạt một phần — tài liệu nêu lọc trùng và hợp nhất theo số điện thoại/Zalo ID, và xác thực voucher trên máy POS. Giới hạn tần suất, giới hạn tuổi hóa đơn hay so trùng ảnh: không rõ từ tài liệu công khai."
        },
        "c5_scope": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        }
      },
      "sources": [
        {
          "label": "posapp.vn — phần mềm tích điểm",
          "href": "https://posapp.vn/phan-mem-tich-diem-khach"
        },
        {
          "label": "posapp.vn — CRM nhà hàng",
          "href": "https://posapp.vn/crm-nha-hang"
        }
      ],
      "openQuestions": [
        "5. Phạm vi đăng ký"
      ]
    },
    {
      "id": "cnv-loyalty",
      "name": "CNV Loyalty",
      "score": 5,
      "maxScore": 10,
      "unknownCount": 4,
      "strength": "Điểm mạnh nhất theo tài liệu: app thương hiệu riêng cộng Zalo Mini App cho khách, kèm module điểm, hạng và ưu đãi.",
      "scores": {
        "c1_balance": {
          "verdict": "pass",
          "note": "Đạt — sản phẩm là app thương hiệu riêng và Zalo Mini App cho khách, tài liệu nêu module tích điểm thành viên kèm lịch sử."
        },
        "c1_tier": {
          "verdict": "pass",
          "note": "Đạt — tài liệu nêu thông tin thăng hạng thành viên trong app."
        },
        "c1_vouchers": {
          "verdict": "pass",
          "note": "Đạt — tài liệu nêu module quản lý ưu đãi và đổi thưởng trong app khách hàng."
        },
        "c2_self": {
          "verdict": "partial",
          "note": "Đạt một phần — tài liệu nêu chức năng đổi thưởng và mua hàng trong app; việc đổi không cần nhân viên xác nhận: không rõ từ tài liệu công khai."
        },
        "c2_channels": {
          "verdict": "partial",
          "note": "Đạt một phần — tài liệu nêu thương mại điện tử trong app; phạm vi đổi trên đơn giao hàng qua app đối tác: không rõ từ tài liệu công khai."
        },
        "c3_channel": {
          "verdict": "pass",
          "note": "Đạt — Zalo OA, cùng automation marketing theo tài liệu."
        },
        "c3_triggers": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        },
        "c4_paths": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        },
        "c4_integrity": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        },
        "c5_scope": {
          "verdict": "unknown",
          "note": "Không rõ từ tài liệu công khai"
        }
      },
      "sources": [
        {
          "label": "cnvloyalty.com — trang chủ sản phẩm",
          "href": "https://cnvloyalty.com/"
        },
        {
          "label": "cnvloyalty.com — case study Zalo Mini App",
          "href": "https://cnvloyalty.com/blogs/case-study-dien-hinh/chuyen-minh-ngoan-muc-danavi-mart-tang-truong-manh-me-voi-zalo-mini-app"
        }
      ],
      "openQuestions": [
        "3b. Loại trigger",
        "4a. Đường đăng ký",
        "4b. Kiểm soát toàn vẹn",
        "5. Phạm vi đăng ký"
      ]
    }
  ]
}
