Pilot Solution ®

Como você integra seus Leads à Pilot?

Te mostramos de uma maneira muito simples como você pode inserir um lead em nossa plataforma. Se você deseja acessar toda a documentação de nossa API para outros tipos de integrações, solicite-a em nossa página de suporte.

A Pilot CRM permite integrar de duas maneiras diferentes:

Integração via Webhook

Método recomendado por sua
velocidade e eficácia

Consulte a documentação do Webhook

Integração via E-mail

Recomendado para pessoas sem nenhum
conhecimento de programação

Ver documentação Email

Estrutura de um lead

Cada "lead" inserido no Pilot® deve estar em conformidade com uma certa estrutura de parâmetros, mas nem todos são obrigatórios:
Nome é obtido da conta que envia o email, se possível
Sobrenome sobrenome do lead
Segundo sobrenome Aplicável para segundos sobrenomes ou sobrenomes maternos.
Telefone Telefone principal
Celular Telefone celular do Lead
Tipo de contato: é o meio pelo qual a pessoa é contatada eode ser, por exemplo: 1- Eletrônico | 2- Telefone | 3- Entrevista. (Variam de acordo com a configuração da instância).
Tipo de negócio: Código para identificar o tipo de negócio do Lead. Por exemplo: (1) Convencional / 0km | (2) Seminovo/Usado | (3) Gerenciamento de capitalização. (Variam de acordo com a configuração da instância).
Notas:  Comentários ou observações que o Lead deixa nas páginas em que está registrado.
 Origem: é um agrupador do identificador de onde o Lead é obtido. É utilizado apenas na interface gráfica do Pilot® e seu uso é descontinuado nas interfaces automáticas.
Sub-origem:   Identifica a origem primária do Lead. Ele é obtido a partir da lista das sub-origens da instância de cada cliente. Pode ser consultado no relatório das tabelas do sistema chamado "Origem dos dados".
Fornecedor atribuído:  indica o fornecedor ao qual atribuir o lead diretamente. No momento, este parâmetro é usado apenas na interface gráfica Pilot®.
Marca:  Marca do veículo.
Modelo:  Modelo do Veículo.
Provedor de serviços:  Nome do serviço que fornece os dados. É um descritivo da origem. Permite identificar o provedor de serviço ou o padrão de roteamento em caso de necessidade de atribuições dinâmicas a diferentes grupos de captura.
Producto de interés:  Vehículo o producto por el que el Lead inició la consulta. En el caso de ingresar vacío este campo se completa con la marca y el modelo del vehículo indicado.
Opt In Notificações:  Indicam se o Lead aceita receber notificações através de qualquer meio de contato.
Opt In Publicitário:  Indicam se o Lead aceita receber material publicitário através de qualquer meio de contato.
Rua:  Nome da Rua e do endereço do Lead.
Número:  Número do endereço do Lead.
Andar:  Andar do apartamento do Lead.
Apartamento:  Apartamento do Lead.
Cep: Cep do Lead.
Data de Nascimento: Data de nascimento do Lead.
Gênero: Código do gênero do Lead.
parâmetros obrigatórios

Primeiros passos

Nossa documentação explica os conceitos básicos do uso de chamadas Web / HTTP e da Pilot® em particular. Se você não conhece essas técnicas ou não trabalhou anteriormente com chamadas Web / HTTP, reserve um momento para fazê-lo antes de iniciar o trabalho.

Ponto de partida da API Restful

https://api.pilotsolution.net/webhooks/welcome.php

IMPORTANTE: qualquer resposta que não seja o status 200 HTTP é um erro.

Descrição de parâmetros

