Skip to main content
The published review candidate contains 15 visible modules: one instant trigger with 29 event choices, 11 guided actions, two searches, and one universal API module. Dynamic selectors load current active cards and other choices from the selected Perkstar OAuth connection.
The app is available by invite link while Make reviews its Marketplace listing. Event payloads can gain new optional fields; map only the fields a scenario needs and handle absent or null values.

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 with now, 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, and 5xx responses deliberately. Prefer a guided module for loyalty writes because it also constructs and validates the permanent source transaction identity.
A universal API module is not a security or product-boundary escape hatch. Do not use it to recreate an unsupported card editor, bulk-marketing sender, or undocumented dashboard workflow.

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.test is 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.