¿Cómo integras tus Leads a Pilot?

Te mostramos de manera muy sencilla cómo puedes ingresar un lead a nuestra plataforma. Si deseas obtener acceso a toda la documentación de nuestra API para otro tipo de integraciones, solicítalo en nuestra página de soporte.

Pilot CRM permite integrarte de dos maneras diferentes:

Integración Vía Webhook

Método recomendado por su
rapidez y efectividad

Ver documentación webhook

Integración Vía Email

Recomendado para personas sin ningún
conocimiento de programación

Ver documentación Email

Estructura de un lead

Cada "lead" ingresado en Pilot® tiene que cumplir con una determinada estructura de parámetros, los cuales no son todos requeridos:
Nombre Se obtiene de la cuenta que envía el mail si es posible
Apellido Apellido del Lead
Teléfono Teléfono del Lead
Celular Celular del Lead
Tipo de Contacto Es el medio por el cual se contacta la persona y puede ser: 1- electrónico | 2- telefónico | 3- entrevista
Tipo de negocio Canal de venta: (1) Convencional / 0km | (2) Usados |(3) Plan de Ahorro
 Origen Es un agrupador del identificador de donde se obtiene el Lead. Solo se usa en la interfaz gráfica de Pilot®, y su uso esta deprecado en las interfaces automáticas.
Suborigen  Identifica el origen primario del Lead, la lista de los suborígenes se obtiene de la instancia de cada cliente y se puede ver en el informe de las tablas del sistema llamado "Origen de los datos".
Vendedor Asignado  Indica el vendedor al cual asignar el Lead directamente. Por el momento este parámetro solo se usa en la interfaz gráfica de Pilot®.
Notas  Comentarios u observaciones que deja el Lead en las páginas donde se registra. En el caso de los eCommerce como De Motores, De Autos, Autofoco, Autocosmos, etc envían en este parámetro el interés de la persona (vehículo/financiación/etc).
parámetros obligatorios

Primeros Pasos

Nuestra documentación explica las nociones básicas del uso de llamadas Web/HTTP y Pilot® en particular. Si Ud. no está familiarizado con estas técnicas o no ha trabajado antes con llamadas Web/HTTP, por favor tome un momento para hacerlo antes de comenzar con el trabajo.

Punto de partida de la API Restful

https://api.pilotsolution.com.ar/webhooks/welcome.php

IMPORTANTE: cualquier respuesta que no sea status 200 HTTP es un error.

Descripción de parámetros

Cada "lead" ingresado en Pilot® tiene que cumplir con una determinada estructura de parámetros, los cuales no son todos requeridos:
action Valor fijo "create"
parámetros obligatorios
appkey Es un valor alfanumérico ej: 9715fc4b-17a8-4e56-ac7a-6deb5fd46u71 que se puede pedir
a la cuenta de soporte de Pilot u obtenerlo de la configuración de Pilot.
parámetros obligatorios
debug Código numérico, flag, que permite testear el servicio sin ingresar el Lead en Pilot®.
0 = no debug, se ejecuta el servicio en modo normal. 1 = en modo debug, no se ingresa el Lead en Pilot®. Ej: 0 (no debug)
notification_email Cuenta de mail para recibir una copia del dato ingresado.
pilot_firstname Nombre del Lead
pilot_lastname Apellido del Lead
pilot_phone Teléfono del Lead
pilot_cellphone Teléfono celular del Lead
pilot_email E-mail del Lead
pilot_contact_type_id código numérico del tipo de contacto del dato.
1: Electrónico, 2: Telefónico , 3: Entrevista
pilot_business_type_id código numérico del tipo negocio del dato.
1: 0km , 2: Usados, 3: Plan de Ahorro
pilot_origin_id Deprecado
pilot_suborigin_id Código numérico del suborigen del Lead, que se obtiene de la lista de orígenes
de datos en el módulo de administración Ej: 1 (Landing)
pilot_notes Notas de Lead
pilot_assigned_user Cuenta de usuario de Pilot a la que se le quiere asignar el dato. En este caso la asignación manual del dato
tiene prelación por sobre los grupos de captura de datos Ej: cuentausuario@dominio.com
pilot_car_brand Marca del vehículo de interés Ej: Ford
pilot_car_model Modelo del vehículo de interés Ej: Fiesta
pilot_city Ciudad de ubicación del dato Ej: Capital Federal
pilot_province Provincia de ubicación del dato Ej: Buenos Aires
pilot_country País de ubicación del dato Ej: Argentina
pilot_vendor_name Nombre del proveedor del dato
pilot_vendor_email E-mail del proveedor del dato
pilot_vendor_phone Teléfono del proveedor del dato
pilot_product_code Código de Producto según la lista de precios de Pilot. Esto hace que el sistema genere automáticamente
una oferta de interés para el lead.

