Skip to main content
Level 2
June 30, 2026
Solved

Form Based Activities not rendering with "Apply Propositions"

  • June 30, 2026
  • 7 replies
  • 214 views

A form based activity was created which was available in the network response call but not on my website  when I was using apply propositions . My apply propositions was implemented in the following manner : -
 


To make that available on the website , I have to explicitly add the following custom code

var prop = event.propositions.find(
  p => p.scope === "appinstall-popup-mbox"
);
document.querySelector(
  "#abc-membership > section > div > div"
).innerHTML =
  prop.items[0].data. Content;

 



Is there any optimal way to do it or the reason why a seperate custom code is required.

Best answer by Gokul_Agiwal

Hi ​@AvaniJa  

If I read your question again then you’re looking or asking for  the reason why a separate custom code is required in a form based activities. 

 

As per my understanding - Form-Based activities require explicit rendering logic when using custom scopes ( in your case it’s appinstall-popup-mbox) . so the behavior you're seeing is expected. 
 

The fact that the proposition is visible in the Edge Network response means Adobe Target has successfully qualified the visitor and returned the personalized content. The missing piece is the rendering step. 

With Web SDK, there is an important distinction between:

  1. Requesting propositions (sendEvent)
  2. Rendering propositions (applyPropositions or custom rendering) 

For propositions returned through a custom scope/mbox (for example, appinstall-popup-mbox), Web SDK does not automatically know where in the DOM the content should be placed. Therefore, even though the proposition is returned successfully, you must either:

  • Map the content to a specific DOM element yourself (as you're doing now), or
  • Build custom rendering logic that processes the returned proposition and injects it into the appropriate component.

So the custom code is not a workaround—it's typically required for Form-Based activities delivered through custom scopes.

Let us know if you still have further questions. 

Hope this helps 

Thank you 

7 replies

Gokul_Agiwal
Community Advisor
Community Advisor
July 1, 2026

Hi ​@AvaniJa 

A key points from the documentation that explain your behavior:

So in your case, the proposition was successfully returned in the network response, but because it was a form-based activity tied to a custom scope (appinstall-popup-mbox), Web SDK did not know where to place the content on the page.

Your custom code effectively served as the renderer. 

You may be able to avoid custom DOM code by supplying proposition metadata when calling applyPropositions(), for example: 

alloy("applyPropositions", {
propositions: event.propositions,
metadata: {
"appinstall-popup-mbox": {
selector: "#abc-membership > section > div > div",
actionType: "setHtml"
}
}
});

Hope this helps. 

Thank you.

Thanks, Gokul
AvaniJaAuthor
Level 2
July 6, 2026

Hi ​@Gokul_Agiwal ,

The selector and action type was already specified in the apply propositions logic, , so it should work ideally , without custom code .


Let me know if I missed something.
 

 

Level 4
July 21, 2026

Hi ​@AvaniJa,

 

The following configuration will sort out the custom code necessary:

Could you check with the alloy instance.

Check whether the location name from Target UI and Scope name are same.

Check whether the selector is present on the webpage.

Check with Append HTML action type.

AvaniJaAuthor
Level 2
July 22, 2026

Hi ​@PrasanthV ,

Location name from target UI and scope name are same , the selector is present on the web page and we have tried using append HTML also , nothing works .

 

Level 4
July 22, 2026

Hi ​@AvaniJa ,


Have you tried the configuration as shown in the attached image?