SOLVED

Re: Field not showing in Form

Go to solution
Harish_Gupta6
Level 8

Hi,

I have a Boolean field in the  Field management but when I am searching the same field in Form, I am not getting the same. But the same field is visible in Smart list, Smart campaign but not in Form.

What could be the possible reason?

Thanks

Harish Gupta
1 ACCEPTED SOLUTION
Grégoire_Miche2
Level 10

HI Harish,

I would bet these are fields from the company object and not from the person one. Therefore, they are read-only in Marketo.

-Greg

View solution in original post

20 REPLIES 20
Grégoire_Miche2
Level 10

Hi Harish,

Refresh your form edit screen. I have observed that it may take some time for the new fields to get into the form editor.

Also, when you search, start with the first letter. For instance, if you want to search "lead status" and you type in "status", it will not find it.

-Greg

Harish_Gupta6
Level 8

Hi Greg,

The field is in system from more than 6 month but still its not showing in form. The field has data for leads also. Its is searchable when I doing it in Smart list, Smart campaign but still not showing in Form.

The field is of boolean type with name as "IS XYZ"

Thanks

Harish Gupta
Grégoire_Miche2
Level 10

Hi again Harish

Would the field have the same same as other CRM fields, such a s "is won" or "is closed" ?

I would raise a support ticket.

-Greg

Harish_Gupta6
Level 8

@Grégoire Michel

Hi Greg,

Apology for late reply. The is Marketo field and not synced with CRM. Here are the fields name:

Is Partner

Is Customer

Harish Gupta
Steven_Vanderb3
Marketo Employee

Those fields are not available for use in forms.

Harish_Gupta6
Level 8

Hi Steven,

Do you know the reason? Why those fields are not showing in form to use?

Thanks

Harish Gupta
Grégoire_Miche2
Level 10

HI Harish,

I would bet these are fields from the company object and not from the person one. Therefore, they are read-only in Marketo.

-Greg

Bert_Winterfeld
Level 2

Hi Greg,

I would like to describe my problem as well, since it is similar.

I created a new field in the field management, called "Bert Data Layer". See screenshot:Fieldmanagement.png

It is in the folder "Info" where fields are stored, that are not read-only and can be filled in forms.

I want to use this field in a form called "Bert Testing Form" and the field itself says it's in use in that form.

When I edit the form, the field is not there and I can not choose it as a new field. See next screenshot: Formfield-Select.png

I want to add this field as a hidden one, that carries a data layer for the Google Tag Manager, so it must not be filled out by the people, but contain the data layer as default value.

Any ideas?

Thanks

Bert

SanfordWhiteman
Level 10 - Community Moderator

Without showing us the other fields on your form in the screenshot, it's impossible to tell. You might've relabeled the field and are missing it in your check. Or the form descriptor is corrupt.

Bert_Winterfeld
Level 2

Those are all the fields I use in this form. "bert data layer" still not in the dropdown list for new fields. bert-testing-form.png

SanfordWhiteman
Level 10 - Community Moderator

I only see the labels in that view, not the actual fields.

In any case, create a new form and see what happens.

Bert_Winterfeld
Level 2

Those are the actual fields:

First Name

Last Name

Company Name

Email Adress

Phone Number

Country

State

Postal Code

Data Collection and Consent

Email Collection and Consent

Person Source

Fax1

I created a new form and the field "bert data layer" appeared. So I added the field, approved the form and tested it without success. Went back into the form and the field was gone again and is now not available, just like in the other form.

Really strange, I have no clue.

SanfordWhiteman
Level 10 - Community Moderator

Please link to a page with the form on it so I can inspect the descriptor itself.

Bert_Winterfeld
Level 2

http://pages.searchmetrics.com/Ranking-Factor-Checklist.html

Maybe the stuff, I am trying to do is too odd.

The field "bert data layer" should contain the following default value:

<div>

<script>// <![CDATA[

