Wakato Pass
Space MCP tools in the Wakato Pass scope (pass). Reach these with a wks_live_ key over space-mcp or space-api.
Tools in the pass scope, callable over space-mcp (tools/call) or space-api (REST) with a wks_live_* key that grants pass.
adjust_pass_balance
Scope: pass:write
Add or deduct points/stamps/value on a customer's card. Target by install_id, or by template_id + contact_email/contact_id. delta may be negative (never below zero). Lands in the pass ledger like every other balance change.
| Parameter | Type | Required | Description |
|---|---|---|---|
install_id | string | ||
template_id | string | ||
contact_email | string | ||
contact_id | string | ||
delta | number | yes | |
reason | string |
create_pass_template
Scope: pass:write
Create a Wakato Pass template customers can add to their account via the returned /card/<code> link. pass_type: loyalty (points balance), punch (stamps toward one reward), membership (tier + validity), gift_card (stored value), appointment (shows the contact's next booking). Earn rules: earn_per_scan awards on staff scan; for anything else (e.g. +10 points per booking) create an automation with the adjust_pass_balance action. Starts as draft — set status:'active' (or update later) to make it installable.
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | yes | e.g. "Bella's Coffee Loyalty". |
pass_type | loyalty | punch | membership | gift_card | appointment | yes | |
description | string | ||
config | object | Per type: loyalty {points_label}; punch {stamps_required}; membership {tiers[], default_tier, validity_days}; gift_card {currency}; appointment {booking_page_id}. Any type may also set {show_next_booking: true} to overlay the holder's next booking on the card, plus {booking_page_id} to scope it (and power the Book button). | |
rewards | object[] | [{title, cost, method}] — method 'staff_scan' (redeemed at the counter) or 'self_code' (customer self-redeems). | |
brand | object | { bg_color, text_color, logo_url } for the card face. | |
earn_per_scan | number | Points/stamps per staff scan (default 1 for loyalty/punch, 0 otherwise). | |
scan_cooldown_minutes | number | Minimum minutes between scans of the same card (default 1). | |
allow_new_contacts | boolean | false = invite-only (installer must already be a contact). | |
status | draft | active |
get_pass_template
Scope: pass:read
Get one pass template with its config, rewards, active holder count, and the public install link (/card/<code>) customers use to add the card.
| Parameter | Type | Required | Description |
|---|---|---|---|
template_id | string | yes |
list_pass_holders
Scope: pass:read
List customers holding cards in this space (joined with their contact name/email), with balance, tier, and validity. Optional template_id filter.
| Parameter | Type | Required | Description |
|---|---|---|---|
template_id | string | ||
limit | number | ||
offset | number |
list_pass_templates
Scope: pass:read
List the space's Wakato Pass templates (loyalty cards, punch cards, memberships, gift cards, appointment cards customers add to their account). Call before create_pass_template to reuse an existing one.
| Parameter | Type | Required | Description |
|---|---|---|---|
status | draft | active | archived | ||
limit | number |
update_pass_template
Scope: pass:write
Edit a pass template: rules (earn_per_scan, scan_cooldown_minutes, config), rewards (replaces the whole array), brand, description, or status (draft/active/archived — archived cards stop scanning).
| Parameter | Type | Required | Description |
|---|---|---|---|
template_id | string | yes | |
name | string | ||
description | string | ||
config | object | ||
rewards | object[] | ||
brand | object | ||
earn_per_scan | number | ||
scan_cooldown_minutes | number | ||
allow_new_contacts | boolean | ||
status | draft | active | archived |