Este workflow en n8n sincroniza reservas desde Smoobu, las compara con las ya registradas en Google Sheets y envía mensajes personalizados por WhatsApp según el alojamiento reservado.
Creado: 2025-04-04
20 nodos
Instrucciones
Editar Workflow
Visualización del Workflow
{
"nodes": [
{
"parameters": {
"url": "https://login.smoobu.com/api/reservations",
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "pageSize",
"value": "100"
},
{
"name": "page",
"value": "1"
}
]
},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Api-Key",
"value": "1uF4WhxN73dDgYBCgmuSesV03qTzOzByjRVgNP3Ccq"
},
{
"name": "Cache-Control",
"value": "no-cache"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
-1540,
-700
],
"id": "9bf3d8b0-6f9d-4b08-b3c3-878f4d7f9008",
"name": "HTTP Request",
"alwaysOutputData": true
},
{
"parameters": {
"operation": "append",
"documentId": {
"__rl": true,
"value": "1JcEG_VrhHyxCuLRZBIlq5J9kzkWU8fWzS_KBMJrqkY4",
"mode": "id"
},
"sheetName": {
"__rl": true,
"value": "gid=0",
"mode": "list",
"cachedResultName": "Hoja 1",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1JcEG_VrhHyxCuLRZBIlq5J9kzkWU8fWzS_KBMJrqkY4/edit#gid=0"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"Vivienda reserva": "={{ $json.apartment.name }}",
"Fecha llegada": "={{ $json.arrival.toDateTime().format('dd-LL-yyyy') }}",
"Fecha Salida": "={{ $json.departure.toDateTime().format('dd-LL-yyyy') }}",
"Nombre": "={{ $json.firstname }} {{ $json.lastname }}",
"Telefono": "={{ $json.phone.replace(/\\+/g, '').replace(/\\s+/g, '') }}",
"Precio": "={{ $json.price }}",
"id reserva": "={{ $json.id }}",
"Email": "={{ $json.email }}",
"Enviado Whatsapp Checking Scan": "NO"
},
"matchingColumns": [],
"schema": [
{
"id": "id reserva",
"displayName": "id reserva",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "Nombre",
"displayName": "Nombre",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "Telefono",
"displayName": "Telefono",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "Email",
"displayName": "Email",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "Vivienda reserva",
"displayName": "Vivienda reserva",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "Precio",
"displayName": "Precio",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "Fecha llegada",
"displayName": "Fecha llegada",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "Fecha Salida",
"displayName": "Fecha Salida",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "Enviado Whatsapp Checking Scan",
"displayName": "Enviado Whatsapp Checking Scan",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.5,
"position": [
-520,
-700
],
"id": "dcec2dfd-1ea1-4723-866c-76bbd84a4ad9",
"name": "Google Sheets",
"credentials": {
"googleSheetsOAuth2Api": {
"id": "HMEqEpUPL7GLQUDf",
"name": "youjgatuve"
}
}
},
{
"parameters": {
"documentId": {
"__rl": true,
"value": "1JcEG_VrhHyxCuLRZBIlq5J9kzkWU8fWzS_KBMJrqkY4",
"mode": "id"
},
"sheetName": {
"__rl": true,
"value": "gid=0",
"mode": "list",
"cachedResultName": "Hoja 1",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1JcEG_VrhHyxCuLRZBIlq5J9kzkWU8fWzS_KBMJrqkY4/edit#gid=0"
},
"options": {
"outputFormatting": {
"values": {
"general": "UNFORMATTED_VALUE",
"date": "FORMATTED_STRING"
}
}
}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.5,
"position": [
-860,
-700
],
"id": "0aa1b1cd-7c38-433e-a2db-e8ae52b46383",
"name": "Google Sheets1",
"alwaysOutputData": true,
"credentials": {
"googleSheetsOAuth2Api": {
"id": "HMEqEpUPL7GLQUDf",
"name": "youjgatuve"
}
}
},
{
"parameters": {
"aggregate": "aggregateAllItemData",
"options": {}
},
"type": "n8n-nodes-base.aggregate",
"typeVersion": 1,
"position": [
-1060,
-700
],
"id": "9b1b88e5-a196-4134-bd2d-8719dbec1eb7",
"name": "Aggregate"
},
{
"parameters": {
"fieldToSplitOut": "bookings",
"options": {}
},
"type": "n8n-nodes-base.splitOut",
"typeVersion": 1,
"position": [
-1320,
-700
],
"id": "8d99cd19-7b0d-48aa-990d-61160b834c5d",
"name": "Split_out"
},
{
"parameters": {
"jsCode": "function compareIds(splitOutItems, googleSheetItems) {\n // Aseguramos que los items son arrays\n if (!Array.isArray(splitOutItems)) {\n splitOutItems = [splitOutItems];\n }\n \n // Obtenemos todos los IDs de reserva de Google Sheets\n const reservaIds = googleSheetItems.map(item => String(item.json['id reserva']));\n \n // Filtramos los items del Split_out que NO est\u00e1n en los IDs de reserva\n return splitOutItems.filter(splitItem => {\n const itemId = String(splitItem.json.id);\n return !reservaIds.includes(itemId);\n });\n}\n\n// Usamos todos los items de Google Sheets, no solo el primero\nreturn compareIds($('Split_out').all(), $input.all());"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
-680,
-700
],
"id": "1f224997-eba7-4aa2-80e6-0a51d7663e92",
"name": "Filtro en JS para comprobar si hay nuevas reservas"
},
{
"parameters": {
"familyName": "= {{ $('Google Sheets').item.json['Vivienda reserva'] }} - {{ $('Google Sheets').item.json['Fecha llegada'] }} - {{ $('Google Sheets').item.json.Nombre }} ",
"additionalFields": {
"phoneUi": {
"phoneValues": [
{
"type": "home",
"value": "= {{ $('Google Sheets').item.json['Telefono'] }}"
}
]
}
}
},
"type": "n8n-nodes-base.googleContacts",
"typeVersion": 1,
"position": [
140,
-700
],
"id": "fea438d5-ce38-4253-801a-e73aabd175f8",
"name": "Google Contacts",
"credentials": {
"googleContactsOAuth2Api": {
"id": "gw5hDfbsHlLFkwqe",
"name": "Google Contacts account"
}
}
},
{
"parameters": {
"rule": {
"interval": [
{
"field": "minutes"
}
]
}
},
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.2,
"position": [
-1780,
-700
],
"id": "4fc044cb-773e-42ae-9635-0f6556650890",
"name": "Schedule Trigger"
},
{
"parameters": {
"resource": "messages-api",
"instanceName": "Omoah",
"remoteJid": "+34653361573",
"messageText": "=\ud83c\udfe0 Tienes reserva para {{ $('Google Sheets').item.json['Vivienda reserva'] }}\n\ud83d\udcc5 El d\u00eda {{ $('Google Sheets').item.json['Fecha llegada'] }}\n\ud83d\udc64 De {{ $('Google Sheets').item.json.Nombre }}\n\ud83d\udcf1 Tel\u00e9fono: {{ $('Google Sheets').item.json.Telefono }}",
"options_message": {}
},
"type": "n8n-nodes-evolution-api.evolutionApi",
"typeVersion": 1,
"position": [
340,
-700
],
"id": "264e45cf-d54a-474a-8f0f-56efe01e6a22",
"name": "Evolution API Alba",
"credentials": {
"evolutionApi": {
"id": "E7p9CoWRC4s28yHr",
"name": "Evolution account"
}
}
},
{
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"leftValue": "={{ $('Google Sheets').item.json['Vivienda reserva'] }}",
"rightValue": "AL-ALBA",
"operator": {
"type": "string",
"operation": "equals"
}
}
],
"combinator": "and"
}
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "615ee1a9-7a1c-4462-8562-4f65ae565964",
"leftValue": "={{ $('Google Sheets').item.json['Vivienda reserva'] }}",
"rightValue": "COLUMBUS HOME",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
}
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "09ef2233-9dd6-4565-b52e-c09977cc22e3",
"leftValue": "={{ $('Google Sheets').item.json['Vivienda reserva'] }}",
"rightValue": "CASA ANA",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
}
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "23759b25-d5f2-4fe1-a994-80aee3f01fc3",
"leftValue": "={{ $('Google Sheets').item.json['Vivienda reserva'] }}",
"rightValue": "GOYA\u00b4S HOME",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
}
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "38812613-9451-4cfa-8547-627e000e5573",
"leftValue": "={{ $('Google Sheets').item.json['Vivienda reserva'] }}",
"rightValue": "PORTA NOVA\u00b4S HOME",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
}
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "bef8c51d-4e63-4f96-9b55-649474cb86bb",
"leftValue": "={{ $('Google Sheets').item.json['Vivienda reserva'] }}",
"rightValue": "DO\u00d1A ENGRACIA",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
}
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "148ba7a1-6266-4857-82de-0691d8292f3d",
"leftValue": "={{ $('Google Sheets').item.json['Vivienda reserva'] }}",
"rightValue": "CASA EL ABUELO TOM\u00c1S",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
}
}
]
},
"options": {}
},
"type": "n8n-nodes-base.switch",
"typeVersion": 3.2,
"position": [
520,
-800
],
"id": "0ea8385a-9b96-475e-aed8-40961b1e4425",
"name": "Switch"
},
{
"parameters": {
"resource": "messages-api",
"instanceName": "Omoah",
"remoteJid": "=+ {{ $('Google Sheets').item.json.Telefono}}",
"messageText": "=\u00a1Hola {{ $('Google Sheets').item.json.Nombre }}! \u00a1Gracias por reservar con nosotros!\n\n\ud83c\udfe0 Has reservado {{ $('Google Sheets').item.json['Vivienda reserva'] }}\n\ud83d\udcc5 Le esperamos el {{ $('Google Sheets').item.json['Fecha llegada'] }} a partir de las 15h\n\ud83d\udccd Direcci\u00f3n: Pasaje de Ayamonte N\u00ba5\n\n-PROCESO DE LLEGADA-\n\u2022 Unos d\u00edas antes de la llegada nos pondremos en contacto para acordar los detalles.\n\u2022 Disponemos de un dispositivo electr\u00f3nico para abrirle la puerta a distancia cuando llegue, por lo que puede llegar a partir de las 15h a la hora que desee.\n\u2022 Le agradecer\u00edamos que nos indique la hora aproximada de llegada para estar m\u00e1s pendientes.\n\n-APARTAMENTO-\n\u2022 El apartamento est\u00e1 completamente equipado para su estancia (s\u00e1banas, toallas, cafetera, secador, etc).\n\u2022 Puede consultar todos los servicios disponibles en el anuncio.\n\n-PARKING-\n\u2022 Este apartamento NO dispone de plaza de parking.\n\u2022 Hay aparcamiento gratuito disponible en los exteriores del edificio.\n\n\ud83d\udcf1 Si tiene cualquier duda, puede contactarnos en el 633 18 05 93. \u00a1Estamos a su entera disposici\u00f3n!\n\n\u00a1Un saludo!\nAlba",
"options_message": {}
},
"type": "n8n-nodes-evolution-api.evolutionApi",
"typeVersion": 1,
"position": [
920,
-1100
],
"id": "1bd193d1-8e32-4355-8fe4-58ee7c9b4a94",
"name": "Evolution API Huesped AL-ALBA",
"credentials": {
"evolutionApi": {
"id": "E7p9CoWRC4s28yHr",
"name": "Evolution account"
}
}
},
{
"parameters": {
"resource": "messages-api",
"instanceName": "Omoah",
"remoteJid": "=+ {{ $('Google Sheets').item.json.Telefono}}",
"messageText": "=\u00a1Hola {{ $('Google Sheets').item.json.Nombre }}! \u00a1Gracias por reservar con nosotros!\n\n\ud83c\udfe0 Has reservado {{ $('Google Sheets').item.json['Vivienda reserva'] }}\n\ud83d\udcc5 Le esperamos el {{ $('Google Sheets').item.json['Fecha llegada'] }} a partir de las 15h\n\ud83d\udccd Direcci\u00f3n: Calle Doce de Octubre N\u00ba9\n\n-PROCESO DE LLEGADA-\n\u2022 Unos d\u00edas antes de la llegada nos pondremos en contacto para acordar la entrada. Si pueden estimar aproximadamente su hora de llegada y comunic\u00e1rnosla desde ya a trav\u00e9s de Airbnb, se lo agradecemos.\n\n\u2022 Si hubiera alg\u00fan cambio en la hora prevista, por favor av\u00edsenos, ya que una persona se desplazar\u00e1 y le esperar\u00e1 en el apartamento.\n\n\u2022 La hora de entrada es a partir de las 15:00h, pero pueden dejar el equipaje y recoger la llave un poco antes si nos avisan con antelaci\u00f3n.\n\u2022 No se podr\u00e1 acceder antes porque es la hora de salida de los anteriores inquilinos y entre las 11:00h y las 15:00h se realizar\u00e1 la limpieza.\n\n-APARTAMENTO-\n\u2022 El apartamento est\u00e1 completamente equipado para su estancia (s\u00e1banas, toallas, cafetera, secador, etc).\n\u2022 Puede consultar todos los servicios disponibles en el anuncio.\n\n-PARKING-\n\u2022 Este apartamento NO dispone de plaza de parking.\n\u2022 Pueden aparcar f\u00e1cilmente a unos 8 minutos andando en la zona de la Calle Goya.\n\u2022 Si prefieren parking p\u00fablico de pago, tienen el parking La Libertad a unos 5 minutos andando.\n\n\ud83d\udcf1 Cualquier cosa que necesite, no dude en contactarnos al 633 18 05 93. \u00a1Estamos a su entera disposici\u00f3n!\n\n\u00a1Un saludo!",
"options_message": {}
},
"type": "n8n-nodes-evolution-api.evolutionApi",
"typeVersion": 1,
"position": [
920,
-880
],
"id": "3a29e1a7-514f-4e05-8f29-7b2d878d2aa1",
"name": "Evolution API Huesped COLUMBUS",
"credentials": {
"evolutionApi": {
"id": "E7p9CoWRC4s28yHr",
"name": "Evolution account"
}
}
},
{
"parameters": {
"resource": "messages-api",
"instanceName": "Omoah",
"remoteJid": "=+ {{ $('Google Sheets').item.json.Telefono}}",
"messageText": "=\u00a1Hola {{ $('Google Sheets').item.json.Nombre }}! \u00a1Gracias por reservar con nosotros!\n\n\ud83c\udfe0 Has reservado {{ $('Google Sheets').item.json['Vivienda reserva'] }}\n\ud83d\udcc5 Le esperamos el {{ $('Google Sheets').item.json['Fecha llegada'] }} a partir de las 15h\n\ud83d\udccd Direcci\u00f3n: Pasaje Pantoja N\u00ba9\n\n-PROCESO DE LLEGADA-\n\u2022 Unos d\u00edas antes de la llegada nos pondremos en contacto para acordar la entrada. Si pueden estimar aproximadamente su hora de llegada y comunic\u00e1rnosla desde ya a trav\u00e9s de Airbnb, se lo agradecemos.\n\n\u2022 Si hubiera alg\u00fan cambio en la hora prevista, por favor av\u00edsenos, ya que una persona se desplazar\u00e1 y le esperar\u00e1 en el apartamento.\n\n\u2022 La hora de entrada es a partir de las 15:00h.\n\u2022 No se podr\u00e1 acceder antes porque es la hora de salida de los anteriores inquilinos y entre las 11:00h y las 15:00h se realizar\u00e1 la limpieza.\n\n-APARTAMENTO-\n\u2022 El apartamento est\u00e1 completamente equipado para su estancia (s\u00e1banas, toallas, cafetera, secador, etc).\n\u2022 Puede consultar todos los servicios disponibles en el anuncio.\n\n-PARKING-\n\u2022 Este apartamento NO dispone de plaza de parking.\n\u2022 Pueden aparcar f\u00e1cilmente en los exteriores del edificio de manera gratuita.\n\n\ud83d\udcf1 Cualquier cosa que necesite, no dude en contactarnos al 633 18 05 93. \u00a1Estamos a su entera disposici\u00f3n!\n\n\u00a1Un saludo!",
"options_message": {}
},
"type": "n8n-nodes-evolution-api.evolutionApi",
"typeVersion": 1,
"position": [
920,
-720
],
"id": "f4294d14-70db-4431-aba2-28e98c032a4a",
"name": "Evolution API Huesped CASA ANA",
"credentials": {
"evolutionApi": {
"id": "E7p9CoWRC4s28yHr",
"name": "Evolution account"
}
}
},
{
"parameters": {
"resource": "messages-api",
"instanceName": "Omoah",
"remoteJid": "=+ {{ $('Google Sheets').item.json.Telefono}}",
"messageText": "=\u00a1Hola {{ $('Google Sheets').item.json.Nombre }}! \u00a1Gracias por reservar con nosotros!\n\n\ud83c\udfe0 Has reservado {{ $('Google Sheets').item.json['Vivienda reserva'] }}\n\ud83d\udcc5 Le esperamos el {{ $('Google Sheets').item.json['Fecha llegada'] }} a partir de las 15h\n\ud83d\udccd Direcci\u00f3n: Calle Goya 30\n\n-PROCESO DE LLEGADA-\n\u2022 Unos d\u00edas antes de la llegada nos pondremos en contacto para acordar la entrada. Si pueden estimar aproximadamente su hora de llegada y comunic\u00e1rnosla desde ya a trav\u00e9s de Airbnb, se lo agradecemos.\n\n\u2022 Si hubiera alg\u00fan cambio en la hora prevista, por favor av\u00edsenos, ya que una persona se desplazar\u00e1 y le esperar\u00e1 en el apartamento.\n\n\u2022 La hora de entrada es a partir de las 15:00h, pero pueden dejar el equipaje y recoger la llave un poco antes si nos avisan con antelaci\u00f3n.\n\u2022 No se podr\u00e1 acceder antes porque es la hora de salida de los anteriores inquilinos y entre las 11:00h y las 15:00h se realizar\u00e1 la limpieza.\n\n-APARTAMENTO-\n\u2022 El apartamento est\u00e1 completamente equipado para su estancia (s\u00e1banas, toallas, cafetera, secador, etc).\n\u2022 Puede consultar todos los servicios disponibles en el anuncio.\n\n-PARKING-\n\u2022 Este apartamento NO dispone de plaza de parking.\n\u2022 Pueden aparcar f\u00e1cilmente en los exteriores del edificio.\n\u2022 Si prefieren parking p\u00fablico de pago, tienen dos opciones:\n - Parking La Libertad a 5 minutos andando\n - Parking de la estaci\u00f3n de trenes a 8 minutos andando\n\n\ud83d\udcf1 Cualquier cosa que necesite, no dude en contactarnos al 633 18 05 93. \u00a1Estamos a su entera disposici\u00f3n!\n\n\u00a1Un saludo!",
"options_message": {}
},
"type": "n8n-nodes-evolution-api.evolutionApi",
"typeVersion": 1,
"position": [
920,
-560
],
"id": "1a83886a-fd42-45f6-95ec-e7e9a8a37115",
"name": "Evolution API Huesped GOYA\u00b4S HOME",
"credentials": {
"evolutionApi": {
"id": "E7p9CoWRC4s28yHr",
"name": "Evolution account"
}
}
},
{
"parameters": {
"resource": "messages-api",
"instanceName": "Omoah",
"remoteJid": "=+ {{ $('Google Sheets').item.json.Telefono}}",
"messageText": "=\u00a1Hola {{ $('Google Sheets').item.json.Nombre }}! \u00a1Gracias por reservar con nosotros!\n\n\ud83c\udfe0 Has reservado {{ $('Google Sheets').item.json['Vivienda reserva'] }}\n\ud83d\udcc5 Le esperamos el {{ $('Google Sheets').item.json['Fecha llegada'] }} a partir de las 15h\n\ud83d\udccd Direcci\u00f3n: Calle Barrionuevo 4\n\n-PROCESO DE LLEGADA-\n\u2022 Unos d\u00edas antes de la llegada nos pondremos en contacto para acordar la entrada. Si pueden estimar aproximadamente su hora de llegada y comunic\u00e1rnosla desde ya a trav\u00e9s de Airbnb, se lo agradecemos.\n\n\u2022 Si hubiera alg\u00fan cambio en la hora prevista, por favor av\u00edsenos, ya que una persona se desplazar\u00e1 y le esperar\u00e1 en el apartamento.\n\n\u2022 La hora de entrada es a partir de las 15:00h, pero pueden dejar el equipaje y recoger la llave a partir de las 12:15h si nos avisan con antelaci\u00f3n.\n\u2022 No se podr\u00e1 acceder antes porque es la hora de salida de los anteriores inquilinos y entre las 11:00h y las 15:00h se realizar\u00e1 la limpieza.\n\n-APARTAMENTO-\n\u2022 El apartamento est\u00e1 completamente equipado para su estancia (s\u00e1banas, toallas, cafetera, secador, etc).\n\u2022 Puede consultar todos los servicios disponibles en el anuncio.\n\n-PARKING-\n\u2022 Este apartamento NO dispone de plaza de parking.\n\u2022 Pueden aparcar f\u00e1cilmente y gratis a unos 5 minutos andando en la zona de:\n - Hernando de Magallanes\n - Calle Melilla\n\n\ud83d\udcf1 Cualquier cosa que necesite, no dude en contactarnos al 633 18 05 93. \u00a1Estamos a su entera disposici\u00f3n!\n\n\u00a1Un saludo!",
"options_message": {}
},
"type": "n8n-nodes-evolution-api.evolutionApi",
"typeVersion": 1,
"position": [
900,
-380
],
"id": "80e1088a-8837-40bc-827f-06383f72792b",
"name": "Evolution API Huesped PORTA NOVA\u00b4S HOME",
"credentials": {
"evolutionApi": {
"id": "E7p9CoWRC4s28yHr",
"name": "Evolution account"
}
}
},
{
"parameters": {
"resource": "messages-api",
"instanceName": "Omoah",
"remoteJid": "=+{{ $('Google Sheets').item.json.Telefono}}",
"messageText": "=Estimado/a {{ $('Google Sheets').item.json.Nombre }},\n\nGracias por reservar con nosotros. \u00a1Nos encantar\u00e1 recibirle!\n\n\ud83d\udcc5 Le esperamos el {{ $('Google Sheets').item.json['Fecha llegada'] }} a partir de las 15h\n\ud83d\udccd Direcci\u00f3n: Calle Roble 34, Urbanizaci\u00f3n Encinares de Alcolea 14610, Espa\u00f1a\n\n*Proceso de llegada:*\n\u2022 Unos d\u00edas antes de su llegada nos pondremos en contacto para coordinar la hora exacta de su entrada. Si ya tiene una estimaci\u00f3n de su hora de llegada, le agradecer\u00edamos que nos lo comunique. Esto nos permitir\u00e1 organizar mejor su recepci\u00f3n.\n\n\u2022 En caso de que haya alg\u00fan cambio en su hora de llegada, por favor inf\u00f3rmenos con antelaci\u00f3n, ya que una persona se desplazar\u00e1 para recibirle.\n\n\u2022 La hora de entrada es a partir de las 15:00h, ya que necesitamos tiempo, de 11:00h a 15:00h, para la limpieza y preparaci\u00f3n despu\u00e9s de la salida de los hu\u00e9spedes anteriores.\n\n*La casa:*\n\u2022 Est\u00e1 equipada con todo lo necesario para su comodidad: s\u00e1banas, toallas, cafetera, secador de pelo, WIFI, piscina, barbacoa, chimenea, parking, entre otros.\n\u2022 Si tiene alguna duda sobre los servicios disponibles, puede consultarlo en el anuncio o contactarnos.\n\n\ud83d\udcf1 Si tiene cualquier consulta o necesita asistencia adicional, no dude en contactarnos al 633 18 05 93. \u00a1Estamos a su disposici\u00f3n!\n\nUn cordial saludo,\nAlba",
"options_message": {}
},
"type": "n8n-nodes-evolution-api.evolutionApi",
"typeVersion": 1,
"position": [
900,
-20
],
"id": "f0eacf0b-d1e7-47c5-a3fb-2d5f507ad06b",
"name": "Evolution API Huesped CASA EL ABUELO TOM\u00c1S",
"credentials": {
"evolutionApi": {
"id": "E7p9CoWRC4s28yHr",
"name": "Evolution account"
}
}
},
{
"parameters": {
"resource": "messages-api",
"instanceName": "Omoah",
"remoteJid": "=+ {{ $('Google Sheets').item.json.Telefono}}",
"messageText": "=Estimado/a {{ $('Google Sheets').item.json.Nombre }},\n\nGracias por reservar con nosotros. \u00a1Nos encantar\u00e1 recibirle!\n\n\ud83d\udcc5 Le esperamos el {{ $('Google Sheets').item.json['Fecha llegada'] }} a partir de las 15h\n\ud83c\udfe0 {{ $('Google Sheets').item.json['Vivienda reserva'] }}\n\ud83d\udccd Direcci\u00f3n: Calle Do\u00f1a Engracia N\u00ba11-2\u00ba5, C\u00f3rdoba, Andaluc\u00eda 14002, Espa\u00f1a\n\n- PROCESO DE LLEGADA -\n\u2022 Unos d\u00edas antes de su llegada nos pondremos en contacto para coordinar la hora exacta de su entrada. Si ya tiene una estimaci\u00f3n de su hora de llegada, le agradecer\u00edamos que nos lo comunique a trav\u00e9s del chat de booking.com. Esto nos permitir\u00e1 organizar mejor su recepci\u00f3n.\n\n\u2022 En caso de que haya alguna modificaci\u00f3n en su hora prevista de llegada, por favor inf\u00f3rmenos con antelaci\u00f3n, ya que una persona se desplazar\u00e1 para recibirle en el apartamento.\n\n\u2022 Aunque la hora de entrada oficial es a partir de las 15:00h, puede dejar su equipaje y recoger la llave un poco antes, siempre que nos avise previamente.\n\n\u2022 No es posible acceder antes al apartamento porque necesitamos ese tiempo, de 11:00h a 15:00h, para la limpieza y preparaci\u00f3n despu\u00e9s de la salida de los hu\u00e9spedes anteriores.\n\n- APARTAMENTO -\n\u2022 El apartamento est\u00e1 equipado con todo lo necesario para que disfrute de una estancia c\u00f3moda: s\u00e1banas, toallas, cafetera, secador de pelo, WIFI, entre otros.\n\u2022 Si tiene alguna duda sobre los servicios disponibles, no dude en consultarlo en el anuncio o contactarnos directamente.\n\n- PARKING -\n\u2022 Este apartamento no dispone de plaza de aparcamiento.\n\u2022 Opciones de aparcamiento gratuito:\n - Zona de Calle Hernando de Magallanes (10 minutos a pie)\n - Calle Melilla (10 minutos a pie)\n\u2022 Opciones de parking p\u00fablico de pago:\n - Parking La Ribera (8 minutos a pie)\n - Parking Calle Sevilla 5 (12 minutos a pie)\n\n\ud83d\udcf1 Si tiene cualquier consulta o necesita asistencia adicional, no dude en contactarnos al 633 18 05 93. \u00a1Estamos a su disposici\u00f3n para ayudarle!\n\nUn cordial saludo,\nAlba\n{{ $('Google Sheets').item.json['Vivienda reserva'] }}",
"options_message": {}
},
"type": "n8n-nodes-evolution-api.evolutionApi",
"typeVersion": 1,
"position": [
900,
-200
],
"id": "b7f92a30-15b2-4aa9-a416-79ab50879a53",
"name": "Evolution API Huesped Do\u00f1a Engracia",
"credentials": {
"evolutionApi": {
"id": "E7p9CoWRC4s28yHr",
"name": "Evolution account"
}
}
},
{
"parameters": {
"promptType": "define",
"text": "=Entiendo, aqu\u00ed te propongo un prompt que incluye las reglas de validaci\u00f3n para la mayor\u00eda de pa\u00edses:\n\nVerifica si este n\u00famero telef\u00f3nico es un tel\u00e9fono M\u00d3VIL internacional v\u00e1lido:\n{{ $json.Telefono }}\n\nReglas de validaci\u00f3n por regi\u00f3n:\n\nEuropa:\n- Espa\u00f1a (34): Empieza por 6 o 7, 9 d\u00edgitos despu\u00e9s del prefijo\n- Francia (33): Empieza por 6 o 7, 9 d\u00edgitos despu\u00e9s del prefijo\n- Alemania (49): Empieza por 15-17, 10-11 d\u00edgitos despu\u00e9s del prefijo\n- Italia (39): Empieza por 3, 9-10 d\u00edgitos despu\u00e9s del prefijo\n- Reino Unido (44): Empieza por 7, 9 d\u00edgitos despu\u00e9s del prefijo\n- Portugal (351): Empieza por 9, 9 d\u00edgitos despu\u00e9s del prefijo\n- Irlanda (353): Empieza por 8, 9 d\u00edgitos despu\u00e9s del prefijo\n- Holanda (31): Empieza por 6, 8 d\u00edgitos despu\u00e9s del prefijo\n- B\u00e9lgica (32): Empieza por 4, 8 d\u00edgitos despu\u00e9s del prefijo\n- Suiza (41): Empieza por 7, 9 d\u00edgitos despu\u00e9s del prefijo\n- Austria (43): Empieza por 6, 9 d\u00edgitos despu\u00e9s del prefijo\n- Noruega (47): Empieza por 4 o 9, 8 d\u00edgitos despu\u00e9s del prefijo\n- Suecia (46): Empieza por 7, 9 d\u00edgitos despu\u00e9s del prefijo\n- Dinamarca (45): Empieza por 2 o 3, 8 d\u00edgitos despu\u00e9s del prefijo\n- Finlandia (358): Empieza por 4 o 5, 9 d\u00edgitos despu\u00e9s del prefijo\n- Polonia (48): Empieza por 5, 9 d\u00edgitos despu\u00e9s del prefijo\n- Rep\u00fablica Checa (420): Empieza por 6 o 7, 9 d\u00edgitos despu\u00e9s del prefijo\n- Hungr\u00eda (36): Empieza por 2 o 3, 8-9 d\u00edgitos despu\u00e9s del prefijo\n- Grecia (30): Empieza por 6, 9 d\u00edgitos despu\u00e9s del prefijo\n\nAm\u00e9rica:\n- Estados Unidos/Canad\u00e1 (1): 10 d\u00edgitos en total\n- M\u00e9xico (52): Empieza por 1-9, 10 d\u00edgitos despu\u00e9s del prefijo\n- Brasil (55): Empieza por 1-9, 9 d\u00edgitos despu\u00e9s del prefijo\n- Argentina (54): Empieza por 9, 10 d\u00edgitos despu\u00e9s del prefijo\n- Chile (56): Empieza por 9, 8 d\u00edgitos despu\u00e9s del prefijo\n- Colombia (57): Empieza por 3, 9 d\u00edgitos despu\u00e9s del prefijo\n- Per\u00fa (51): Empieza por 9, 9 d\u00edgitos despu\u00e9s del prefijo\n- Venezuela (58): Empieza por 4, 9 d\u00edgitos despu\u00e9s del prefijo\n\nAsia:\n- China (86): Empieza por 1, 10 d\u00edgitos despu\u00e9s del prefijo\n- Jap\u00f3n (81): Empieza por 70-90, 9 d\u00edgitos despu\u00e9s del prefijo\n- Corea del Sur (82): Empieza por 1, 9-10 d\u00edgitos despu\u00e9s del prefijo\n- India (91): Empieza por 6-9, 10 d\u00edgitos despu\u00e9s del prefijo\n- Indonesia (62): Empieza por 8, 9-11 d\u00edgitos despu\u00e9s del prefijo\n- Malasia (60): Empieza por 1, 9-10 d\u00edgitos despu\u00e9s del prefijo\n- Singapur (65): Empieza por 8-9, 8 d\u00edgitos despu\u00e9s del prefijo\n- Tailandia (66): Empieza por 6-9, 8-9 d\u00edgitos despu\u00e9s del prefijo\n\nOcean\u00eda:\n- Australia (61): Empieza por 4, 9 d\u00edgitos despu\u00e9s del prefijo\n- Nueva Zelanda (64): Empieza por 2, 8-9 d\u00edgitos despu\u00e9s del prefijo\n\n\u00c1frica:\n- Sud\u00e1frica (27): Empieza por 6-8, 9 d\u00edgitos despu\u00e9s del prefijo\n- Nigeria (234): Empieza por 7-9, 10 d\u00edgitos despu\u00e9s del prefijo\n- Egipto (20): Empieza por 1, 10 d\u00edgitos despu\u00e9s del prefijo\n- Marruecos (212): Empieza por 6-7, 9 d\u00edgitos despu\u00e9s del prefijo\n\nReglas generales:\n- El n\u00famero debe incluir el prefijo del pa\u00eds\n- No debe contener el s\u00edmbolo +\n- Solo debe contener n\u00fameros, sin espacios ni guiones\n- Si el n\u00famero comienza con el prefijo de un pa\u00eds, debe cumplir las reglas de formato de ese pa\u00eds\n\nResponde solo con:\n\"V\u00c1LIDO\" si el n\u00famero cumple con las reglas del pa\u00eds correspondiente seg\u00fan su prefijo\n\"NO V\u00c1LIDO\" si el n\u00famero no cumple con el formato o es un tel\u00e9fono fijo\n"
},
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"typeVersion": 1.5,
"position": [
-360,
-700
],
"id": "007e5a6f-40d2-4b12-91a5-e736852acb7b",
"name": "Basic LLM Chain"
},
{
"parameters": {
"model": "qwen-2.5-32b",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatGroq",
"typeVersion": 1,
"position": [
-260,
-480
],
"id": "182bdbee-c81c-44e0-8b17-cf76bbd47415",
"name": "Groq Chat Model",
"credentials": {
"groqApi": {
"id": "BpG3gxiaULhZvdSa",
"name": "Groq youjgatuve"
}
}
},
{
"parameters": {
"operation": "update",
"documentId": {
"__rl": true,
"value": "1JcEG_VrhHyxCuLRZBIlq5J9kzkWU8fWzS_KBMJrqkY4",
"mode": "list",
"cachedResultName": "Reservas",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1JcEG_VrhHyxCuLRZBIlq5J9kzkWU8fWzS_KBMJrqkY4/edit?usp=drivesdk"
},
"sheetName": {
"__rl": true,
"value": "gid=0",
"mode": "list",
"cachedResultName": "Hoja 1",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1JcEG_VrhHyxCuLRZBIlq5J9kzkWU8fWzS_KBMJrqkY4/edit#gid=0"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"id reserva": "={{ $('Google Sheets').item.json['id reserva'] }}",
"Es MOVIL O NO?": "={{ $json.text }}"
},
"matchingColumns": [
"id reserva"
],
"schema": [
{
"id": "id reserva",
"displayName": "id reserva",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "Nombre",
"displayName": "Nombre",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Telefono",
"displayName": "Telefono",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Email",
"displayName": "Email",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Vivienda reserva",
"displayName": "Vivienda reserva",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Precio",
"displayName": "Precio",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Fecha llegada",
"displayName": "Fecha llegada",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Fecha Salida",
"displayName": "Fecha Salida",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Enviado Whatsapp Checking Scan",
"displayName": "Enviado Whatsapp Checking Scan",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Es MOVIL O NO?",
"displayName": "Es MOVIL O NO?",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "row_number",
"displayName": "row_number",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"readOnly": true,
"removed": true
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.5,
"position": [
-40,
-700
],
"id": "ac591259-929a-4d60-82a7-0582aa1dfd7f",
"name": "Google Sheets2",
"credentials": {
"googleSheetsOAuth2Api": {
"id": "HMEqEpUPL7GLQUDf",
"name": "youjgatuve"
}
}
}
],
"connections": {
"HTTP Request": {
"main": [
[
{
"node": "Split_out",
"type": "main",
"index": 0
}
]
]
},
"Google Sheets": {
"main": [
[
{
"node": "Basic LLM Chain",
"type": "main",
"index": 0
}
]
]
},
"Google Sheets1": {
"main": [
[
{
"node": "Filtro en JS para comprobar si hay nuevas reservas",
"type": "main",
"index": 0
}
]
]
},
"Aggregate": {
"main": [
[
{
"node": "Google Sheets1",
"type": "main",
"index": 0
}
]
]
},
"Split_out": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
]
]
},
"Filtro en JS para comprobar si hay nuevas reservas": {
"main": [
[
{
"node": "Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"Google Contacts": {
"main": [
[
{
"node": "Evolution API Alba",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"Evolution API Alba": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
},
"Switch": {
"main": [
[
{
"node": "Evolution API Huesped AL-ALBA",
"type": "main",
"index": 0
}
],
[
{
"node": "Evolution API Huesped COLUMBUS",
"type": "main",
"index": 0
}
],
[
{
"node": "Evolution API Huesped CASA ANA",
"type": "main",
"index": 0
}
],
[
{
"node": "Evolution API Huesped GOYA\u00b4S HOME",
"type": "main",
"index": 0
}
],
[
{
"node": "Evolution API Huesped PORTA NOVA\u00b4S HOME",
"type": "main",
"index": 0
}
],
[
{
"node": "Evolution API Huesped Do\u00f1a Engracia",
"type": "main",
"index": 0
}
],
[
{
"node": "Evolution API Huesped CASA EL ABUELO TOM\u00c1S",
"type": "main",
"index": 0
}
]
]
},
"Basic LLM Chain": {
"main": [
[
{
"node": "Google Sheets2",
"type": "main",
"index": 0
}
]
]
},
"Groq Chat Model": {
"ai_languageModel": [
[
{
"node": "Basic LLM Chain",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Google Sheets2": {
"main": [
[
{
"node": "Google Contacts",
"type": "main",
"index": 0
}
]
]
}
},
"pinData": {},
"meta": {
"templateCredsSetupCompleted": true,
"instanceId": "8c0d374042396c5435afb8daf99456030e5a14309ef09fce91ae44c62a497bc6"
}
}