Marketo隐藏字段更新

时间:2016-11-22 06:32:34

标签: javascript forms marketo

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

我尝试了什么

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

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

以上两个选项都不起作用。

所以我检查了id,如果我使用了正确的id,当我试图获取id时,它隐藏的marketo字段为空(无)。

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

知道我应该设置什么才能让它发挥作用?

1 个答案:

答案 0 :(得分:3)

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

[IO.File]::WriteAllText()

您首先要确保MktoForms2 API可用,这样您才不会收到错误。

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

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

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

此外,您可以使用if( typeof MktoForms2 != "undefined" ) { MktoForms2.whenReady( function (form) { form.vals({"Results_PDF_URL__c":"assignedCampaignID"}); }); } 代替.addHiddenFields()来确保字段b)作为隐藏字段的形式b)和c)具有您想要传递到Marketo的正确值。如果字段已存在,则此函数将检测字段并仅设置值。非常方便。

.vals()

最后,您可能希望添加一个简短的延迟,以确保Marketo表单库有足够的时间加载,并且在您查找时,该表单将在页面上可用。某人不可能在页面的前两秒内提交表单,因此在将字段/值添加到表单之前可能会延迟两秒钟。

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

资源:

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