(function marketoFormListener (MktoForms2) {

    "use strict";

    /**

     * helper function to push invalid Marketo field errors to GTM

     * @returns {undefined}

     */

    function waitForError () {

        var element, input, mktoErrorMsg;

        // check for error message

        element = document.querySelector(".mktoErrorMsg");

        if (element) {

            mktoErrorMsg = element.textContent || element.innerText;

            // look for invalid input

            input = document.querySelector("input.mktoInvalid, .mktoInvalid input");

            window.dataLayer.push({

                "event": "mkto.form.error",

                "mkto.form.error.message": mktoErrorMsg,

                "gtm.element": input,

                "gtm.elementClasses": input && input.className || "",

                "gtm.elementId": input && input.id || "",

                "gtm.elementName": input && input.name || "",

                "gtm.elementTarget": input && input.target || ""

            });

        }

    }

    if (MktoForms2) {

        MktoForms2.whenReady(function handleReady (form) {

            window.dataLayer.push({

                "event": "mkto.form.ready",

                "mkto.form.id": form.getId(),

                "mkto.form.submittable": form.submittable(),

                "mkto.form.allFieldsFilled": form.allFieldsFilled(),

                "mkto.form.values": form.getValues()

            });

            form.onValidate(function handleValidate (valid) {

                window.dataLayer.push({

                    "event": "mkto.form.validate",

                    "mkto.form.valid": valid

                });

                // wait for the error message to appear

                setTimeout(waitForError, 0);

            });

            form.onSubmit(function handleSubmit (thisForm) {

                var button;

                button = thisForm.getFormElem().find("button[type=\"submit\"]");

                window.dataLayer.push({

                    "event": "mkto.form.submit",

                    "mkto.form.id": thisForm.getId(),

                    "mkto.form.submittable": thisForm.submittable(),

                    "mkto.form.allFieldsFilled": thisForm.allFieldsFilled(),

                    "mkto.form.values": thisForm.getValues(),

                    "mkto.form.button": {

                        "classes": button.attr("class"),

                        "text": button.text(),

                        "type": "submit"

                    }

                });

            });

            form.onSuccess(function handleSuccess (values, followUpUrl) {

                window.dataLayer.push({

                    "event": "mkto.form.success",

                    "mkto.form.values": values,

                    "mkto.form.followUpUrl": followUpUrl

                });

            });

        });

        MktoForms2.whenRendered(function handleRendered (form) {

            window.dataLayer.push({

                "event": "mkto.form.rendered",

                "mkto.form.id": form.getId(),

                "mkto.form.submittable": form.submittable(),

                "mkto.form.allFieldsFilled": form.allFieldsFilled(),

                "mkto.form.values": form.getValues()

            });

        });

    }

}(window.MktoForms2));

// ]]></script>

</div>

SanfordWhiteman
Level 10 - Community Moderator

Also, when you come back to the thread, please describe your business goals rather than a suggested + non-working technical implementation.

We have an X/Y problem here, where you're assuming you should be stuffing HTML w/script tags inside a hidden form field and wondering why it doesn't work. But you should be asking how to accomplish a higher-level goal in the first place.

Bert_Winterfeld
Level 2

Thanks for the link to the X/Y problem 🙂

I fully understand why this discussion could be annoying.

So my goal is: Tracking and Reporting Form Submissions of Marketo forms in Google Analytics.

I use the Google Tag Manager to send data from WordPress and Marketo pages to Analytics.

What I need: A solution that allows me to implement the data layer, mentioned above, into a Marketo form, so the various data from the form can be fetched by the Tag Manager and delivered to Analytics.

I already succeeded with implementing the data layer as a HTML element into the landingpage where the form is, BUT this way I would always have to implement 2 things (form and data layer) separately.

The hint that this whole data layer markup won't fit into a string field is helpful. So what kind of field could carry this markup?

Thank you very much

SanfordWhiteman
Level 10 - Community Moderator

So what kind of field could carry this markup?

A Rich Text field, of course. This exists only on the form, there's no need for a lead field.

What you must ensure is that the code in your RT field only attaches one event listener. You'll find that the code as a whole runs multiple times, because the <script> tag gets injected into the DOM multiple times using this method (it's a bug, never to be fixed, so you have to work around it).  Store a global variable or DOM attribute to check if the listener has already been attached and return early.

Bert_Winterfeld
Level 2

Thanks for your help 🙂

I tested the RT field successfully and it even worked with all event listeners being attached at once.

SanfordWhiteman
Level 10 - Community Moderator

That value, if you mean that entire block of markup, won't fit in a String field.

If that isn't what you mean, please be more precise.

Harish_Gupta6
Level 8

Thanks Greg. This information is really helpful.

Harish Gupta