Marketo REST API для добавления в список потенциальных клиентов.Успешный результат, но не вижу лидов и подтверждения по электронной почте - PullRequest
0 голосов
/ 24 сентября 2018

Я использую REST API Marketo для добавления потенциальных клиентов.Кажется, что все работает нормально, но я не могу найти, где в конечном итоге приводит.Форма настроена на отправку отправителю подтверждающего электронного письма, которое не отправляется.

Сначала я получаю данные формы, используя конечную точку /rest/asset/v1/form/FORMID.json.Затем я получаю все поля формы, используя конечную точку /rest/asset/v1/form/FORMID/fields.json.Затем я отображаю пользовательский HTML-код для всех полей и отображаю его на интерфейсе веб-сайта.Отправка формы осуществляется с помощью AJAX, и я отправляю данные из PHP в API REST Marketo.Все это прекрасно работает.

Marketo возвращает успешный ответ updated при использовании адреса электронной почты, который уже был отправлен:

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

        )

    [success] => 1
)

И если это новое письмо, оно возвращает успешное created ответ.Кажется, все должно работать идеально, однако я не могу найти материалы.

Есть идеи, где эти материалы могут заканчиваться, и почему они не отображаются в виде отведений от формы?И почему электронное письмо с подтверждением, которое должно быть отправлено для каждой успешной отправки, не отправляется?

1 Ответ

0 голосов
/ 26 сентября 2018

Я полагаю, что конечные точки 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;
    });
});
...