main
n8n-dialia-gestransfers
Descripción
Nodo personalizado para n8n que permite la integración con la API de Gestransfers para la gestión automatizada de reservas de traslados y transfers.
Desarrollado por: Carlos Presa del equipo de Dialia
Características
Este nodo permite:
- ✅ Insertar nuevas reservas en el sistema Gestransfers
- ✅ Gestión completa de datos del cliente (nombre, teléfono, email, dirección)
- ✅ Configuración detallada de traslados (fechas, horas, origen, destino)
- ✅ Soporte para diferentes tipos de servicio (privado, compartido)
- ✅ Gestión de información de vuelos (llegada y salida)
- ✅ Servicios adicionales (extras, cartel de bienvenida, etc.)
- ✅ Autenticación segura mediante credenciales encriptadas
- ✅ Manejo de errores y continuación en caso de fallo
Instalación
Desde npm (recomendado)
npm install n8n-dialia-gestransfers
Instalación manual
- Clona este repositorio:
git clone https://github.com/dialia/n8n-dialia-gestransfers.git
- Instala las dependencias:
cd n8n-dialia-gestransfers
npm install
- Compila el proyecto:
npm run build
- Enlaza el paquete globalmente:
npm link
- En tu instalación de n8n, enlaza el paquete:
npm link n8n-dialia-gestransfers
Configuración
1. Credenciales
Antes de usar el nodo, debes configurar las credenciales de Gestransfers:
- Ve a Configuración > Credenciales en n8n
- Crea nuevas credenciales de tipo "API de Gestransfers"
- Introduce:
- ID Transportista: Tu identificador de transportista proporcionado por Gestransfers
- Token de Autenticación: Tu token de autenticación proporcionado por Gestransfers
2. Configuración del Nodo
El nodo incluye los siguientes campos:
Campos Obligatorios
| Campo | Tipo | Descripción |
|---|---|---|
| Nombre del Cliente | Texto | Nombre completo del cliente |
| Fecha de Ida | Fecha | Fecha del traslado (YYYY-MM-DD) |
| Hora de Ida | Texto | Hora del traslado (HH:MM) |
| Fecha de Recogida | Fecha | Fecha de recogida (YYYY-MM-DD) |
| Hora de Recogida | Texto | Hora de recogida (HH:MM) |
| Tipo de Traslado | Opción | Solo Ida, Solo Vuelta, Ida y Vuelta |
| Hotel | Texto | Nombre del hotel |
| Tipo de Servicio | Opción | Servicio Privado o Servicio Compartido |
| Origen del Traslado | Texto | Lugar de origen del traslado |
| Destino del Traslado | Texto | Lugar de destino del traslado |
| Tipo de Servicio | Texto | Categoría del servicio (generalmente "Traslado") |
| Número de Adultos | Número | Cantidad de pasajeros adultos |
| Importe Total | Número | Precio del traslado en euros |
| Estado de la Reserva | Opción | Confirmada, Pendiente, Cancelada |
| Teléfono del Cliente | Texto | Número de contacto del cliente |
| Email del Cliente | Texto | Dirección de email del cliente |
Información Adicional (Opcional)
| Campo | Tipo | Descripción |
|---|---|---|
| Paradas Intermedias | Texto | Paradas adicionales durante el traslado |
| Tipo de Vehículo | Texto | Tipo de vehículo preferido |
| Importe Pagado con Tarjeta | Número | Importe pagado con tarjeta |
| Importe para Facturación | Número | Importe para facturación |
| Observaciones de la Reserva | Texto | Comentarios adicionales sobre la reserva |
| Número de Pasaporte | Texto | Número de pasaporte del cliente |
| Dirección del Cliente | Texto | Dirección completa del cliente |
| Ciudad del Cliente | Texto | Ciudad/población del cliente |
| Número de Vuelo de Llegada | Texto | Código de vuelo de llegada |
| Número de Vuelo de Salida | Texto | Código de vuelo de salida |
| Servicios Extras | Texto | Servicios adicionales (ej: silla para niños) |
| Texto del Cartel de Bienvenida | Texto | Texto personalizado para cartel |
| Porcentaje de Comisión | Número | Porcentaje de comisión |
| Idioma Preferido | Opción | Español, Inglés, Francés, Alemán, Italiano |
| Origen de la Reserva | Texto | Canal de origen de la reserva |
Ejemplos de Uso
Ejemplo 1: Reserva Básica
{
"nombreCliente": "Juan Pérez García",
"fechaIda": "2025-07-15",
"horaIda": "14:30",
"fechaRecogida": "2025-07-15",
"horaRecogida": "14:30",
"tipoTraslado": "IDA",
"hotel": "Hotel Majestic",
"servicio": "Privado",
"nombreDestinoDesde": "AEROPUERTO DE PALMA",
"nombreDestinoHasta": "PALMA CENTRO",
"tipo": "Traslado",
"numAdultos": 2,
"importe": 45,
"estado": "Confirmada",
"tfnoCliente": "+34666777888",
"emailCliente": "juan.perez@email.com"
}
Ejemplo 2: Reserva con Información de Vuelo
{
"nombreCliente": "María González López",
"fechaIda": "2025-08-20",
"horaIda": "16:45",
"fechaRecogida": "2025-08-20",
"horaRecogida": "16:45",
"tipoTraslado": "IDA",
"hotel": "Hotel Sol y Mar",
"servicio": "Privado",
"nombreDestinoDesde": "AEROPUERTO DE PALMA",
"nombreDestinoHasta": "ALCUDIA",
"tipo": "Traslado",
"numAdultos": 4,
"importe": 75,
"estado": "Confirmada",
"tfnoCliente": "+34600111222",
"emailCliente": "maria.gonzalez@email.com",
"additionalOptions": {
"numeroVueloLlegada": "VY3204",
"extras": "2 sillas para niños",
"cartelBienvenida": "Familia González",
"observacionesReserva": "Cliente viaja con equipaje extra"
}
}
Respuesta del Nodo
El nodo devuelve un objeto JSON con la siguiente estructura:
{
"exito": true,
"respuesta": "Respuesta de la API de Gestransfers",
"datosEnviados": {
// Datos enviados en la petición
},
"mensaje": "Reserva creada exitosamente en Gestransfers"
}
En caso de error:
{
"exito": false,
"error": "Descripción del error",
"mensaje": "Error al crear la reserva en Gestransfers"
}
Flujos de Trabajo Sugeridos
1. Integración con Formularios Web
- Webhook HTTP → Recibe datos del formulario web
- Gestransfers → Crea la reserva automáticamente
- Enviar Email → Envía confirmación al cliente
2. Procesamiento de Archivos CSV
- Archivo CSV → Lee archivo con múltiples reservas
- Gestransfers → Procesa cada reserva individualmente
- Google Sheets → Actualiza estado de procesamiento
3. Integración con CRM
- Trigger CRM → Nueva oportunidad de venta
- Gestransfers → Crea reserva provisional
- Actualizar CRM → Actualiza registro con detalles de reserva
Solución de Problemas
Error de Autenticación
- Problema: "Error de autenticación"
- Solución: Verifica que el ID de transportista y token sean correctos en las credenciales
Error de Campos Requeridos
- Problema: "Falta campo obligatorio"
- Solución: Asegúrate de que todos los campos obligatorios estén completos
Error de Formato de Fecha
- Problema: "Formato de fecha inválido"
- Solución: Usa el formato YYYY-MM-DD para fechas y HH:MM para horas
Error de Conexión
- Problema: "Tiempo de conexión agotado"
- Solución: Verifica tu conexión a internet y que la API de Gestransfers esté disponible
Limitaciones
- El nodo actualmente solo soporta la operación "Insertar Reserva"
- Las fechas deben estar en formato ISO (YYYY-MM-DD)
- Los números de teléfono deben incluir el código de país (+34 para España)
- El campo "Origen de la Reserva" por defecto es "n8n - Dialia"
Soporte Técnico
Para soporte técnico o reportar problemas:
- Email: carlos.presa@dialia.com
- Issues: GitHub Issues
Contribuir
Las contribuciones son bienvenidas. Por favor:
- Fork el repositorio
- Crea una rama para tu feature (
git checkout -b feature/nueva-funcionalidad) - Commit tus cambios (
git commit -am 'Añade nueva funcionalidad') - Push a la rama (
git push origin feature/nueva-funcionalidad) - Crea un Pull Request
Licencia
Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENSE.md para más detalles.
Changelog
v1.0.0
- Lanzamiento inicial
- Soporte para insertar reservas
- Autenticación con credenciales de Gestransfers
- Campos obligatorios y opcionales completos
- Documentación completa en español
- Interfaz de usuario en castellano
Desarrollado con ❤️ por Carlos Presa - Equipo Dialia
Languages
TypeScript
97%
JavaScript
3%