Skip to content

Instantly share code, notes, and snippets.

@fredfontes
Created April 26, 2018 17:58
Show Gist options
  • Save fredfontes/3f960558157ac49fb57eaa66b9114f73 to your computer and use it in GitHub Desktop.
Save fredfontes/3f960558157ac49fb57eaa66b9114f73 to your computer and use it in GitHub Desktop.
Integrações RD Station - HTML e Ajax com jQuery

Integrações RD Station

HTML e Ajax com jQuery

Formulário HTML

Crie normalmente um formulário com os campos que desejar, mas tendo sempre o campo email ou email_lead que é obrigatório.

É necessário também que o formulário tenha o atributo id como conversion-form.

É possível utilizar uma lista de outros campos já cadastrados na ferramenta de CRM do RD Station. Segue uma breve lista de opções:

  • nome
  • telefone
  • empresa
  • cargo
  • twitter
  • etc

<form id="conversion-form" action="https://www.rdstation.com.br/api/1.2/conversions" method="POST">
  <div class="field">
  	<label>E-mail:*</label>
	<input type="text" name="email" />
  </div>
  <div class="field">
  	<label>Nome:*</label>
	<input type="text" name="nome" />
  </div>
  <div class="field">
  	<label>Telefone:</label>
	<input type="text" name="telefone" />
  </div>
  <div class="actions">
    <input type="submit" value="Enviar" />
  </div>
</form>

Campos obrigatórios para integração

