Skip to main content
Level 2
August 11, 2026
Question

Triggered Journey through Ajo Form submission.

  • August 11, 2026
  • 3 replies
  • 101 views

Hi everyone,

I'm trying to build an Event-Based Journey in Adobe Journey Optimizer where the journey should start immediately after a customer submits an AJO Landing Page Form.

My setup

  • Created an XDM ExperienceEvent schema.
  • Created an Experience Event Dataset based on this schema.
  • Created a Streaming Connection.
  • Created a Form Preset and selected the Experience Event Dataset.
  • Created an AJO Landing Page using this Form Preset.
  • Form submission reaches the generated HTTP API Source/Dataflow successfully.

Problem

The Dataflow runs successfully, but every submission fails during dataset ingestion.

Error:

 
DCVS-1106-400

The message cannot be validated because a required property is missing:

required key [_id] not found

Observations

  • Form submission reaches the HTTP API Source.
  • Source Flow is created automatically.
  • Records are received but none are ingested.
  • Experience Event schema contains the standard required fields including:
    • _id
    • timestamp
  • The generated schema sample JSON includes _id.
  • Mapping also shows _id -> _id.

However, the ingestion still fails with:

 
required key [_id] not found

Thanks

3 replies

Pulkit_Jain_
Adobe Employee
Adobe Employee
August 11, 2026

@MandeepSi9 We have had a similar requirement from another customer: the actual runtime payload sent by the AJO Landing Page form does not contain _id, even though the schema and mapping show it.

For XDM ExperienceEvent datasets, _id and timestamp are mandatory but AJO Forms might not reliably auto-generate _id for ExperienceEvent ingestion.

Quick test: Add a hidden form field mapped to _id and populate it before submit using JS, for example: crypto.randomUUID()
Example valid payload:

{
"_id": "uuid-value",
"timestamp": "2026-08-11T10:45:00Z"
}

Once _id is present in the actual submitted payload, ingestion should succeed.

Level 2
August 13, 2026

Hi ​@Pulkit_Jain_ 
I tried multiple approaches to populate the _id and timestamp fields in the AJO Landing Page form. We first created both fields as hidden fields and verified their DOM selectors. We then tried populating them using JavaScript with crypto.randomUUID() for _id and new Date().toISOString() for timestamp. We also implemented Adobe’s lpRuntimeReady and addBeforeSubmitHook() approach and tested the custom JavaScript execution step by step.

The custom JavaScript is executing successfully, and the AJO form runtime is loading, but window.lpRuntime remains undefined and the lpRuntimeReady event is not being triggered as expected. Because of this, the before-submit hook is not executing, and we are currently unable to populate _id and timestamp in the actual form submission payload. We also verified that the AJO runtime JavaScript (ajo-forms-runtime.js) is loaded on the page.



Thanks
 

Level 2
August 19, 2026

Hi ​@Pulkit_Jain_ 

Can you please give me any suggestion regarding this problem?

Thanks