Обновление Marketo Hidden Field

Как мне обновить значение скрытого поля Marketo?

Что я пробовал

form.setValues({"Results_PDF_URL__c":"assignedCampaignID"});

form.vals({"Results_PDF_URL__c":"assignedCampaignID"});

Оба вышеуказанных варианта не работают.

Поэтому я проверил идентификатор, если я использую правильный идентификатор, когда я попытался получить идентификатор, он остался пустым (ничего) для скрытых полей маркета.

Хотя я могу получить идентификатор для входного текста полей Marketo (например, FirstName, Comapany...) - я не могу получить идентификатор каких-либо скрытых полей Marketo.

Любая идея, что я должен установить, чтобы заставить это работать?

1 ответ

Любой из них, если он используется в нужной области, должен работать. Объект формы не является глобальным.

MktoForms2.whenReady( function (form) { 
    form.vals({"Results_PDF_URL__c":"assignedCampaignID"});
});

Сначала вы должны убедиться, что API MktoForms2 доступен, чтобы не было ошибки.

if( typeof MktoForms2 != "undefined" ) {
    MktoForms2.whenReady( function (form) { 
        form.vals({"Results_PDF_URL__c":"assignedCampaignID"});
    });
}

В Marketo вы можете получить имена полей в Admin> Управление полями> Экспорт имен полей. (Требуется доступ администратора Marketo.) Это загрузит CSV всех имен полей. Вы захотите использовать имена полей, показанные в столбце REST API.

Для быстрой проверки я обычно просто добавляю нужные поля в форму и проверяю их, чтобы получить правильные идентификаторы полей.

Также вы можете использовать .addHiddenFields() вместо .vals() чтобы убедиться, что поля а) в форме б) как скрытые поля и в) имеют правильные значения, которые вы хотите передать в Marketo. Если поля уже существуют, эта функция обнаружит поля и установит только значения. Очень кстати.

if( typeof MktoForms2 != "undefined" ) {
    MktoForms2.whenReady( function (form) { 
        form.addHiddenFields({"Results_PDF_URL__c":"assignedCampaignID"});
    });
}

Наконец, вы можете добавить небольшую задержку, чтобы у библиотеки форм Marketo было достаточно времени для загрузки и чтобы форма была доступна на странице при ее поиске. Маловероятно, что кто-то отправит форму в течение первых двух секунд на странице, поэтому, вероятно, можно задержать на две секунды перед добавлением поля / значения в форму.

setTimeout( function(){
    if( typeof MktoForms2 != "undefined" ) {
        MktoForms2.whenReady( function (form) { 
            form.addHiddenFields({"Results_PDF_URL__c":"assignedCampaignID"});
        });
    }
}, 2000 ); // two-second delay

Ресурсы:

  1. Справочник по API форм Marketo
  2. Маркето формы API Примеры
Другие вопросы по тегам