Cada "lead" inserido no Pilot® deve estar em conformidade com uma certa estrutura de parâmetros, mas nem todos são obrigatórios:
action Valor fixo "create"
appkey É um valor alfanumérico ex: 9715fc4b-17a8-4e56-ac7a-6deb5fd46u71 que você pode pedir
ao suporte da Pilot ou conseguir na configuração da plataforma.
debug Código numérico, flag, que permite testar o serviço sem inserir o Lead à Pilot®.
notification_email Conta de e-mail para receber uma cópia dos dados inseridos.
pilot_firstname Nome do Lead
pilot_lastname Sobrenome do Lead
pilot_second_lastname Segundo Sobrenome do Lead.
pilot_phone Telefone do Lead
pilot_cellphone Telefone celular do Lead
pilot_email E-mail del Lead
pilot_contact_type_id é o meio pelo qual a pessoa é contatada eode ser, por exemplo:
1- Eletrônico | 2- Telefone | 3- Entrevista.
pilot_business_type_id Código para identificar o tipo de negócio do Lead. Por exemplo:
(1) Convencional / 0km | (2) Seminovo/Usado | (3) Gerenciamento de capitalização.
pilot_notes Comentários, Observações de interesse que o 'ator' adiciona no momento que entrar no Lead. No caso de um e-Commerce como De Motores, De Autos, Autofoco, Autocosmos, etc, a sugestão é completá-lo com o interesse da pessoa (ex: veículo/financiamento/...)
pilot_origin_id Agrupador que identifica de onde o Lead é obtido. É utilizado apenas na interface gráfica da Pilot Solution®, sendo seu uso deprecado nas interfaces automáticas.
pilot_suborigin_id Código que identifica a origem primária do Lead. Ele é obtido a partir da lista de sub-origens de cada instância de cada cliente e pode ser consultado no relatório de tabelas do sistema chamado de "Origem dos Dados" no módulo de administração.
Ex: 1 (Landing)
pilot_assigned_user Conta de usuário Pilot à qual você deseja atribuir os dados. Nesse caso, a atribuição manual dos dados
tem precedência sobre os grupos de captura de dados, por exemplo: cuentausuario@dominio.com
pilot_car_brand Marca do veículo de interesse, ex: Ford
pilot_car_modelo Modelo do veículo de interesse Ex: Fiesta
pilot_city Cidade onde se localiza o dado Ex: São Paulo
pilot_province Estado onde se localiza o dado Ex: São Paulo
pilot_country País onde se encontra o dato Ex: Brasil
pilot_vendor_name Nome do fornecedor do dado
pilot_vendor_email E-mail do fornecedor do dado
pilot_vendor_phone Telefone do fornecedor do dado
pilot_provider_service Nome do serviço que fornece os dados. É um descritivo da origem. Ele permite identificar o provedor de serviços ou o padrão de roteamento caso seja necessário atribuições dinâmicas para diferentes grupos de captura. .
pilot_provider_url URL do serviço que coletou os dados.
pilot_client_company Nome da empresa.
pilot_client_identity_document Documento de Identidade do Lead.
pilot_tracking_id Código de seguimento: GUID ou ID único que identifica o lead na origem.
pilot_client_ip IP do lead no momento da captura.
pilot_best_contact_time Horário preferido de contato do Lead.
pilot_product_code Código do produto de acordo com a lista de preços do piloto.
Isso faz com que o sistema gere automaticamente uma oferta de interesse para o lead.
A lista de produtos pode ser obtida em endpoint masters/read.php
Os produtos e códigos podem variar mês a mês segundo a alta ou baixa das marcas e a agência.
pilot_product_of_interest Marca y Modelo del vehículo de interés del Lead.
pilot_notificacions_opt_in_consent_flag Indica se o Lead aceita receber notificações através de qualquer meio de contato. (1) Aceita - (0) Não Aceita
pilot_publicity_opt_in_consent_flag Indica se o Lead aceita receber material publicitário através de qualquer meio de contato. (1) Aceita - (0) Não Aceita
N pilot_address_street Nome da rua do endereço do Lead.
N pilot_addresss_number Número da residência do Lead.
N pilot_address_floor Andar do apartamento do Lead. Ex: 4° andar.
N pilot_address_department Apartamento do Lead
N pilot_address_postal_code Código postal (cep) do Lead.
N pilot_birth_date Data de nascimento do Lead. Formato: DD/MM/AA.
N pilot_gender_code Código do gênero do Lead. Valor inserido no Mestre do Gênero.
OBRIGATÓRIO
N Novo

Formato de Saída

Cada chamada à API retorna uma mensagem no formato JSON com informação da execução dela.
Valores de Retorno:

{
	"success": Indica se a integração teve êxito ou não. Seus valores possíveis são: True - False ,
	"message": Mensagem de texto que indica se a alta do Lead teve éxito ou não. ‘O serviço de carregamento dos dados foi executado corretamente’,
	"data": Integração bem sucedida: Exibe cada um dos dados integrados / Integração com erro: Descreve o erro. 
}
Exemplo:  
{
	"success":false,
	"message":"Error",
	"data":"O parâmetro requerido appkey não foi configurado"
}

Exemplo de retorno em caso de execução correta:

										
{
	"success":valor boolean - true o false,
	"message":mensagem do resultado, 
	"data":{
		"message": resultado,
		"assigned_user_id": ID do usuário piloto designado. Se a tag não estiver atribuída, ela não será enviada, 
		"success": valor booleano - verdadeiro ou falso indica que foi inserido corretamente no banco de dados,
		"id": identificador dos dados registrados. É um valor numérico 
	}
}
Exemplo: 
{
	"success":true,
	"message":"Success",
	"data":{
		"message":"(3.2) O serviço de carregamento de dados foi executado com sucesso. ", 
		"assigned_user_id":80,
		"success":true,
		"id":8855
	}
}
									
									

Exemplo de código chamado PHP Curl

