"query":"SELECT 'upload_ats_historico' AS nombre_script,'NO OK' AS is_today WHERE NOT EXISTS (SELECT 1 FROM z_procesos_python.scripts_ejecutados WHERE nombre_script = 'upload_ats_historico' AND ultima_ejecucion >= (NOW() AT TIME ZONE 'America/Argentina/Buenos_Aires') - INTERVAL '5 minutes')\n",
"options":{}
},
"type":"n8n-nodes-base.postgres",
"typeVersion":2.6,
"position":[
16,
-480
],
"id":"9ed744a2-2d43-4cf7-adbd-808bdc00610b",
"name":"Execute a SQL query",
"alwaysOutputData":true,
"credentials":{
"postgres":{
"id":"MvTDzEXCz8wlb95N",
"name":"Postgres account en pgsql-prd"
}
}
},
{
"parameters":{
"conditions":{
"options":{
"caseSensitive":true,
"leftValue":"",
"typeValidation":"strict",
"version":2
},
"conditions":[
{
"id":"2dbc024a-cb61-4bb5-b16d-4f2ac3451b80",
"leftValue":"={{ $('Execute a SQL query').item.json.is_today === \"NO OK\" }}",
"rightValue":"true",
"operator":{
"type":"boolean",
"operation":"true",
"singleValue":true
}
}
],
"combinator":"and"
},
"options":{}
},
"type":"n8n-nodes-base.if",
"typeVersion":2.2,
"position":[
240,
-480
],
"id":"de23f7c2-b50b-415a-b4cf-e9dce64d6540",
"name":"If1"
},
{
"parameters":{
"operation":"executeQuery",
"query":"SELECT 'bajada_claro' AS nombre_script,'NO OK' AS is_today WHERE NOT EXISTS (SELECT 1 FROM z_procesos_python.scripts_ejecutados WHERE nombre_script = 'bajada_claro' AND ultima_ejecucion >= (NOW() AT TIME ZONE 'America/Argentina/Buenos_Aires') - INTERVAL '5 minutes')\n",
"html":"=Falló la ejecución del proceso:<br>\n<p>{{ $('Email Trigger (IMAP)').item.json[\"textPlain\"].toLowerCase().includes(\"upload_ats_historico\") ? \"upload_ats_historico\" : \"\" }}\n\n{{ $('Email Trigger (IMAP)').item.json[\"textPlain\"].toLowerCase().includes(\"bajada_claro\") ? \"bajada_claro\" : \"\" }}\n\n{{ $('Email Trigger (IMAP)').item.json[\"textPlain\"].toLowerCase().includes(\"upload_cto\") ? \"upload_cto\" : \"\" }}\n\n{{ $('Email Trigger (IMAP)').item.json[\"textPlain\"].toLowerCase().includes(\"adecuacion_drop_cto\") ? \"adecuacion_drop_cto\" : \"\" }}\n</p>\n<br>Revisar el origen de los datos o contactarse con el área.",
"query":"SELECT 'upload_cto' AS nombre_script,'NO OK' AS is_today WHERE NOT EXISTS (SELECT 1 FROM z_procesos_python.scripts_ejecutados WHERE nombre_script = 'upload_cto' AND ultima_ejecucion >= (NOW() AT TIME ZONE 'America/Argentina/Buenos_Aires') - INTERVAL '5 minutes')",
"options":{}
},
"type":"n8n-nodes-base.postgres",
"typeVersion":2.6,
"position":[
16,
-32
],
"id":"9c62c799-f918-4d59-9d6d-55043309a8ed",
"name":"Execute a SQL query2",
"alwaysOutputData":true,
"credentials":{
"postgres":{
"id":"MvTDzEXCz8wlb95N",
"name":"Postgres account en pgsql-prd"
}
}
},
{
"parameters":{
"operation":"executeQuery",
"query":"SELECT 'adecuacion_drop_cto' AS nombre_script,'NO OK' AS is_today WHERE NOT EXISTS (SELECT 1 FROM z_procesos_python.scripts_ejecutados WHERE nombre_script = 'adecuacion_drop_cto' AND ultima_ejecucion >= (NOW() AT TIME ZONE 'America/Argentina/Buenos_Aires') - INTERVAL '5 minutes')",
"options":{}
},
"type":"n8n-nodes-base.postgres",
"typeVersion":2.6,
"position":[
16,
192
],
"id":"393686bf-f523-4fa4-bd8f-d9ea76200dfd",
"name":"Execute a SQL query3",
"alwaysOutputData":true,
"credentials":{
"postgres":{
"id":"MvTDzEXCz8wlb95N",
"name":"Postgres account en pgsql-prd"
}
}
},
{
"parameters":{
"conditions":{
"options":{
"caseSensitive":true,
"leftValue":"",
"typeValidation":"strict",
"version":2
},
"conditions":[
{
"id":"2dbc024a-cb61-4bb5-b16d-4f2ac3451b80",
"leftValue":"={{ $('Execute a SQL query1').item.json.is_today === \"NO OK\" }}",
"rightValue":"true",
"operator":{
"type":"boolean",
"operation":"true",
"singleValue":true
}
}
],
"combinator":"and"
},
"options":{}
},
"type":"n8n-nodes-base.if",
"typeVersion":2.2,
"position":[
240,
-240
],
"id":"b37a40de-a5d2-4f4d-b204-6d810e261654",
"name":"If3"
},
{
"parameters":{
"conditions":{
"options":{
"caseSensitive":true,
"leftValue":"",
"typeValidation":"strict",
"version":2
},
"conditions":[
{
"id":"2dbc024a-cb61-4bb5-b16d-4f2ac3451b80",
"leftValue":"={{ $('Execute a SQL query2').item.json.is_today === \"NO OK\" }}",
"rightValue":"true",
"operator":{
"type":"boolean",
"operation":"true",
"singleValue":true
}
}
],
"combinator":"and"
},
"options":{}
},
"type":"n8n-nodes-base.if",
"typeVersion":2.2,
"position":[
240,
-32
],
"id":"c9a4af71-f1d8-400c-897f-13bda5a26608",
"name":"If4"
},
{
"parameters":{
"conditions":{
"options":{
"caseSensitive":true,
"leftValue":"",
"typeValidation":"strict",
"version":2
},
"conditions":[
{
"id":"2dbc024a-cb61-4bb5-b16d-4f2ac3451b80",
"leftValue":"={{ $('Execute a SQL query3').item.json.is_today === \"NO OK\" }}",
"html":"=Se envió a ejecutar un script NO existente. La lista de los scripts válidos es:\n<br>\n<br>upload_ats_historico\n<br>bajada_claro\n<br>upload_cto\n<br>adecuacion_drop_cto\n<br>oltping\n\n",
"jsCode":"// Obtenemos el objeto original\nconst devicesObj = items[0].json;\n\n// Creamos un array con nombre y datos parseados\nconst devicesArray = Object.entries(devicesObj).map(([name, data]) => {\n const parsed = JSON.parse(data);\n parsed.deviceName = name; // Agregamos el nombre del dispositivo\n return parsed;\n});\n\n// Devolvemos cada dispositivo como un item separado\nreturn devicesArray.map(device => ({ json: device }));\n"
"x-received":"by 2002:a17:90b:51c7:b0:340:a961:80c9 with SMTP id 98e67ed59e1d1-3434c575692mr3358245a91.30.1762517788682; Fri, 07 Nov 2025 04:16:28 -0800 (PST)",