Instant trigger
Watch loyalty events creates one attached Perkstar webhook for the event selected in that module. Use separate trigger modules/scenarios for different event subscriptions; do not subscribe to every event merely to discard most bundles later. The trigger outputs a bundle only after an authenticated Perkstar attestation binds its subscription, OAuth owner, signed delivery headers, timestamp, and event envelope.Customer lifecycle
The lifecycle-group event does not represent an operator-created saved segment.
Perkstar stores the first classification as a baseline without emitting an
event, preventing a newly connected scenario from replaying every customer.
Wallet, scanner, expiry, and referrals
referral.created is customer-to-customer loyalty activity. It is not a
merchant, agency, partner, or affiliate-referral event.
Loyalty activity
Tickets, gifts, and multipasses
Memberships
Engagement
Bookings
The diagnostic
webhook.test event is deliberately excluded. See the
webhook event catalogue for every required,
optional, and nullable event field.
Trigger inputs and output
Each bundle preserves the common event envelope: stable Event ID, dotted
Event type, source Created, Organisation ID, and a nested Event
data collection containing the selected event’s fields. Created is an
integer containing Unix seconds. The nested
data.occurredAt field is the same
business occurrence time in ISO 8601 text form. Neither value is the time Make
received or executed the scenario. For booking events, data.id stays inside
Event data and does not replace the outer Event ID. Trigger bundles are
snapshots; use a search only when a later step genuinely needs current customer
or enrolment state.
The module publishes a static synthetic sample so mapping fields are available
without reading a real customer’s latest event. Live webhook deliveries use
the same envelope and still complete Perkstar’s server-attested verification
before Make emits a bundle.
Guided actions
The guided modules validate common merchant workflows and are preferred over the universal API module. A focused loyalty action filters its Card selector to compatible active programmes and validates a mapped Card ID again at runtime.Loyalty identity and retries
For Add a stamp or visit, Award points, Record a purchase, Redeem loyalty balance, and Record loyalty activity (advanced), keep the source module’s order, payment, attendance, or redemption ID unchanged when Make retries an incomplete execution. Perkstar gives each module/operation its own deduplication namespace and permanently binds the canonical source reference to the first customer, card, operation, and amount. An exact retry returns the original result. Reusing that reference with different inputs produces a conflict instead of changing the first transaction. Do not replace a stable source ID withnow, a random UUID, or a
new Make execution ID on retry.
The Wallet push supports {firstName}, {lastName}, {balance}, {cardName},
{installLink}, {shareLink}, and {orgName} merge fields. Map the source
bundle’s stable record or event ID into Source event ID so repeated handling
of one event is collapsed inside Perkstar’s idempotency window.
Searches
Searches do not create or change data. If a no-match should create a customer,
use Find or create a customer by external reference with a genuine stable
external reference. If it should create a card relationship, use Find or
enrol a customer in a card. Keep a Make router/filter for business outcomes
that should stop, notify an operator, or follow a different path on no match.
Both searches cursor-page and return no more bundles than Limit. Limit
defaults to 10 and accepts 1–3,200.
Dynamic Card selectors return up to 500 active cards. Their Limit defaults to
200 and accepts 1–500. General selectors show every active card within that
limit; focused action selectors show only compatible card types. A manually
mapped ID still goes through the same tenant, active, and type checks when the
module runs.
Make an API call
Make an API call is the universal module required for a public Make app. Use it only when the operation exists in Perkstar’s public API reference and no guided module fits.- Enter a path relative to
https://dashboard.perkstar.co.uk/api/v1, for example/customers/{customerId}. Do not enter a different host or a full callback URL. - Select the supported HTTP method and supply only the documented query string and JSON body. The module supplies OAuth authentication and deliberately does not expose arbitrary request headers. Keeping authentication and transport control headers app-owned prevents a scenario from replacing the OAuth credential, host, content type, or other security-sensitive values.
- For a supported POST, map a stable value of at most 255 characters into the
optional dedicated Idempotency key field. The app sends it only as
Idempotency-Key; a random value per Make retry can duplicate a write. - The exact scopes granted to the connection still apply. Guided connections use eight baseline scopes; five additional advanced scopes are optional and require explicit selection and renewed OAuth consent. The module cannot access private dashboard routes, another Perkstar business, or an operation outside that connection’s granted scopes.
- Handle
4xx,429, and5xxresponses deliberately. Prefer a guided module for loyalty writes because it also constructs and validates the permanent source transaction identity.
Deliberately not exposed
- No module edits card configuration, rewards, tiers, coupons, or orders.
- No module bypasses Perkstar consent, plan, card-type, tenant, account-state, or rate-limit checks.
webhook.testis not a choice in Watch loyalty events.- An event bundle does not promise customer email, name, or phone unless the documented event carries it.
- Searches and dynamic selectors never read another business connected to the same Make organisation.