La lista de productos se puede obtener del endpoint masters/read.php

Los productos y códigos pueden variar de mes a mes según el alta o baja de las marcas y la agencia.
pilot_provider_service Nombre del servicio que provee el datos. Es un descriptivo del origen.
pilot_provider_url URL del servicio que recolecto el dato.
pilot_client_identity_document Documento de Identidad del Lead
pilot_tracking_id Código de seguimiento
pilot_client_ip Ip del cliente
pilot_best_contact_time Horario de contacto preferido del Lead
OBLIGATORIO

Formato de Salida

Cada llamada exitosa a la API retorna un mensaje en formato JSON con información de la ejecución del servicio
o los errores del mismo. Ejemplo devolución en caso de error:

{
	"success":valor boolean - true o false,
	"message":mensaje del resultado,
	"data":detalle del error
}
Ejemplo: 
{
	"success":false,
	"message":"Error",
	"data":"El parametro requerido appkey no fue seteado"
}

Ejemplo de devolución en caso de ejecución correcta:

										
{
	"success":valor boolean - true o false,
	"message":mensaje del resultado,
	"data":{
		"message": resultado,
		"assigned_user_id": id del usuario Pilot asignado. Si  no se asigna el tag no es enviado,
		"success":valor boolean - true o false indica que se inserto en la base correctamente,
		"id": identificador del dato dado de alta. Es un valor numerico
	}
}
Ejemplo: 
{
	"success":true,
	"message":"Success",
	"data":{
		"message":"(3.2) El servicio de carga de datos se ejecuto correctamente.",
		"assigned_user_id":80,
		"success":true,
		"id":8855
	}
}
									
									

Código de Ejemplo llamada PHP Curl

Copiar y pegar el siguiente código en un archivo con extensión .PHP
Luego modificar los parámetros de configuración y probar con un formulario que tenga como acción esta página.
También puedes bajar un ejemplo de código de formulario para agregar la creatividad aquí

Bajar código
<?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 pueden venir de un formulario
$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() ;
// 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;
}
?>

Bajar código de ejemplo

Bajar código

Formato

El formato del mail es un ADF (xml de información) que tiene el siguiente contenido. En este caso la información que se puede enviar en el mail es más amplia y con mayor información.

Formato del mail: preferentemente texto plano.

Parámetros

Los datos consignados son a modo de ejemplo para que se entienda el contenido.
													
<?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 complete 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["Estoy interesado en comprar un Ford Fiesta"]]>
            </comments>
            
        </customer>
        <vendor>
            <contact>
                <name part="full"></name>
                <email></email>
                <phone></phone>
            </contact>
        </vendor>
        <provider>
            <name>proveedor de datos</name>
            <service>Landing Venta Ford Fiesta</service>
            <notification_email></notification_email >
            <debug>0</debug>
        </provider>
    </prospect>
    <format>
        <formtype>pilot</formtype>
        <formversion>1</formversion>
        <key></key>
    </format>
</adf>
											

Los parámetros informados en azul son constantes y no deben cambiarse.

Los parámetros informados en verde son opcionales y sirven para ampliar la información para el vendedor

Los parámetros informados en rojo son los básicos del mensaje y son obligatorios

Si algún dato no se envía, el tag tiene que informarse en blanco. O sea, el mensaje debe ser completo

Ej:

 <make> </make>

Código de ejemplo 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;
}


                ?>