Skip navigation

Do It

4 Posts authored by: ChrisMapili

PurposePrevents bots from submitting Forms (fewer junk submissions).


BenefitIt will be seamless to the User Experience (submitters will not have to fill out any extra fields).


CaveatThis only prevents bots that fill out every field in a Form.



1)  Include a text field in your Form (hide it using css instead of through the native form property - use "display:none").

2)  Name the field something normally seen in forms that is not required for your current form (example:  "Address 3").

3)  Form Bots fill out every field they see in the code (if "Address 3" is submitted with a value then you know it's a bot).

4)  Add conditions to each Processing Step in your Eloqua Form:

-- If the field is filled in, disregard the submission.  If the field is blank, continue with the Processing Step flow.


-- if the field is filled in, disregard the submission.  If the field is blank, redirect to a second Eloqua Form where you run your standard Processing Steps.


Additional Tweak:  To prevent Human submitters from clicking submit repeatedly, insert javascript that disables the Submit Button after clicking it.


Other Options:

1)  Dynamic Human Proof (ex. Captcha)

-  Difficult to set up

-  Very accurately prevents bots

-  Prevents actual form submitters from clicking submit multiple times to cause multiple submissions

-  User Experience is affected

2)  Static Human Proof (ex. Chocolate Factory)

-  Simple to set up

-  Accurately prevents bots

-  Prevents actual form submitters from clicking submit multiple times to cause multiple submissions

-  User Experience is affected

This year at Eloqua Experience, each of the Support team-members who did not attend shared a brief video message.  The EE2012 Support booth displayed this video and we've been asked many times to share it again.


Check it out here:  EE2012 - Support Department (via Youtube)



+ Visitor Web Data Lookup (from Cookie)

+ Contact/Prospect/Company/Datacard Web Data Lookup (from Email Address)

+ Form Checkbox Prepopulation

+ Standard Text Input Prepopulation


The link below points to a Test Form.  Filling out this form and submitting will update your Contact Record.  A cookie placed in your browser will store a unique identifier that will be used the next time you visit this form.  The scripts on this page will pull your Email Address from your Visitor Record and trigger another Lookup. This next Lookup will use your Email Address to pull the values currently stored on your Eloqua Contact Record and Populate the Form Fields.  Checkboxes will also automatically be populated when the value returned is either true, 1, on, yes, y, or checked (this can be modified in the code).


The functional example can be found here: *



* The Custom HTML and Javascript in the link above are a Functional Example/Demonstration Only and are not officially supported by Eloqua.

Eloqua is not responsible for troubleshooting issues with this code.


Eloqua has a Decision Rule in Program Builder that automatically splits members flowing through it based on a predefined percentage. It's called Percentage Based Routing and is commonly used in A/B Split Testing. This post presents an alternative to this decision rule that ensures members' routes are randomly split.



If the same Program Members (Group A) flow into the Percentage Based Routing rule multiple times, they are consistently split into the same two groups (Group B and Group C). This is useful for some programs including some A/B Split Testing programs.


The new method explained here will divde members (of Group A) randomly each time they flow through (to Group X1/Y1, then Group X2/Y2, etc.) If you use a common "Testing Group", this is will ensure that you don't end up with biased results caused by the undetermined factors within Groups B and C.



  • Contact Field:
    • Create a new Contact Field called "Randomized"
    • Set it as a Numeric field (leave the other default settings alone)


  • Cloud Connector:
    • This will be used to populate "Randomized" with a random number between 0 and 1.
    • Use Eloqua's "Math Function (Contact)" Cloud Connector.
    • Utilize the RND() function. It will generate a random number between 0 and 1.
    • Map this function to the "Randomized" field.


  • Program:
    • Create a standard A/B Split Testing Program.
    • Replace the Percentage Based Routing rule with the following:
      • Cloud Connector Step: Execute the RND function to populate the "Randomized" field.
      • Decision Rule: "Contact Field Comparison" - Check if the value of "Randomized" is "less than 0.5".
        • Yes: Route to Group X
        • No: Route to Group Y


Once you've set this up, you can use it just like any other A/B Split Program.

Filter Blog

By date: By tag: