Enviando Diretamente para Endpoints de Formulários Nativos
Última atualização: 9 de outubro de 2024
Às vezes, pode ser útil enviar dados diretamente para o endpoint de um formulário nativo. Isso permite que um formulário seja enviado para Lead Gen & CRM sem o uso do código de incorporação do formulário nativo.
Em vez disso, um desenvolvedor precisará criar um código para construir uma URL contendo os dados do formulário e enviar essa URL para Lead Gen & CRM.
Este artigo detalhará como enviar diretamente para formulários nativos.
Conteúdo do Artigo
Teste | ✓ | |
Essencial | ✓ | |
Avançado | ✓ | |
Ultimate | ✓ |
Administradores | ✓ | |
Gerentes de Empresa | ||
Gerentes de Marketing | ||
Gerentes de Vendas | ||
Vendedores | ||
Vendedores Jr. |
Entendendo o Envio Direto
No entanto, como esta integração não é padrão e não é uma capacidade oficial da plataforma Lead Gen & CRM, o Suporte do Lead Gen & CRM não ajudará a depurar códigos com falhas.
Enviar diretamente para endpoints de formulários nativos permite que seu desenvolvedor tenha controle total sobre quando os dados do formulário são enviados para Lead Gen & CRM. Isso também permite que você manipule ainda mais os dados com seu próprio código antes de enviá-los.
Para alguns formulários, devido à forma como são construídos ou ao seu método de envio, este método pode ser o único disponível. Usando este método, os dados não precisam nem mesmo vir de um formulário real, mas podem ser extraídos de qualquer fonte à qual seu desenvolvedor tenha acesso.
O endpoint de um formulário terá a seguinte estrutura:
https://app-XXXXXXXX.marketingautomation.services/webforms/receivePostback/YYYYYYYYYYYY/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/jsonp/
Com dados de exemplo anexados, ele se pareceria com o seguinte:
https://app-XXXXXXXX.marketingautomation.services/webforms/receivePostback/YYYYYYYYYYYY/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/jsonp/?firstName=First&lastName=Last&email=first.last@constantcontact.com
Para encontrar o endpoint do seu formulário, crie um formulário nativo no Lead Gen & CRM e visualize seu código de incorporação.
<script type="text/javascript">
var __ss_noform = __ss_noform || [];
__ss_noform.push(['baseURI', 'https://app-XXXXXXXXXX.marketingautomation.services/webforms/receivePostback/MzYwN7EwMzcyAgA/']);
__ss_noform.push(['endpoint', '30e3bbfe-a5e7-4207-9237-e9f9e2ff80e9']);
</script>
<script type="text/javascript" src="https://koi-XXXXXXXXXX.marketingautomation.services/client/noform.js?ver=1.24" ></script>
O endpoint do seu formulário será a URL na linha contendo ‘baseURI’
, mais o valor que segue ‘endpoint’
. Ele terminará com /jsonp/
. Considere os seguintes valores para o código de exemplo:
Parte | Código | |
baseURI |
|
https://app-XXXXXXXXXX.marketingautomation.services/ |
endpoint |
|
30e3bbfe-a5e7-4207-9237-e9f9e2ff80e9 |
endpoint URL |
|
https://app-XXXXXXXXXX.marketingautomation.services/ |
Os nomes dos campos podem ser o que você quiser, desde que sejam únicos e consistentes em cada envio. Você mapeará esses campos da mesma forma que mapeia campos com qualquer formulário nativo, então os nomes dos campos de entrada devem ser descritivos para facilitar o mapeamento. Evite usar pontuação nos nomes dos campos também, pois isso pode causar um erro de envio.
Estabelecendo Rastreamento
Considere o seguinte código de exemplo de um envio para este endpoint com o primeiro nome First, o sobrenome Last, e o endereço de e-mail First.Last@constantcontact.com.
Embora este código colete dados do formulário e crie leads, ele não estabeleceria rastreamento no lead como um envio de formulário normalmente faria.
https://app-XXXXXXXXXX.marketingautomation.services/webforms/receivePostback/MzYwN7EwMzcyAgA/30e3bbfe-a5e7-4207-9237-e9f9e2ff80e9/jsonp/?firstName=First&LastName=Last&Email=First.Last@constantcontact.com
Para estabelecer rastreamento, você deve coletar o cookie e passá-lo em um campo chamado trackingid__sb
. Este campo tem dois sublinhados, não aparecerá na página de mapeamento de campos e deve sempre ter esse nome.
Você pode recuperar o cookie chamado __ss_tk
e passá-lo como o valor do ID de rastreamento. Se isso for feito, o formulário estabelecerá rastreamento no lead assim como qualquer formulário nativo faria. O cookie também pode ser obtido usando conteúdo dinâmico da web, mas na maioria das vezes um desenvolvedor irá buscar o cookie com seu próprio código. Os cookies de rastreamento devem ter um formato semelhante ao seguinte: 201611|581a09d2ba899bcc078b477a
https://app-3Q7ZHNRIA0.marketingautomation.services/webforms/receivePostback/MzYwN7EwMzcyAgA/30e3bbfe-a5e7-4207-9237-e9f9e2ff80e9/jsonp/?firstName=First&LastName=Last&Email=First.Last@constantcontact.com&trackingid__sb=201611|581a09d2ba899bcc078b477a
Com a adição deste cookie, o código de exemplo se pareceria com o código de rastreamento de exemplo fornecido. Isso pode ser realizado em qualquer linguagem na qual você possa construir uma URL e enviá-la como uma solicitação GET. Assim, a URL pode ser digitada diretamente na barra de URL do navegador para teste, e o envio deve ser recebido.
Considere o código de exemplo de rastreamento em PHP usando cURL. Embora este seja o método mais comum, a mesma lógica se aplicaria em qualquer linguagem.
$baseURL = "https://app-XXXXXXXX.constantcontact.com/webforms/receivePostback/XXXXXXXXXXXX/";
$endPoint = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
// Preparar parâmetros
$params = "";
if (!empty($first_name)) {
$params = $params . "FirstName=" . urlencode($first_name) . "&";
}
if (!empty($last_name)) {
$params = $params . "LastName=" . urlencode($last_name) . "&";
}
if (!empty($email)) {
$params = $params . "emailAddress=" . urlencode($email) . "&";
}
if (!empty($company)) {
$params = $params . "Company=" . urlencode($company) . "&";
}
if (!empty($keep_me_updated)) {
$params = $params . "Subscribe=" . urlencode($keep_me_updated) . "&";
}
if (isset($_COOKIE['__ss_tk'])) {
$trackingid__sb = $_COOKIE['__ss_tk'];
$params = $params . "trackingid__sb=" . urlencode($trackingid__sb);
}
// Preparar URL
$ssRequest = $baseURL . $endPoint . "/jsonp/?" . $params;
// Enviar solicitação
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $ssRequest);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);