Let me provide a comprehensive solution addressing dynamic schema extension, API metadata refresh, and field visibility configuration.
Dynamic Schema Extension and API Visibility:
When you add custom fields to the loyalty member schema, three separate configurations must align for API visibility:
- Field-Level Visibility: Each custom field needs “API Accessible” enabled (which you’ve confirmed)
- Field Group Assignment: Custom fields must be in an API-exposed field group, not UI-only groups
- API Metadata Cache: The API gateway must have the updated schema definition
Verify your field group configuration:
- Navigate to Admin Console → Loyalty Programs → Schema Management
- Find your custom fields: tier_preference, engagement_score, preferred_rewards_category
- Check the “Field Group” column - it should show “Custom Attributes” or “Extended Profile”, not “UI Display Only”
- If they’re in the wrong group, reassign them to an API-compatible field group
API Metadata Refresh Process:
The API gateway caches schema metadata for performance. After schema changes, trigger a manual refresh:
POST /api/v1/admin/loyalty-programs/schema/refresh
Authorization: Bearer {admin_token}
Content-Type: application/json
{"force_reload": true}
The refresh typically completes within 2-3 minutes. You can verify completion by checking the schema version:
GET /api/v1/loyalty-programs/schema/version
The version number should increment after the refresh.
Field Visibility Settings and API Query Parameters:
Once the metadata is refreshed, use the correct query parameter to request custom fields. Adobe Experience Cloud uses fieldset rather than fields for extended attributes:
GET /api/loyalty/members/12345?fieldset=extended
Available fieldsets:
standard (default) - Returns only built-in fields
extended - Includes all API-accessible custom fields
complete - Returns everything including metadata
For selective field retrieval, use the fields parameter with explicit custom field names:
GET /api/loyalty/members/12345?fields=id,name,points,tier_preference,engagement_score
Verification Steps:
- Confirm field group assignment is correct
- Trigger the metadata refresh via admin API
- Wait 2-3 minutes for propagation
- Test with the extended fieldset parameter
- Verify custom fields appear in response
Common Pitfalls to Avoid:
-
Underscore vs Camel Case: API field names might use camelCase (tierPreference) even if you defined them with underscores (tier_preference). Check the schema documentation for the exact field names.
-
Data Type Mismatches: If custom fields have null values for all queried members, they might be omitted from the response by default. Use ?includeNull=true to force their inclusion.
-
Permission Scopes: While you have loyalty_programs:read, custom fields might require loyalty_programs:extended_read. Update your OAuth client scope in Developer Console:
{
"scopes": [
"loyalty_programs:read",
"loyalty_programs:extended_read",
"loyalty_programs:write"
]
}
Testing Custom Field Access:
After implementing the fixes, validate with this test sequence:
# 1. Get schema to verify custom fields are registered
GET /api/v1/loyalty-programs/schema
# 2. Query member with extended fieldset
GET /api/loyalty/members/12345?fieldset=extended
# 3. Verify response includes custom fields
{
"id": 12345,
"name": "John Doe",
"points": 1500,
"tier": "Gold",
"tierPreference": "Platinum",
"engagementScore": 87.5,
"preferredRewardsCategory": "Travel"
}
If fields still don’t appear after the metadata refresh and correct fieldset parameter, check the API response headers for schema-version. If it hasn’t incremented, the refresh didn’t complete successfully and you may need to contact Adobe Support to manually clear the metadata cache.
For your personalization engine integration, I recommend caching the schema definition locally and refreshing it daily to avoid repeated metadata lookups. This also allows you to validate that custom fields exist before querying member data, preventing null reference errors in your personalization logic.
This draft is based on general Adobe Experience Cloud knowledge. It has not been verified against your specific version and environment. Practitioners: verify the steps and share your experience below.