AJO native Forms on an ExperienceEvent schema — how to populate required _id and timestamp without static defaults? | Community
Skip to main content
Level 2
June 26, 2026
Question

AJO native Forms on an ExperienceEvent schema — how to populate required _id and timestamp without static defaults?

  • June 26, 2026
  • 0 replies
  • 0 views

Setup

  • AJO B2C Landing Page with a native Form (appType=AJO_B2C).
  • The form's target dataset uses an XDM ExperienceEvent‑class schema (capturing email opt‑in / consent).
  • The streaming inlet behind the form is XDM pass‑through (no Data Prep mapping stage).

Goal
Capture each form submission as an ExperienceEvent. Since ExperienceEvent requires _id and timestamp, I've added both as hidden fields on the form.

Problem
The hidden _id / timestamp fields still require a value, but the form designer only lets me set a static "Default value" (optionally sourced from URL parameter / cookie / referrer). There's no native generator, so I'm stuck between two bad states:

  1. No default → the form doesn't render/submit correctly.
  2. Static default → every submission carries the same _id (events overwrite each other in the dataset/Profile) and the same timestamp (frozen, doesn't reflect the real submission time).

I also confirmed that a timestamp default in MM/DD/YYYY format fails form validation — it must be ISO‑8601 (2026-06-25T15:30:00Z).

What I've tried

  • Hardcoding timestamp as ISO‑8601 and a UUID‑style _id → works for a single test, but obviously not viable in production (collisions + stale time).
  • Mapping _id from a URL parameter (e.g. the landing‑page correlationId) → works, but correlationId appears tied to the message send, so I'm unsure it's unique per recipient.

Questions

  1. What's the recommended pattern to populate the required _id (unique per submission) and timestamp (actual submission time) for an AJO native Form on an ExperienceEvent schema?
  2. Is there any way to generate dynamic values (UUID / current date‑time) within AJO Forms field configuration, or must this be handled by Data Prep (uuid() / now()) on a raw inlet?
  3. For consent/opt‑in capture, is a record/Individual‑Profile schema (which doesn't require _id/timestamp) the recommended approach instead of ExperienceEvent?
  4. If using a URL parameter for _id, what value is guaranteed unique per recipient in an AJO email link?