Copie e cole o seguinte código em um arquivo com extensão .PHP
Modifique os parâmetros de configuração e tente um formulário que tenha esta página como ação.
Você também pode fazer o download de um código de formulário de exemplo para adicionar o criativo aqui

Faça o download do código de exemplo
<?php
//VARIABLES DE CONFIGURACION
$serviceURL = "https://api.pilotsolution.com.ar/webhooks/welcome.php";
$appKey = "aqui la key de la instancia correspondiente"; 
$tipoNegocio = "1";  
$origendeldato = "7A2E4184"; 
$landing_link = "Landing Promo Mes"; 
//CAPTURA DE parâmetros que podem vir de um formulário 
$encoded = "";
$encoded .= urlencode('action').'=create&';
$encoded .= urlencode('appkey').'='.urlencode($appKey).'&';
$encoded .= urlencode('pilot_firstname').'='.urlencode(request("nombre",false,"n/a")).'&';
$encoded .= urlencode('pilot_lastname').'='.urlencode(request("apellido",false,"")).'&';$encoded .= urlencode('pilot_phone').'='.urlencode(request("telefono",false,"n/a")).'&';
$encoded .= urlencode('pilot_cellphone').'='.urlencode(request("celular",false,"")).'&';
$encoded .= urlencode('pilot_email').'='.urlencode(request("email",false,"")).'&';
$encoded .= urlencode('pilot_contact_type_id').'='.urlencode('1').'&'; //electronico
$encoded .= urlencode('pilot_business_type_id').'='.urlencode($tipoNegocio).'&'; 
$encoded .= urlencode('pilot_notes').'='.urlencode(request("comentarios",false,"Sin comentarios");).'&';
$encoded .= urlencode('pilot_suborigin_id').'='.urlencode($origendeldato).'&';
$encoded .= urlencode('pilot_provider_url').'='.urlencode($landing_link).'&';
$ch = curl_init($serviceURL);
curl_setopt($ch, CURLOPT_FAILONERROR, true); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,  $encoded);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);       
curl_close($ch);
echo $output;
die() ;
// Obtém os parâmetros por post o get
function request($param, $required=true, $default="") {
$result = $default;
//veo si esta seteado el parametro POST
if (isset($_POST[$param])) {
if($_POST[$param]!="") {
$result = $_POST[$param]; } else {
if ($required) {
throw new Exception("El parametro requerido ".$param." no fue seteado");
			}
		
		}
	}
	else if(isset($_GET[$param])) {
		if($_GET[$param]!="") {
			$result = $_GET[$param];
		} else {
			if ($required) {
				throw new Exception("El parametro requerido ".$param." no fue seteado");
			}
		
		}
	}
	else {
		if ($required) {
			throw new Exception("El parametro requerido ".$param." no fue seteado");
		} 
	}
	
	return $result;
}
?>

Baixar código de exemplo

Baixar código

Formato

O formato de e-mail é um ADF (xml de informações) com o seguinte conteúdo. Nesse caso, as informações que podem ser enviadas pelo correio são mais extensas e com mais informações.

Formato de e-mail: preferencialmente texto sem formatação.

Parâmetros

As informações fornecidas são a título de exemplo, para que o conteúdo seja entendido.
													
<?xml version="1.0" encoding="UTF-8"?>
    <?adf version="1.0"?>
    <adf>
    <prospect>
       <requestdate>2013-06-27 11:26:24</requestdate>
       <vehicle>
            <brand>PEUGEOT</brand>
            <model>207</model>
        </vehicle>
        <customer>
            <contact>
                <name part="full">nombre completo del prospecto</name>
                <name part="first">nombre</name>
                <name part="last">apellido</name>
                <email>mail@domionio.com</email>
                <phone>1147899000</phone>
                <cellphone>1160403456</cellphone>
                <address>
                    <city>Cuidad Autónoma de Buenos Aires</city>
                    <province>Buenos Aires</province>
                    <country>Argentina</country>
                    
                </address>
            </contact>
            
            <comments>
                <![CDATA["Estou interessado em comprar um Ford Fiesta"]]>
            </comments>
            
        </customer>
        <vendor>
            <contact>
                <name part="full"></name>
                <email></email>
                <phone></phone>
            </contact>
        </vendor>
        <provider>
            <name>fornecedor de dados</name>
            <service>Landing Venda Ford Fiesta</service>
            <notification_email></notification_email >
            <debug>0</debug>
        </provider>
    </prospect>
    <format>
        <formtype>pilot</formtype>
        <formversion>1</formversion>
        <key></key>
    </format>
</adf>
											

Os parâmetros relatados em azul são constantes e não devem ser alterados.

Os parâmetros relatados em verde são opcionais e servem para expandir as informações do vendedor

Os parâmetros relatados em rojo são básicos da mensagem e são obrigatórios.

