Я полагаю, что конечные точки API Form и Form Fields служат совершенно другим целям.Вместо того, чтобы помогать в создании или визуализации форм, эти следует использовать для управления формами из удаленных систем.
Другая причина, по которой эти конечные точки не используются явно для запроса полей формы, заключается в том, что эти запросы такжерассчитывать на ваши ежедневные пределы использования API В большем экземпляре Marketo это ценный ресурс.
В случае, если ваш бэкэнд просто получает запросы AJAX и передает значения в конечную точку Sync Leads (POST /rest/v1/leads.json
), чем ялучше использовать встроенную форму Marketo на стороне клиента.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
втело запроса не должно соответствовать набору полей любой формы.Фактически, как указано в документации ,
Запрос также должен иметь входной параметр, который представляет собой массив записей о потенциальных клиентах. Каждая ведущая запись представляет собой объект JSON с любым количеством ведущих полей. Ключи, включенные в запись, должны быть уникальными для этой записи.
Сказав все это, это должно бытьТеперь понятно, почему нажатие на вывод в конечную точку /rest/v1/leads.json
не вызывает событие Form Fillout
.Обходным путем может быть использование конечной точки Push Lead (POST /rest/v1/leads/push.json
), с помощью которой вы также можете установить параметры programName
и programStatus
.Это не только создаст запись Lead, но также свяжет Lead с определенной программой.В вашем экземпляре 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;
});
});