Marketo 隐藏字段更新

Marketo Hidden Field update

如何更新 Marketo 隐藏字段的值?

我试过的

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

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

以上两个选项都不行。

所以我检查了 id,如果我使用的是正确的 id,当我试图获取 id 时,对于隐藏的 marketo 字段返回空白(无)。

虽然我可以获得输入文本 Marketo 字段的 ID(例如 FirstName、Company..)- 我无法获得任何隐藏的 Marketo 字段的 ID。

知道我应该设置什么才能让它工作吗?

只要在正确的范围内使用,其中任何一个都应该有效。表单对象不是全局的。

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

您首先要确保 MktoForms2 API 可用,以免出现错误。

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

在 Marketo 中,您可以在“管理”>“字段管理”>“导出字段名称”下获取字段名称。 (需要 Marketo 管理员访问权限。)这将下载所有字段名称的 CSV。您需要使用 REST API 列中显示的字段名称。

为了快速检查,我通常只是将我想要的字段添加到表单中并检查它们以获得正确的字段 ID。

此外,您可以使用 .addHiddenFields() 而不是 .vals() 来确保字段 a) 在表单上 b) 作为隐藏字段 c) 具有您要传递的正确值进入市场。如果字段已经存在,此函数将检测字段并仅设置值。非常好用。

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

最后,您可能想要添加一个短暂的延迟,以确保 Marketo 表单库有足够的时间加载,并且当您查找表单时,该表单将在页面上可用。不太可能有人会在页面的前两秒内提交表单,因此在将 field/value 添加到表单之前延迟两秒钟可能没问题。

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

资源:

  1. Marketo forms API Reference
  2. Marketo forms API Examples