Skip to main content

Hành động (Actions) là gì?

Hành động là các thao tác được thực hiện tự động khi một thẻ được quét. Các hành động chạy theo thứ tự từ trên xuống dưới. Mỗi hành động có thể có điều kiện CEL để kiểm soát khi nào nó được thực hiện.

Chín loại hành động

Validate Pass và Scan Once chỉ có ở máy quét, vì chúng gắn với một lượt quét cụ thể. Sự kiện lịch hỗ trợ bảy hành động còn lại.

Chi tiết từng hành động

Validate Pass

Kiểm tra tính hợp lệ của thẻ. Đây thường là hành động đầu tiên để đảm bảo thẻ hợp lệ trước khi thực hiện các hành động khác.
  • CEL Rule Expression: Điều kiện kiểm tra, ví dụ pass.data.visits < 10
  • Error Message: Thông báo hiển thị khi điều kiện không thoả
Nếu điều kiện không thoả, hành động này trả về kết quả không hợp lệ và toàn bộ chuỗi hành động dừng lại. Các hành động xếp sau không chạy.

Increment

Tăng giá trị của một trường dữ liệu số (ví dụ: số lần ghé thăm, điểm tích lũy). Hành động Increment
  • Field Name: Tên trường dữ liệu cần tăng
  • Value: Giá trị tăng thêm (mặc định là 1)
  • Label (for scanner input): Nhãn hiển thị trên giao diện quét
  • Placeholder: Văn bản gợi ý trong ô nhập
  • Show in Additional params: Hiển thị trường này trong phần tham số bổ sung
Khi nhân viên nhập một giá trị trên giao diện quét, giá trị đó thay thế giá trị mặc định của hành động cho lượt quét đó. Nhờ vậy cùng một máy quét phục vụ được nhiều tình huống — ví dụ cộng 1 điểm thường ngày, cộng 5 điểm vào ngày khuyến mãi.

Decrement

Giảm giá trị của một trường dữ liệu số (ví dụ: số vé còn lại, số lượt sử dụng). Cấu hình tương tự như Increment: Field Name, Value, Label (for scanner input), Placeholder, Show in Additional params. Kết quả được giới hạn ở 0 — trừ quá số hiện có sẽ dừng ở 0, không thành số âm.

Update Data

Ghi dữ liệu vào thẻ bằng một JSON object.
Nhập JSON vào ô soạn thảo. Các trường không nhắc tới sẽ giữ nguyên giá trị cũ.

Void

Vô hiệu hóa thẻ. Sau khi thực hiện, thẻ không còn hiệu lực.

Sync

Đẩy bản cập nhật mới nhất lên Apple Wallet và Google Wallet.
Trong phần lớn trường hợp bạn không cần thêm Sync thủ công. Thao tác ghi dữ liệu đã tự đẩy bản cập nhật lên ví. Chỉ thêm Sync khi bạn muốn một hành động riêng buộc đồng bộ lại.

Notify

Gửi thông báo đẩy đến người dùng thẻ. Hành động Notify
  • Notification Message: Nội dung thông báo gửi đến người sở hữu thẻ
  • Translations: Thêm bản dịch theo mã ngôn ngữ
Ở đây bạn nhập mã ngôn ngữ tự do (ví dụ en, vi, fr), khác với mẫu thẻ nơi ngôn ngữ chọn từ danh sách cố định.
Thông báo sẽ hiển thị trên màn hình khóa của điện thoại người dùng.

Webhooks

Gọi một webhook URL khi quét thẻ để tích hợp với hệ thống bên ngoài. Hành động Webhooks
  • Webhook URL: URL endpoint nhận dữ liệu
  • Authentication: Phương thức xác thực
  • Include in Payload: Chọn dữ liệu gửi kèm
    • Pass ID
    • External ID
    • Scanner ID
    • Scanner Name
    • Project ID
    • Scanned At
    • Pass Data
Webhook giúp tích hợp XanhCard với các hệ thống bên thứ ba như CRM, POS, hoặc hệ thống quản lý sự kiện. Webhook được gọi sau khi chuỗi hành động chạy xong, nên payload phản ánh trạng thái cuối cùng của thẻ.

Scan Once

Chỉ chấp nhận quét thẻ một lần trong khoảng thời gian bạn đặt.
  • Error Message: Thông báo hiển thị khi mã đã được quét trong khoảng đó. Mặc định là QR code already scanned
  • Period: Khoảng thời gian áp dụng
Chọn Period khi thẻ được dùng lặp lại theo chu kỳ — ví dụ vé vào cổng theo ngày, hoặc suất ăn theo tuần. Chọn Forever cho vé một lần như vé sự kiện.

Điều kiện hành động (CEL Rule Expression)

Bạn có thể đặt điều kiện cho mỗi hành động bằng biểu thức CEL:
Nếu điều kiện không thỏa mãn:
  • Hành động đó sẽ không được thực hiện
  • Thông báo lỗi sẽ hiển thị trên giao diện quét
  • Các hành động tiếp theo không được thực hiện
Dùng Error Message để tùy chỉnh thông báo khi điều kiện không thỏa mãn. Ví dụ: “Thẻ này đã được sử dụng” hoặc “Thẻ này không còn hiệu lực.”

Thứ tự hành động

Các hành động được thực hiện theo thứ tự từ trên xuống dưới. Bạn có thể sắp xếp lại thứ tự bằng nút Move up và Move down.
Hành động đầu tiên trả về kết quả không hợp lệ sẽ dừng toàn bộ chuỗi. Đặt Validate Pass lên đầu để chặn thẻ không hợp lệ trước khi mọi thứ khác chạy.
Ví dụ luồng hành động cho sự kiện:
1

Validate Pass

Kiểm tra thẻ có hợp lệ không
2

Scan Once

Đảm bảo vé chưa được quét
3

Increment

Tăng số lần check-in
4

Update Data

Cập nhật trạng thái thành “checked_in”
5

Notify

Gửi thông báo chào mừng đến người dùng