Se algum dado não for enviado, a tag deverá ser reportada em branco. Em outras palavras, a mensagem deve estar completa

Ej:

 <make> </make>

Código de exemplo PHP

 
<?php

 enviar_a_Pilot();
 die(); 
 function enviar_a_Pilot()
 {
     $REQUERIDO  = true; 
     $NO_REQUERIDO = false; 
     
     $nombre         = request("nombre",$REQUERIDO);
     $apellido       = request("apellido", $NO_REQUERIDO);
     $telefono       = request("telefono", $NO_REQUERIDO);
     $celular        = request("celular", $NO_REQUERIDO);
     $email          = request("email",$REQUERIDO);
     $modeloAuto     = request("modelo",$NO_REQUERIDO);
     $comentarios    = "Comentario:".request("comentarios", $NO_REQUERIDO);
     $provider       = "Nombre del proveedor de datos"; 
     $landing        = "Formulario de Contacto Tipo";
     $linkLanding    = "www.misitio.com/landing.php";
     $provincia      = request("region",$NO_REQUERIDO);
     $to             = "...";  //esta cuenta se configura en PILOT CRM
     $subject        = "Nuevo conctacto de ".$nombre;
     
     $cuerpoDelMail = armarCuerpoDelMail($nombre, $apellido, $telefono, $celular, $email, $modeloAuto, $comentarios, $landing, $linkLanding, $provincia, $provider);
     //aqui se puede usar 
     if (enviarElMail("mi_cuenta@mail.com", $to, $subject, $cuerpoDelMail)){
         echo "Su consulta fue enviada satisfactoriamente."; 
     }else{
         echo "No hemos podido enviar su consulta. Intente m&aacute;s tarde por favor."; 
     }
     return true; 
 }


// Levanta los parámetros por post o get
function request($param, $required=true, $default="")
{
    $result = $default;
    
    //veo si esta seteado el parametro POST
    if (isset($_POST[$param])) {
        
        if($_POST[$param]!="")
        {
            $result = $_POST[$param];
        } else {
            if ($required)
            {
                throw new Exception("El parametro requerido ".$param." no fue seteado");
            }
        
        }
    }
    else if(isset($_GET[$param]))
    {
        if($_GET[$param]!="")
        {
            $result = $_GET[$param];
        } else {
            if ($required)
            {
                throw new Exception("El parametro requerido ".$param." no fue seteado");
            }
        
        }
    }
    else 
    {
        if ($required)
        {
            throw new Exception("El parametro requerido ".$param." no fue seteado");
        } 
    }
    
    return $result;
}
//Funcion para el envio de mails 
function enviarElMail($de, $para, $asunto, $cuerpodelmail)
{
    //aqui implementar la funcion de envio de mail que se disponga en el servidor.
    }
    
//Esta funcion retorna el contenido del cuerpo del mail con los valores ya reemplazados 
function armarCuerpoDelMail($nombre, $apellido, $telefono, $celular, $email, $modeloAuto, $comentarios, $landing, $linkLanding, $provincia, $provider)
{
    $result = '
        <?xml version="1.0" encoding="UTF-8"?>
        <?adf version="1.0"?>
            <adf>
            <prospect>
               <requestdate>'.date("Y-d-m H:i:s").'</requestdate>
               <vehicle>
                    <id></id>
                    <year></year>
                    <make>RENAULT</make>
                    <model>'.$modeloAuto.'</model>
                    <vin></vin>
                    <stock></stock>
                    <trim></trim>
                    <price type="asking"></price>
                </vehicle>
                <customer>
                    <contact>
                        <name part="full"></name>
                        <name part="first">'.$nombre.'</name>
                        <name part="last">'.$apellido.'</name>
                        <email>'.$email.'</email>
                        <phone>'.$telefono.'</phone>
                        <cellphone>'.$celular.'</cellphone>
                        <international_phone></international_phone>
                        <address>
                            <street></street>
                            <city>'.$provincia.'</city>
                            <regioncode></regioncode>
                            <postalcode></postalcode>
                            <country>Argentina</country>
                        </address>
                    </contact>
                    <comments>
                            <![CDATA["'.$comentarios.'"]]>
                      </comments>
                </customer>
                <vendor>
                    <vendorname></vendorname>
                    <contact>
                        <name part="full"></name>
                        <email></email>
                        <phone></phone>
                    </contact>
                </vendor>
                <provider>
                    <name>'.$provider.'</name>
                    <service>'.$landing.'</service>
                    <notification_email></notification_email >
                    <debug>0</debug >
                    <url><![CDATA["'.$linkLanding.']]></url>
                </provider>
            </prospect>
            <format>
                <formtype>pilot</formtype>
                <formversion>1</formversion>
                <key></key>
            </format>
        </adf>';
    return $result;
}


?>