Enviando Diretamente para Endpoints de Formulários Nativos


À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

Disponível Com:
Teste  
Essencial  
Avançado  
Ultimate  
Barra de Ferramentas:
FormuláriosFormulários
 
Usuários:
Administradores  
Gerentes de Empresa    
Gerentes de Marketing    
Gerentes de Vendas    
Vendedores    
Vendedores Jr.    

Entendendo o Envio Direto

Nota: Constant Contact oferece Serviços Profissionais para ajudar com codificação personalizada.

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/
webforms/receivePostback/MzYwN7EwMzcyAgA/
endpoint

 

30e3bbfe-a5e7-4207-9237-e9f9e2ff80e9
endpoint URL

 

https://app-XXXXXXXXXX.marketingautomation.services/
webforms/receivePostback/MzYwN7EwMzcyAgA/
30e3bbfe-a5e7-4207-9237-e9f9e2ff80e9/jsonp/
 

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
Nota: Envíos para endpoints de formulários nativos a partir do seu próprio código devem vir do seu back end. Fazer a solicitação HTTP a partir do front end provavelmente resultará em erros de CORS devido ao cross-site scripting.

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);