Custom event registration fields losing data when migrating from outbound marketing forms to real-time journeys

We’re migrating our outbound marketing events to Real-time Journeys and experiencing significant data loss with custom registration fields. We created several custom fields in the form editor (company size, job role, product interest) that worked perfectly in outbound marketing. After migration, these fields appear in the form but submitted data isn’t being captured.

I noticed the readableEventId parameter seems to be passing correctly in the URL, but when I check the form submission response payload, the custom fields show null values even though attendees filled them out. The unmapped field configuration in the form editor shows warnings about schema compatibility.

Has anyone successfully migrated custom registration fields from outbound marketing to Real-time Journeys? The lead qualification workflow depends on these fields for scoring and routing.

Let me provide a comprehensive solution for migrating custom registration fields from outbound marketing to Real-time Journeys, addressing all the issues you’re encountering.

Unmapped Field Configuration Issue: The form editor warnings about unmapped fields are critical. Real-time Journeys requires explicit entity mapping for all custom fields. Navigate to Settings > Event Management > Registration Fields, and for each custom field, specify the target entity (Contact or Lead) and the exact attribute name. Don’t use auto-generated names - manually create matching attributes on your Contact entity first.

Form Submission Response Payload Structure: The null values in your payload indicate the form submission handler isn’t recognizing your custom fields. You need to update the event registration form configuration:

// Form configuration update required
eventForm.fieldMappings = [
  { source: "companySize", target: "new_companysize" },
  { source: "jobRole", target: "new_jobrole" }
];

ReadableEventId Parameter Passing: The readableEventId is working correctly - it’s just for event identification. The issue is downstream. Verify your form is using the correct API endpoint for Real-time Journeys (v2.0 not v1.0) as the payload structure differs significantly.

Custom Field Schema Migration: The ghost field problem occurs because outbound marketing and Real-time Journeys use different metadata tables. To properly migrate:

  1. Export your custom field definitions from the old system
  2. Delete any duplicate fields showing errors in Real-time Journeys
  3. Clear the form editor cache (Settings > Administration > System Jobs > Clear Cache)
  4. Recreate fields with identical names but new GUIDs
  5. Update your lead qualification workflow to reference the new field schema paths

Critical Configuration Step: Enable ‘Custom Field Processing’ in your event form settings (this is disabled by default in Real-time Journeys). Without this, the system treats all non-standard fields as display-only and never persists the data.

Lead Qualification Workflow Update: Your workflow is likely failing because it’s referencing the old outbound marketing field schema. Update all field references to use the new Real-time Journeys paths:

  • Old: `msdyncrm_companysize
  • New: `new_companysize After making these changes, test with a fresh registration. The payload should now show actual values instead of nulls, and your lead scoring should work correctly. If you still see issues, check the Event Registration entity directly in Advanced Find to confirm data is being written - this will help isolate whether it’s a capture problem or a workflow problem.

The duplicate field name error is a known issue when migrating from outbound marketing. You need to clear the field cache in the form editor. Go to the form properties, find the ‘Field Definitions’ section, and use the ‘Refresh Schema’ button. This should resolve the ghost field issue. Also verify that your lead qualification workflow isn’t trying to read from the old outbound marketing field schema - that could explain why data appears lost even if it’s being captured.