Além do campo email ou email_lead inclua outros 2 campos hidden também obrigatórios para fazer a integração:

  • token_rdstation : valor do token RD Station da sua conta (encontrado em https://www.rdstation.com.br/docs/api );
  • identificador : valor para referenciar a página ou evento de entrada do lead;
<form id="conversion-form" action="https://www.rdstation.com.br/api/1.2/conversions" method="POST">
  <input type="hidden" name="token_rdstation" value="SEU_TOKEN_RDSTATION_AQUI" />
  <input type="hidden" name="identificador" value="pagina-contato" />

  <div class="field">
  	<label>E-mail:*</label>
 (....)

Bibliotecas Javascript

Insira as bibliotecas de controle logo depois do formulário. Usamos jQuery, algumas extensões de validação e tratamento de formulários, além da própria do RD Station.

 (....)
</form>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
<script type="text/javascript" src="//rdstation-static.s3.amazonaws.com/js/jquery.validate/1.9/jquery.validate.min.js"></script>
<script type="text/javascript" src="//rdstation-static.s3.amazonaws.com/js/jquery.form/2.02/jquery.form.js"></script>
<script type="text/javascript" src="//rdstation-static.s3.amazonaws.com/js/rd/1.2/rdlps.min.js"></script>

Validação dos campos e técnica anti-robô

Recomendamos sempre fazer validação dos campos (pelo menos do campo de email) e se possível usar alguma técnica anti-robô contra programas que varrem a internet em busca de formulários para ficarem preenchendo com lixo.

Para validar campos obrigatórios, insira a classe required no elemento input desejado. Pode-se usar uma validação especial para o campo de email, inserindo a classe email.

  <div class="field">
  	<label>E-mail:*</label>
	<input type="text" name="email" class="required email" />
  </div>
  <div class="field">
  	<label>Nome:*</label>
	<input type="text" name="nome" class="required" />
  </div>
  <div class="field">
  	<label>Telefone:</label>
	<input type="text" name="telefone" />
  </div>

Para mais opções de validação veja a documentação do plugin http://docs.jquery.com/Plugins/Validation

Uma técnica simples anti-robô, é usar uma conta matemática para validar a submissão do formulário. Nossa biblioteca já possui uma validação padrão desse tipo e basta inserir um novo campo para tal:

  <div class="field">
    <label><span id="math_expression">3 + 7 = ?</span></label>
    <input type="text" name="captcha" class="math" />
  </div>

Submissão do formulário via Ajax com jQuery

Usando as bibliotecas indicadas e o formulário tendo o id como conversion-form, o envio dos dados será automático.

É possível também customizar a callback de sucesso para mostrar um alerta, redirecionar o usuário a outra página, ou qualquer outro controle que se queira. Crie um código que sobrescreva a função conversionSuccess e coloque o tratamento que desejar. No exemplo abaixo, fazemos uma conversão no Google Analytics, mostramos um alerta de obrigado, e redirecionamos o visitante para uma outra página.

<script type="text/javascript">
  var origConversionSuccess = conversionSuccess;
  conversionSuccess = function(resp) {
    origConversionSuccess(resp);
    try { _gaq.push(['_trackPageview', '/pagina-contato/conversao']); } catch(err) { }
    alert("Obrigado.");
    location.href = 'http://resultadosdigitais.com.br';
  }
</script>

Avisos de conversão por email

O RD Station pode lhe enviar um email quando uma nova conversão for realizada em seu site. Para isso, basta colocar o seu email na configuração da página da API https://www.rdstation.com.br/docs/api

Preenchimento automático

Se possuir mais de uma página com formulários de conversão e desejar que seus visitantes tenham os campos automaticamente preenchidos com dados que eles já tenham preenchido anteriormente, insira uma extensão da biblioteca do RD Station nas páginas, assim os dados do formulário serão salvos para a próxima visita.

<script type="text/javascript" src="//rdstation-static.s3.amazonaws.com/js/rd/1.2/rdlps-autofill.min.js"></script>

Exemplos completos

Na código HTML abaixo, é possível ver uma página com formulário que utiliza o script de integração para capturar os dados do formulário e enviar para o RD Station.

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>HTML e Ajax com jQuery | Integrações RD Station</title>
<style type="text/css">
html,body{text-align:center;}
#wrapper{width:600px; margin:0 auto; text-align:center;}
#conversion-form{width:300px; margin:0 auto; border:1px solid silver;text-align:left;}
#conversion-form .field{padding:4px;}
#conversion-form .actions{text-align:center;}
#conversion-form label{display:block;}
#conversion-form input[type=text]{width:90%;}
</style>
</head>
<body>
<div id="wrapper">
<h1>Integrações RD Station</h1>
<h2>HTML e Ajax com jQuery</h2>
<form id="conversion-form" action="https://www.rdstation.com.br/api/1.2/conversions" method="POST">
<input type="hidden" name="token_rdstation" value="f1c940384a971f2982c61a5e5f11e6b9" />
<!--
* Atenção!
* Token de testes - Usar o próprio de sua conta encontrado em: https://www.rdstation.com.br/docs/api
-->
<input type="hidden" name="identificador" value="teste-html-ajax" />
<div class="field">
<label>E-mail:*</label>
<input type="text" name="email_lead" class="required email" />
</div>
<div class="field">
<label>Nome:*</label>
<input type="text" name="nome" class="required" />
</div>
<div class="field">
<label>Empresa:</label>
<input type="text" name="empresa" class="" />
</div>
<div class="field">
<label><span id="math_expression">3 + 7 = ?</span></label>
<input type="text" name="captcha" class="math" />
</div>
<div class="actions">
<input type="submit" id="cf_submit" value="Enviar" />
<img src="//rdstation-static.s3.amazonaws.com/images/ajax-loader.gif" id="ajax-loader" alt="Enviando..." />
</div>
</form>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
<script type="text/javascript" src="//rdstation-static.s3.amazonaws.com/js/jquery.validate/1.9/jquery.validate.min.js"></script>
<script type="text/javascript" src="//rdstation-static.s3.amazonaws.com/js/jquery.form/2.02/jquery.form.js"></script>
<script type="text/javascript" src="//rdstation-static.s3.amazonaws.com/js/rd/1.2/rdlps.min.js"></script>
<script type="text/javascript">
var origConversionSuccess = conversionSuccess;
conversionSuccess = function(resp) {
origConversionSuccess(resp);
try { _gaq.push(['_trackPageview', '/teste-html-ajax/conversao']); } catch(err) { }
alert("Obrigado.");
location.href = 'http://www.rdstation.com.br';
}
</script>
<script type="text/javascript" src="//rdstation-static.s3.amazonaws.com/js/rd/1.2/rdlps-autofill.min.js"></script>
</div>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment