Passar para o conteúdo principal

Integração com a API Ramper Marketing - PHP

Como integrar formulários ao Ramper Marketing via API em PHP, usando os endpoints 'conversions' e 'leads', com snippet, array de tradução e códigos de erro.

Escrito por Vinicius Poleti

Atualmente existem dois tipos de integração com a API do Ramper Marketing: o endpoint conversions é utilizado para inclusão/atualização de leads e o endpoint leads é utilizado para a atualização específica do estágio do lead.

Como integrar via PHP

  1. O snippet ao final deve ser aplicado na página de resposta do formulário que você deseja integrar.

  2. Siga as instruções presentes no snippet.

  3. Consulte a lista atualizada de campos disponíveis (tanto para o envio via PHP quanto para o uso do array de tradução $traducao).

  4. Se o campo a integrar for um campo personalizado, use o token do campo para identificá-lo na integração.

Exemplo de array de tradução para campos personalizados:

$traducao = array(  'uNuQarKCor' => $VARIAVEL_CAMPO_PERSONALIZADO_1,  'Gi7isGip6J' => $VARIAVEL_CAMPO_PERSONALIZADO_2);

Observação: se o campo personalizado for do tipo caixa suspensa, o valor informado na variável de tradução deve existir como uma das opções do campo.

Snippet - Integração de conversões

function integra_api_lahar($token_api_lahar, $endpoint, $nome_formulario, $campos) {  $endpoint_full_url = 'https://app.lahar.com.br/api/'.$endpoint;  if ($endpoint == 'conversions') { $method = 'POST'; }  if ($endpoint == 'leads') { $method = 'PUT'; }  try {    if (!array_key_exists('token_api_lahar',$campos)) { $campos['token_api_lahar'] = $token_api_lahar; }    else if ($campos['token_api_lahar'] == NULL) { $campos['token_api_lahar'] = $token_api_lahar; }    if (!array_key_exists('nome_formulario',$campos)) { $campos['nome_formulario'] = $nome_formulario; }    else if ($campos['nome_formulario'] == NULL) { $campos['nome_formulario'] = $nome_formulario; }    if (!array_key_exists('url_origem',$campos)) { $campos['url_origem'] = 'integracao-javascript'; }    else if ($campos['url_origem'] == NULL) { $campos['url_origem'] = 'integracao-javascript'; }    $post_fields = http_build_query($campos);    if ($method == 'POST') {      $ch = curl_init($endpoint_full_url);      curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);      curl_setopt($ch, CURLOPT_POST, TRUE);      curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);      curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);      $curl_response = curl_exec($ch);      curl_close($ch);      $retorno = json_decode($curl_response);    } else if ($method == 'PUT') {      $ch = curl_init($endpoint_full_url);      curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");      curl_setopt($ch, CURLOPT_HEADER, false);      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);      curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));      curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($campos));      $curl_response = curl_exec($ch);      curl_close($ch);      $retorno = json_decode($curl_response);    }  } catch (Exception $e) {    $retorno = array('status' => 'erro', 'data' => array('error' => array('code' => 404, 'message' => 'Erro imprevisto.')));  }  return $retorno;}// Se as informacoes constarem em outro array que nao o $_POST, substitua abaixo$valores = $_POST;if (count($valores) > 0) {  // Caso os campos nao estejam nomeados conforme a documentacao, use o array de traducao  // TIPO_DE_INTEGRACAO pode ser 'conversions' ou 'leads'  integra_api_lahar('TOKEN_API_LAHAR_OBTIDO_EM_CONFIGURACOES', 'TIPO_DE_INTEGRACAO', 'NOME_DO_IDENTIFICADOR_DA_PAGINA', $valores);}

Campos disponíveis no array de tradução (com observações de formato): email_contato (obrigatório), token_api_lahar, nome_formulario (obrigatório), nome_contato, nome_empresa, endereco_empresa, cargo, site_empresa, site_contato, tel_fixo, tel_empresa, tel_celular, anotacoes, twitter, estado (2 caracteres/UF), setor, cep, email_empresa, facebook, tags (termos separados por vírgula), facebook_empresa, twitter_empresa, linkedin, url_origem, estagio_lead (1, 2 ou 3) e tipo_integracao.

Códigos de retorno de erro da API

  • 101 – Não foi possível enviar o e-mail de notificação, porém o lead foi incluído com sucesso.

  • 102 – Não é possível obter conversões via GET. Para inserir uma nova conversão, use POST.

  • 103 – Não é possível obter o estágio dos leads via GET. Para atualizar, use PUT.

  • 104 – Não é possível atualizar atividades dos leads via GET. Use PUT.

  • 105 – Não é possível enviar e-mails do BPM via GET, use POST.

  • 401 – Acesso não autorizado: token não identificado.

  • 404 – Erro imprevisto.

  • 520 – O limite da cota de contatos foi excedido.

  • 540 – Erro na inclusão do contato no banco de dados. O ambiente está ativo?

  • 541 – Erro na atualização de estágio do lead. O ambiente está ativo?

  • 550 – Nenhum campo recebido na requisição.

  • 551 – Campo obrigatório recebido está duplicado.

  • 552 – Envio não contempla os campos obrigatórios necessários.

  • 553 – Erro de validação de campo (campo não tratado).

  • 554 – Contato enviado não existe (o e-mail enviado existe?).

  • 555 – Conversão via telefone não foi possível: nenhum contato identificado com o número informado.

  • 556 – A conversão não foi realizada pois o lead não deu o consentimento.

  • 557 – Categoria de nota inválida.

  • 600 – Parâmetros não fornecidos.

  • 601 – Estrutura dos parâmetros inconsistente.

  • 602 – Parâmetro "token" não fornecido.

  • 603 – Parâmetro "modelo" não fornecido.

  • 604 – Parâmetro "posição" não fornecido.

  • 605 – Parâmetro "destinatário" não fornecido.

  • 606 – Parâmetro "destinatário" inconsistente.

  • 607 – Parâmetro "dados" não fornecido.

  • 608 – Um dos pares do parâmetro "dados" está inconsistente.

  • 609 – Parâmetro "secret key" não fornecido.

  • 620 – Acesso inválido ou e-mail não existente.

Respondeu à sua pergunta?