Custom Fields
Custom Fields let you extend members, campaigns, and rewards with your own typed, validated data — no development required.
Custom Fields let you extend Open Loyalty objects with your own, typed and validated data — without any development work. You define a field once in the Admin Panel (its name, type, validation rules, and whether it's required), and from that moment it appears on the relevant forms and is available through the API, imports, and exports.
🧩 What makes Custom Fields different
Typed, not just text — a number stays a number, a date stays a date, and a select field only accepts values from a Collection you control.
Validated on every write — from the Admin Panel, the API, or an import.
Available across the platform — Members, every campaign type (Direct, Referral, Automation, Leaderboards, Challenges), and every reward type including Fortune Wheels each get their own schema.
Repeatable data on members — Subgroups let a member hold several rows of the same shape, e.g. a weekly score history.
Segmentable — build member segments on custom field values (contains any/all, ranges, thresholds).
Fully wired into your data flow — values can be set from the Admin Panel, the API, member import, or a dedicated JSON import, and they come back in S3 exports, in campaign/reward webhooks, and in the audit log.
Access-controlled — a separate permission governs who can change the schema, while entering values on entity forms stays available to regular operators.
Custom Fields are released behind their own feature flag for each area. If you don't see Custom Fields in your side menu, it isn't enabled for your instance yet.
Where Custom Fields are available
Members
one schema shared across all members
✅ Yes
Campaigns — Direct, Referral, Automation, Leaderboards, Challenges
one separate schema per campaign type
❌ No
Rewards (all reward types) and Fortune Wheels
one separate schema per reward type
❌ No
🏗️ Structure: groups, fields, subgroups
Group — a named container for fields, e.g.
driving_insights,insurance. Every field belongs to a group.Field — a single typed value inside a group.
Subgroup — a repeatable set of fields (an array of objects), available for Members only. Use it when a member needs several rows of the same structure, e.g.
Owned Vehicles, each row holding its own Plate No, VIN and Make.
Subgroups can't be nested, and they only accept simple field types — a subgroup can't contain another subgroup or a select/multi-select field.
Available field types
String
Free text, with optional validation (max length, regular expression)
Number
Numeric value, with optional min/max
Boolean
True / false
Date
A calendar date
Single select
One value picked from a Collection
Multi select
Several values picked from a Collection
Subgroup
Repeatable rows of simple fields — Members only
In this section
Last updated
Was this helpful?

