Odnos nos permite crear automatizaciones para la alimentación de datos desde cualquier canal gracias a su servicio API Rest, para este post hablaremos sobre la creación de clientes vía API.
URL de Endpoint
Para consumir este servicio haremos un envío por método POST a la siguiente URL:
https://api.odnos.app/v1/customers/do/add
Autorización
El servicio API requiere de una autenticación de tipo API Key el cual se debe especificar en el encabezado de la solicitud.
Key | API |
Value | <ODNOS-API-KEY> |
Agregar a | Encabezado |
Ejemplo cURL de autenticación en encabezado:
--header 'API: <ODNOS-API-KEY>'
Parámetros a enviar (Body request)
A continuación te listaremos los parámetros que permite la API que se agregan al objeto Customer (cliente), estos parámetros se definen en dos tipos:
- Datos básicos de objeto: son los datos que todos los objetos clientes deben tener.
- Metadatos de objeto: son los datos personalizados para cada cuenta de Odnos.
Parámetros del objeto
Todos los objetos clientes cuentan con estos datos y los puedes enviar de la siguiente forma:
Campo | Requerido / Opcional | Descripción |
name | Requerido | Nombre completo del cliente. |
Requerido | Correo electrónico. | |
phone | Requerido | Teléfono (a 10 dígitos) |
company | Opcional | Nombre de la empresa donde trabaja. |
idUser | Opcional | ID del usuario asignado al cual se le asignará el cliente, si no se envía se asignará automáticamente al usuario establecido en la configuración de la cuenta. |
branch | Opcional | ID de la sucursal asignada para el cliente, si no se envía se asignará a la matriz de forma automática. |
idProduct | Opcional | ID de producto de interés del usuario. |
nickname | Opcional | Nombre de usuario del cliente (se usa solo si hay utilidad o funcionalidad en algún servicio enlazado). |
jobTitle | Opcional | Título o puesto de trabajo. |
bday | Opcional | Fecha de nacimiento, debe ser en formato YYYY-MM-DD (ej. 1992-09-20) |
gender | Opcional | Género. Datos aceptados: male, female. |
deal | Opcional | Monto del cliente (monto de préstamo, monto de contrato, monto de compra, etc.) |
source | Opcional | Nombre de la fuente de origen (ej. google, web_principal). |
medium | Opcional | Nombre del medio de origen (ej. anuncio_busqueda) |
campaign | Opcional | Campaña o nombre de la campaña de origen (ej. campana_busqueda) |
term | Opcional | Término con el cual se realizó la búsqueda o apareció el anuncio (ej. desarrollo_software) |
content | Opcional | Contenido por el cual se generó la conversión. |
element | Opcional | Elemento por el cual se realizó la conversión (ej. form, chatbot, form_registro, etc.) |
gclid | Opcional | Click ID de campaña de Google. |
fbclid | Opcional | Click ID de campaña de Facebook. |
msclkid | Opcional | Click ID de campaña de Bing o red de Microsoft. |
sourcelurl | Opcional | URL por la cual se realizó la conversión (ej. https://anubbe.com/crms) |
referralurl | Opcional | URL referencia a la cual se llegó a la página de conversión (ej. si viene de Google la referencia debe ser https://www.google.com). |
browserName | Opcional | Nombre del navegador del usuario. |
browserVersion | Opcional | Versión del navegador del usuario. |
browserPlatform | Opcional | Sistema operativo del usuario. |
browserDevice | Opcional | Tipo de dispositivo del usuario (tablet, teléfono, escritorio, etc.) |
country | Opcional | Código de país del usuario a dos caracteres (ej. MX). Si se envía se usará como código de país para el teléfono recibido. |
Metadatos de objeto
La personalización del objeto de cliente es una realidad en Odnos, tú puedes escoger la información personalizada que necesites saber de cada cliente y también puedes envíar esa información a través de la API, para hacerlo solo debes enviar lo en el cuerpo de la solicitud como variable y su valor, ejemplo:
mi_variable_personalizada=valor_que_tendra_mi_variable
Para consultar el nombre de la variable deberás entrar en tu cuenta de Odnos e ir a la ruta Configuración > Clientes > Metadatos en donde encontrarás los metadatos existentes para los clientes y su nombre de variable.
Ejemplos de consumo de API
cURL
curl --location --request POST 'https://api.odnos.app/v1/customer/do/add' \
--header 'API: <ODNOS-API-KEY>' \
--form 'name="Fernando Vazquez"' \
--form 'phone="5555555555"' \
--form 'email="nombre@anubbe.com"'
--form 'mi_variable="valor_perosnalizado"'
PHP cURL
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.odnos.app/v1/customer/do/add',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('name' => 'Fernando Vazquez','phone' => '5555555555','email' => 'hola@anubbe.com', 'mi_variable' => 'valor_personalizado'),
CURLOPT_HTTPHEADER => array(
'API: <ODNOS-API-KEY>'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
NodeJS Request
var request = require('request');
var options = {
'method': 'POST',
'url': 'https://api.odnos.app/v1/customer/do/add',
'headers': {
'API': '<ODNOS-API-KEY>'
},
formData: {
'name': 'Fernando Vazquez',
'phone': '5555555555',
'email': 'hola@anubbe.com',
'mi_variable': 'valor_personalizado'
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
Respuestas posibles
Existen tres tipos de respuestas que el servicio API Rest te dará:
Tipo | Respuesta JSON | Descripción |
Aprobada / Creado | { “status”: true, “msg”: “Cliente creado”, “idCustomer”: “ID de cliente creado“ } | El cliente fue creado correctamente en Odnos. |
Aprobada / Actualizado | { “status”: true, “msg”: “Cliente actualizado”, “idCustomer”: “ID de cliente actualizado“ } | Si el cliente ya existía previamente en la cuenta de Odnos, este se actualizará sin reemplazar los valores existentes, en caso de datos de contacto como correo electrónico y teléfono se agregarán estos datos, para los demás datos se agregará un resumen en el historial del cliente. |
Rechazada | { “status”: false, “msg”: “Mensaje de error“ } | En caso de error el estatus a regresar será false y en el mensaje se indicará el problema. |