Marketo REST API 添加到潜在客户数据库。结果成功,但看不到潜在客户,也没有确认电子邮件

Marketo REST API to add to leads db. Successful result, but cannot see lead and no confirmation email

我正在使用 Marketo REST API 添加销售线索。一切似乎都工作正常,但我找不到线索的最终位置。表单已设置为向提交者发送一封确认电子邮件,但尚未发送。

首先,我使用 /rest/asset/v1/form/FORMID.json 端点获取表单数据。接下来,我使用 /rest/asset/v1/form/FORMID/fields.json 端点获取所有表单字段。然后我为所有字段呈现自定义 HTML 并将其显示在网站的前端。表单提交是使用 AJAX 完成的,我将数据从 PHP 发送到 Marketo REST API。这一切都很好。

Marketo returns 使用已提交的电子邮件地址成功 updated 响应:

stdClass Object
(
    [requestId] => f015#155f21eba78
    [result] => Array
        (
            [0] => stdClass Object
                (
                    [id] => 1035656
                    [status] => updated
                )

        )

    [success] => 1
)

如果是新邮件,returns 会收到成功的 created 回复。一切似乎都应该完美运行,但是我找不到提交的内容。

有什么想法可以结束这些提交,为什么它们没有显示为表单中的潜在客户?为什么没有发送应该为每次成功提交发送的确认电子邮件?

我相信,表单和表单字段 API 端点服务于完全不同的目的。 这些 应该用于管理来自远程系统的表单 ,而不是帮助编写或呈现表单。

不直接使用这些端点来查询表单字段的另一个原因是这些请求也计入您的日常 API usage limits。在更大的 Marketo 实例中,这是一种宝贵的资源。

如果您的后端只是接收 AJAX 请求并将值传递给 Sync Leads 端点 (POST /rest/v1/leads.json) 而不是我宁愿在客户端。 嵌入代码的 html 代码如下:

<script src="//app-lon06.marketo.com/js/forms2/js/forms2.min.js"></script>
<form id="mktoForm_{{FORM_ID}}"></form>
<script>MktoForms2.loadForm("//app-abc01.marketo.com", "{{MUNCHKIN_ID}}", {{FORM_ID}});</script>

实际上,这也是调试当前进程的好方法。 (如果该表单提交的结果正确显示在您的 Marketo 中,那么问题很可能出在后端代码中。)此外,请注意,当以这种方式呈现表单时,提交的数据集将包含一些额外的字段,例如 _mkt_trk_mktoReferrer,可能会影响处理结果。

至于发布到 /rest/v1/leads.json:表示请求正文中 input 数组中的线索的字段不必与任何形式的字段集匹配。事实上作为 documentation states

The request must also have an input parameter, which is an array of lead records. Each lead record is a JSON object with any number of lead fields. The keys included in a record should be unique for that record.

说了这么多,现在应该清楚了,为什么将线索推送到 /rest/v1/leads.json 端点不会触发 Form Fillout 事件。 一种解决方法是使用 Push Lead 端点 (POST /rest/v1/leads/push.json),您还可以使用它设置 programNameprogramStatus 参数。这不仅会创建潜在客户记录,还会将潜在客户与定义的程序相关联。在您的 Marketo 实例中,您唯一需要修改的是您的活动的智能列表,它现在观察表单填写。

还有一个注意事项:仍然,所有这些请求都计入您的 API 限制。考虑改用上面提到的嵌入形式。通过利用 javascript API,您还可以设置类似 AJAX 的行为。像这样:

MktoForms2.loadForm("//app-abc01.marketo.com", "{{MUNCHKIN_ID}}", {{FORM_ID}}, function(form) {
    // Add an onSuccess handler
    form.onSuccess(function(values, followUpUrl) {
        // Get the form's jQuery element and hide it
        form.getFormElem().hide();
        // Return false to prevent the submission handler from taking the lead to the follow up url
        return false;
    });
});