Custom field in loyalty program module not syncing to customer portal after layout update

I added a custom field called ‘Reward_Points_Balance’ to our Loyalty Program module in Zoho CRM 2023 to track customer reward points. The field works perfectly in the CRM interface and updates correctly when we process transactions. However, customers can’t see this field when they log into our customer portal.

I’ve confirmed the field is marked as ‘Portal Enabled’ in the field settings, and I’ve added it to the portal layout for the Loyalty Program module. Other standard fields like ‘Membership Level’ and ‘Join Date’ display fine in the portal, but this custom field just doesn’t appear at all.

Customers need to see their current points balance to redeem rewards, so this is becoming urgent. Is there a separate permission or mapping step I’m missing for custom fields in portal layouts? Any guidance on getting custom loyalty program fields to sync to the customer portal would be appreciated.

I checked field-level security and the Customer Portal profile does have View permission for the field. The portal layout shows the field is there and not hidden. Still not appearing for customers though. Could this be a caching issue on the portal side?

Another thing to check is whether the Loyalty Program module itself is properly enabled for portal access. Go to Setup > Channels > Customer Portal > Module Access and verify that Loyalty Program is in the list of portal-accessible modules. If the module isn’t fully enabled for portal, individual fields won’t show regardless of their settings. Also check if there’s a portal user role restriction that limits which modules they can view.

I’ve worked through several custom field portal sync issues and can guide you through the complete troubleshooting process. Let me address all three key areas systematically:

1. Portal Layout Configuration: First, verify the exact portal layout setup. Go to Setup > Channels > Customer Portal > Portal Configuration and select your portal. Then navigate to Modules > Loyalty Program > Layout. You should see a drag-and-drop layout editor. Make sure:

  • The ‘Reward_Points_Balance’ field is actually in the visible section (not in the ‘Hidden Fields’ area at the bottom)
  • The field isn’t inside a collapsed section that requires customers to expand it
  • The field order is correct (sometimes fields at the very bottom don’t render if there’s a layout height restriction)
  • Click ‘Save’ and then ‘Publish Layout’ - the publish step is crucial and often missed

2. Field Mapping Between CRM and Portal: Custom fields sometimes need explicit API name mapping for portal sync. Go to Setup > Developer Space > APIs > API Names and find the Loyalty Program module. Look up the API name for your custom field (probably something like ‘Reward_Points_Balance__c’). Then go to Setup > Channels > Customer Portal > Field Mapping and verify there’s an entry mapping this CRM field to the portal field. If the mapping is missing, add it manually:

  • CRM Field: Reward_Points_Balance
  • Portal Field: Reward_Points_Balance
  • Sync Direction: CRM to Portal (one-way)
  • Update Frequency: Real-time

3. Custom Field Permissions - Complete Checklist: Field-level security has multiple layers for portal access:

a) Field-Level Security Matrix: Setup > Security Control > Field Level Security > Loyalty Program module. Find ‘Reward_Points_Balance’ and ensure ‘Customer Portal’ profile has View checked.

b) Portal User Profile Permissions: Setup > Security Control > Profiles > Customer Portal Profile. Under ‘Module Permissions’, verify Loyalty Program has ‘Read’ access and under ‘Field Permissions’, check that custom fields are not restricted.

c) Record-Level Sharing: If you have record-level sharing rules, customers might not have access to their own Loyalty Program records. Go to Setup > Security Control > Sharing Settings > Loyalty Program and ensure the sharing rule allows customers to view their own records (usually based on Contact ownership).

d) Portal Enabled Flag: Setup > Customization > Modules > Loyalty Program > Fields. Click on ‘Reward_Points_Balance’ and in the field properties, verify these settings:

  • ‘Show in Portal’ checkbox is enabled
  • ‘Portal User Can Edit’ is disabled (unless you want them to edit)
  • ‘Display Type’ is set appropriately (not hidden or system field)

Testing and Verification: After making these changes:

  1. Clear the portal cache: Setup > Channels > Customer Portal > Settings > Clear Cache
  2. Log out and log back in as a test customer (or use incognito mode)
  3. Check the browser console (F12) for any JavaScript errors that might block field rendering
  4. Verify at least one customer record has a non-zero value in Reward_Points_Balance
  5. Test with different customer portal users to rule out user-specific permission issues

The most common causes I’ve seen are: (1) forgetting to click ‘Publish Layout’ after adding the field, (2) missing field mapping entry for custom fields, and (3) record-level sharing preventing customers from seeing their own Loyalty Program records. Work through these three areas and the field should start appearing in the portal. If it still doesn’t show after all this, check if there’s a custom portal theme or CSS that might be hiding fields with certain naming patterns.