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
O snippet ao final deve ser aplicado na página de resposta do formulário que você deseja integrar.
Siga as instruções presentes no snippet.
Consulte a lista atualizada de campos disponíveis (tanto para o envio via PHP quanto para o uso do array de tradução
$traducao).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.