[IMPROVED] Flujo de Industrias Leads y documentación completa
- Añadido nuevo flujo "Industrias Leads" para procesar datos de empresas manufactureras - Renombrado flujo de cooperativas para mayor consistencia - Mejorada la organización visual de los nodos - Respaldados archivos de configuración críticos - Actualizada documentación del README.md con detalles de ambos flujos - Actualizado CHANGELOG.md a versión 0.4.0 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
a46319c86e
commit
bc03b5bead
7 changed files with 780 additions and 22 deletions
469
.node-red/.config.nodes.json.backup
Normal file
469
.node-red/.config.nodes.json.backup
Normal file
|
@ -0,0 +1,469 @@
|
||||||
|
{
|
||||||
|
"node-red": {
|
||||||
|
"name": "node-red",
|
||||||
|
"version": "4.0.9-git",
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"nodes": {
|
||||||
|
"junction": {
|
||||||
|
"name": "junction",
|
||||||
|
"types": [
|
||||||
|
"junction"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/common/05-junction.js"
|
||||||
|
},
|
||||||
|
"inject": {
|
||||||
|
"name": "inject",
|
||||||
|
"types": [
|
||||||
|
"inject"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/common/20-inject.js"
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"name": "debug",
|
||||||
|
"types": [
|
||||||
|
"debug"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/common/21-debug.js"
|
||||||
|
},
|
||||||
|
"complete": {
|
||||||
|
"name": "complete",
|
||||||
|
"types": [
|
||||||
|
"complete"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/common/24-complete.js"
|
||||||
|
},
|
||||||
|
"catch": {
|
||||||
|
"name": "catch",
|
||||||
|
"types": [
|
||||||
|
"catch"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/common/25-catch.js"
|
||||||
|
},
|
||||||
|
"status": {
|
||||||
|
"name": "status",
|
||||||
|
"types": [
|
||||||
|
"status"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/common/25-status.js"
|
||||||
|
},
|
||||||
|
"link": {
|
||||||
|
"name": "link",
|
||||||
|
"types": [
|
||||||
|
"link in",
|
||||||
|
"link out",
|
||||||
|
"link call"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/common/60-link.js"
|
||||||
|
},
|
||||||
|
"comment": {
|
||||||
|
"name": "comment",
|
||||||
|
"types": [
|
||||||
|
"comment"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/common/90-comment.js"
|
||||||
|
},
|
||||||
|
"global-config": {
|
||||||
|
"name": "global-config",
|
||||||
|
"types": [
|
||||||
|
"global-config"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/common/91-global-config.js"
|
||||||
|
},
|
||||||
|
"unknown": {
|
||||||
|
"name": "unknown",
|
||||||
|
"types": [
|
||||||
|
"unknown"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/common/98-unknown.js"
|
||||||
|
},
|
||||||
|
"function": {
|
||||||
|
"name": "function",
|
||||||
|
"types": [
|
||||||
|
"function"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/function/10-function.js"
|
||||||
|
},
|
||||||
|
"switch": {
|
||||||
|
"name": "switch",
|
||||||
|
"types": [
|
||||||
|
"switch"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/function/10-switch.js"
|
||||||
|
},
|
||||||
|
"change": {
|
||||||
|
"name": "change",
|
||||||
|
"types": [
|
||||||
|
"change"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/function/15-change.js"
|
||||||
|
},
|
||||||
|
"range": {
|
||||||
|
"name": "range",
|
||||||
|
"types": [
|
||||||
|
"range"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/function/16-range.js"
|
||||||
|
},
|
||||||
|
"template": {
|
||||||
|
"name": "template",
|
||||||
|
"types": [
|
||||||
|
"template"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/function/80-template.js"
|
||||||
|
},
|
||||||
|
"delay": {
|
||||||
|
"name": "delay",
|
||||||
|
"types": [
|
||||||
|
"delay"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/function/89-delay.js"
|
||||||
|
},
|
||||||
|
"trigger": {
|
||||||
|
"name": "trigger",
|
||||||
|
"types": [
|
||||||
|
"trigger"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/function/89-trigger.js"
|
||||||
|
},
|
||||||
|
"exec": {
|
||||||
|
"name": "exec",
|
||||||
|
"types": [
|
||||||
|
"exec"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/function/90-exec.js"
|
||||||
|
},
|
||||||
|
"rbe": {
|
||||||
|
"name": "rbe",
|
||||||
|
"types": [
|
||||||
|
"rbe"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/function/rbe.js"
|
||||||
|
},
|
||||||
|
"tls": {
|
||||||
|
"name": "tls",
|
||||||
|
"types": [
|
||||||
|
"tls-config"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/network/05-tls.js"
|
||||||
|
},
|
||||||
|
"httpproxy": {
|
||||||
|
"name": "httpproxy",
|
||||||
|
"types": [
|
||||||
|
"http proxy"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/network/06-httpproxy.js"
|
||||||
|
},
|
||||||
|
"mqtt": {
|
||||||
|
"name": "mqtt",
|
||||||
|
"types": [
|
||||||
|
"mqtt in",
|
||||||
|
"mqtt out",
|
||||||
|
"mqtt-broker"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/network/10-mqtt.js"
|
||||||
|
},
|
||||||
|
"httpin": {
|
||||||
|
"name": "httpin",
|
||||||
|
"types": [
|
||||||
|
"http in",
|
||||||
|
"http response"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/network/21-httpin.js"
|
||||||
|
},
|
||||||
|
"httprequest": {
|
||||||
|
"name": "httprequest",
|
||||||
|
"types": [
|
||||||
|
"http request"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/network/21-httprequest.js"
|
||||||
|
},
|
||||||
|
"websocket": {
|
||||||
|
"name": "websocket",
|
||||||
|
"types": [
|
||||||
|
"websocket in",
|
||||||
|
"websocket out",
|
||||||
|
"websocket-listener",
|
||||||
|
"websocket-client"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/network/22-websocket.js"
|
||||||
|
},
|
||||||
|
"tcpin": {
|
||||||
|
"name": "tcpin",
|
||||||
|
"types": [
|
||||||
|
"tcp in",
|
||||||
|
"tcp out",
|
||||||
|
"tcp request"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/network/31-tcpin.js"
|
||||||
|
},
|
||||||
|
"udp": {
|
||||||
|
"name": "udp",
|
||||||
|
"types": [
|
||||||
|
"udp in",
|
||||||
|
"udp out"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/network/32-udp.js"
|
||||||
|
},
|
||||||
|
"CSV": {
|
||||||
|
"name": "CSV",
|
||||||
|
"types": [
|
||||||
|
"csv"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/parsers/70-CSV.js"
|
||||||
|
},
|
||||||
|
"HTML": {
|
||||||
|
"name": "HTML",
|
||||||
|
"types": [
|
||||||
|
"html"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/parsers/70-HTML.js"
|
||||||
|
},
|
||||||
|
"JSON": {
|
||||||
|
"name": "JSON",
|
||||||
|
"types": [
|
||||||
|
"json"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/parsers/70-JSON.js"
|
||||||
|
},
|
||||||
|
"XML": {
|
||||||
|
"name": "XML",
|
||||||
|
"types": [
|
||||||
|
"xml"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/parsers/70-XML.js"
|
||||||
|
},
|
||||||
|
"YAML": {
|
||||||
|
"name": "YAML",
|
||||||
|
"types": [
|
||||||
|
"yaml"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/parsers/70-YAML.js"
|
||||||
|
},
|
||||||
|
"split": {
|
||||||
|
"name": "split",
|
||||||
|
"types": [
|
||||||
|
"split",
|
||||||
|
"join"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/sequence/17-split.js"
|
||||||
|
},
|
||||||
|
"sort": {
|
||||||
|
"name": "sort",
|
||||||
|
"types": [
|
||||||
|
"sort"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/sequence/18-sort.js"
|
||||||
|
},
|
||||||
|
"batch": {
|
||||||
|
"name": "batch",
|
||||||
|
"types": [
|
||||||
|
"batch"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/sequence/19-batch.js"
|
||||||
|
},
|
||||||
|
"file": {
|
||||||
|
"name": "file",
|
||||||
|
"types": [
|
||||||
|
"file",
|
||||||
|
"file in"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/storage/10-file.js"
|
||||||
|
},
|
||||||
|
"watch": {
|
||||||
|
"name": "watch",
|
||||||
|
"types": [
|
||||||
|
"watch"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": false,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/node_modules/@node-red/nodes/core/storage/23-watch.js"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@nickcuper/node-red-contrib-html-pro": {
|
||||||
|
"name": "@nickcuper/node-red-contrib-html-pro",
|
||||||
|
"version": "1.0.1",
|
||||||
|
"local": true,
|
||||||
|
"user": true,
|
||||||
|
"nodes": {
|
||||||
|
"html-pro": {
|
||||||
|
"name": "html-pro",
|
||||||
|
"types": [
|
||||||
|
"html-pro"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": true,
|
||||||
|
"user": false,
|
||||||
|
"module": "@nickcuper/node-red-contrib-html-pro",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/.node-red/node_modules/@nickcuper/node-red-contrib-html-pro/nodes/html-pro/index.js"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node-red-contrib-google-sheets-advance": {
|
||||||
|
"name": "node-red-contrib-google-sheets-advance",
|
||||||
|
"version": "0.0.7",
|
||||||
|
"local": true,
|
||||||
|
"user": true,
|
||||||
|
"nodes": {
|
||||||
|
"gSheetAdvance": {
|
||||||
|
"name": "gSheetAdvance",
|
||||||
|
"types": [
|
||||||
|
"GSheetAdvance",
|
||||||
|
"gauthAdv"
|
||||||
|
],
|
||||||
|
"enabled": true,
|
||||||
|
"local": true,
|
||||||
|
"user": false,
|
||||||
|
"module": "node-red-contrib-google-sheets-advance",
|
||||||
|
"file": "/home/mrosero/devs/projects/webservices/.node-red/node_modules/node-red-contrib-google-sheets-advance/gSheetAdvance.js"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
3
.node-red/.config.runtime.json.backup
Normal file
3
.node-red/.config.runtime.json.backup
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"instanceId": "a202990288260eaa"
|
||||||
|
}
|
20
.node-red/.config.users.json.backup
Normal file
20
.node-red/.config.users.json.backup
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"_": {
|
||||||
|
"editor": {
|
||||||
|
"view": {
|
||||||
|
"view-store-zoom": false,
|
||||||
|
"view-store-position": false,
|
||||||
|
"view-show-grid": true,
|
||||||
|
"view-snap-grid": true,
|
||||||
|
"view-grid-size": 20,
|
||||||
|
"view-node-status": true,
|
||||||
|
"view-node-show-label": true,
|
||||||
|
"view-show-tips": true,
|
||||||
|
"view-show-welcome-tours": true
|
||||||
|
},
|
||||||
|
"tours": {
|
||||||
|
"welcome": "4.0.9-git"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
3
.node-red/.flows_cred.json.backup
Normal file
3
.node-red/.flows_cred.json.backup
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"$": "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"
|
||||||
|
}
|
|
@ -2,9 +2,9 @@
|
||||||
{
|
{
|
||||||
"id": "7f0acab470911e6e",
|
"id": "7f0acab470911e6e",
|
||||||
"type": "tab",
|
"type": "tab",
|
||||||
"label": "Get Coops Panamá ",
|
"label": "Local Leads 507",
|
||||||
"disabled": false,
|
"disabled": false,
|
||||||
"info": "### Fuente: IPCOOP",
|
"info": "",
|
||||||
"env": []
|
"env": []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -28,8 +28,8 @@
|
||||||
"topic": "",
|
"topic": "",
|
||||||
"payload": "",
|
"payload": "",
|
||||||
"payloadType": "date",
|
"payloadType": "date",
|
||||||
"x": 90,
|
"x": 150,
|
||||||
"y": 80,
|
"y": 100,
|
||||||
"wires": [
|
"wires": [
|
||||||
[
|
[
|
||||||
"14d7e672986e5a93"
|
"14d7e672986e5a93"
|
||||||
|
@ -52,8 +52,8 @@
|
||||||
"authType": "",
|
"authType": "",
|
||||||
"senderr": false,
|
"senderr": false,
|
||||||
"headers": [],
|
"headers": [],
|
||||||
"x": 240,
|
"x": 160,
|
||||||
"y": 40,
|
"y": 180,
|
||||||
"wires": [
|
"wires": [
|
||||||
[
|
[
|
||||||
"8c2bc9a9303297a6"
|
"8c2bc9a9303297a6"
|
||||||
|
@ -71,8 +71,8 @@
|
||||||
"ret": "html",
|
"ret": "html",
|
||||||
"as": "multi",
|
"as": "multi",
|
||||||
"chr": "_",
|
"chr": "_",
|
||||||
"x": 220,
|
"x": 420,
|
||||||
"y": 180,
|
"y": 40,
|
||||||
"wires": [
|
"wires": [
|
||||||
[
|
[
|
||||||
"030626a963966e90"
|
"030626a963966e90"
|
||||||
|
@ -96,8 +96,8 @@
|
||||||
"returnArray": true
|
"returnArray": true
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"x": 480,
|
"x": 560,
|
||||||
"y": 220,
|
"y": 260,
|
||||||
"wires": [
|
"wires": [
|
||||||
[
|
[
|
||||||
"b6385dfa3d13631a"
|
"b6385dfa3d13631a"
|
||||||
|
@ -116,8 +116,8 @@
|
||||||
"complete": "false",
|
"complete": "false",
|
||||||
"statusVal": "",
|
"statusVal": "",
|
||||||
"statusType": "auto",
|
"statusType": "auto",
|
||||||
"x": 900,
|
"x": 1060,
|
||||||
"y": 360,
|
"y": 120,
|
||||||
"wires": []
|
"wires": []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -132,7 +132,7 @@
|
||||||
"as": "multi",
|
"as": "multi",
|
||||||
"chr": "_",
|
"chr": "_",
|
||||||
"x": 420,
|
"x": 420,
|
||||||
"y": 120,
|
"y": 180,
|
||||||
"wires": [
|
"wires": [
|
||||||
[
|
[
|
||||||
"072f59e44c2a666e"
|
"072f59e44c2a666e"
|
||||||
|
@ -151,8 +151,8 @@
|
||||||
"initialize": "",
|
"initialize": "",
|
||||||
"finalize": "",
|
"finalize": "",
|
||||||
"libs": [],
|
"libs": [],
|
||||||
"x": 610,
|
"x": 670,
|
||||||
"y": 380,
|
"y": 40,
|
||||||
"wires": [
|
"wires": [
|
||||||
[
|
[
|
||||||
"b4c01ef9959e3d46"
|
"b4c01ef9959e3d46"
|
||||||
|
@ -175,8 +175,8 @@
|
||||||
"strings": true,
|
"strings": true,
|
||||||
"include_empty_strings": "",
|
"include_empty_strings": "",
|
||||||
"include_null_values": "",
|
"include_null_values": "",
|
||||||
"x": 680,
|
"x": 780,
|
||||||
"y": 60,
|
"y": 200,
|
||||||
"wires": [
|
"wires": [
|
||||||
[
|
[
|
||||||
"8bf7ab33a2355e9e"
|
"8bf7ab33a2355e9e"
|
||||||
|
@ -204,8 +204,8 @@
|
||||||
"reduceInit": "",
|
"reduceInit": "",
|
||||||
"reduceInitType": "",
|
"reduceInitType": "",
|
||||||
"reduceFixup": "",
|
"reduceFixup": "",
|
||||||
"x": 790,
|
"x": 870,
|
||||||
"y": 160,
|
"y": 120,
|
||||||
"wires": [
|
"wires": [
|
||||||
[
|
[
|
||||||
"564ee299fea9449b"
|
"564ee299fea9449b"
|
||||||
|
@ -223,12 +223,236 @@
|
||||||
"createDir": false,
|
"createDir": false,
|
||||||
"overwriteFile": "true",
|
"overwriteFile": "true",
|
||||||
"encoding": "none",
|
"encoding": "none",
|
||||||
"x": 860,
|
"x": 1000,
|
||||||
"y": 240,
|
"y": 40,
|
||||||
"wires": [
|
"wires": [
|
||||||
[
|
[
|
||||||
"ef9384e43a31a072"
|
"ef9384e43a31a072"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "d6845fd4ff25f851",
|
||||||
|
"type": "comment",
|
||||||
|
"z": "7f0acab470911e6e",
|
||||||
|
"name": "Cooperativas Leads",
|
||||||
|
"info": "### Fuente: IPCOOP",
|
||||||
|
"x": 110,
|
||||||
|
"y": 40,
|
||||||
|
"wires": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "df26defb28f7bf46",
|
||||||
|
"type": "file in",
|
||||||
|
"z": "7f0acab470911e6e",
|
||||||
|
"name": "Read Industrias (csv-raw)",
|
||||||
|
"filename": "/home/mrosero/Documentos/mercadeo/industria/mfg001_raw_507.csv",
|
||||||
|
"filenameType": "str",
|
||||||
|
"format": "lines",
|
||||||
|
"chunk": false,
|
||||||
|
"sendError": false,
|
||||||
|
"encoding": "none",
|
||||||
|
"allProps": true,
|
||||||
|
"x": 370,
|
||||||
|
"y": 400,
|
||||||
|
"wires": [
|
||||||
|
[
|
||||||
|
"f4f8079998fb73d5"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "144097555fbde30c",
|
||||||
|
"type": "inject",
|
||||||
|
"z": "7f0acab470911e6e",
|
||||||
|
"name": "Start",
|
||||||
|
"props": [
|
||||||
|
{
|
||||||
|
"p": "payload"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"p": "topic",
|
||||||
|
"vt": "str"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"repeat": "",
|
||||||
|
"crontab": "",
|
||||||
|
"once": false,
|
||||||
|
"onceDelay": 0.1,
|
||||||
|
"topic": "",
|
||||||
|
"payload": "",
|
||||||
|
"payloadType": "date",
|
||||||
|
"x": 150,
|
||||||
|
"y": 460,
|
||||||
|
"wires": [
|
||||||
|
[
|
||||||
|
"df26defb28f7bf46"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "98fd8925d21c887b",
|
||||||
|
"type": "csv",
|
||||||
|
"z": "7f0acab470911e6e",
|
||||||
|
"name": "Set to CSV",
|
||||||
|
"spec": "rfc",
|
||||||
|
"sep": ",",
|
||||||
|
"hdrin": true,
|
||||||
|
"hdrout": "none",
|
||||||
|
"multi": "one",
|
||||||
|
"ret": "\\r\\n",
|
||||||
|
"temp": "",
|
||||||
|
"skip": "0",
|
||||||
|
"strings": true,
|
||||||
|
"include_empty_strings": true,
|
||||||
|
"include_null_values": false,
|
||||||
|
"x": 630,
|
||||||
|
"y": 480,
|
||||||
|
"wires": [
|
||||||
|
[
|
||||||
|
"29806b641ea02489"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "29806b641ea02489",
|
||||||
|
"type": "function",
|
||||||
|
"z": "7f0acab470911e6e",
|
||||||
|
"name": "Fix Data",
|
||||||
|
"func": "var productos = \"\"\nvar sector = \"\"\nvar instagram = \"\"\nvar facebook = \"\"\nvar website = \"\"\nvar email = \"\"\nvar contact = \"\"\nvar industry = []\n\nlet emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\nlet phoneRegex = /(\\+?\\d{1,4}[-.\\s]?)?(\\(?\\d{2,4}\\)?[-.\\s]?)?\\d{3,4}[-.\\s]?\\d{3,4}/g;\n \nif (msg.payload.Products.startsWith(\"Produce:\") ) {\n productos = msg.payload.Products.substring(9)\n}\n\nif (msg.payload.Products.startsWith(\"Sector:\") ) {\n sector=msg.payload['Products'].substring(8)\n}\n\nif (emailRegex.test(msg.payload['Female Employees Percentage'])) {\n email = msg.payload['Female Employees Percentage'];\n} \n\nif (emailRegex.test(msg.payload['Year Founded'])) {\n email = msg.payload['Year Founded'];\n}\n\nif (emailRegex.test(msg.payload['market'])) {\n email = msg.payload['market'];\n}\n\nif (emailRegex.test(msg.payload['Contact Information'])) {\n email = msg.payload['Contact Information'];\n}\n\nif (typeof msg.payload['email'] !== \"undefined\") {\n if (emailRegex.test(msg.payload['email'])) {\n email = msg.payload['email'];\n }\n}\n\nif (phoneRegex.test(msg.payload['Female Employees Percentage'])) {\n contact = msg.payload['Female Employees Percentage'];\n} \n\nif (phoneRegex.test(msg.payload['Year Founded'])) {\n contact = msg.payload['Year Founded'];\n}\n\nif (phoneRegex.test(msg.payload['market'])) {\n contact = msg.payload['market'];\n}\n\nif (typeof msg.payload['Contact Information'] !== \"undefined\") {\n if (phoneRegex.test(msg.payload['Contact Information'])) {\n contact = msg.payload['Contact Information'];\n }\n}\n\nif ( typeof msg.payload['Instagram Link'] !== \"undefined\" ) {\n if (msg.payload['Instagram Link'].search(\"instagram.com\") !== -1) {\n instagram = msg.payload['Instagram Link']\n } else if (msg.payload['Instagram Link'].search(\"facebook.com\") !== -1) {\n facebook = msg.payload['Instagram Link']\n } else {\n website = msg.payload['Instagram Link']\n }\n}\n\nif ( typeof msg.payload['Facebook Link'] !== \"undefined\" ) {\n if (msg.payload['Facebook Link'].search(\"instagram.com\") !== -1) {\n instagram = msg.payload['Facebook Link']\n } else if (msg.payload['Facebook Link'].search(\"facebook.com\") !== -1) {\n facebook = msg.payload['Facebook Link']\n } else {\n website = msg.payload['Facebook Link']\n }\n}\n\nindustry=[\n msg.payload['Position'],\n msg.payload['Company Name'].toLocaleUpperCase(),\n sector.replace(/\\b\\w+/g, word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()),\n productos.toLowerCase().replace(/(^|\\.\\s+)([a-z])/g, (match, sep, letter) => sep + letter.toUpperCase()),\n msg.payload['Company Size'],\n msg.payload['Number of Employees'],\n msg.payload['Location'],\n contact,\n email,\n website,\n instagram,\n facebook,\n msg.payload['Company Image'],\n]\n\nmsg.payload = industry;\nreturn msg;",
|
||||||
|
"outputs": 1,
|
||||||
|
"timeout": 0,
|
||||||
|
"noerr": 0,
|
||||||
|
"initialize": "",
|
||||||
|
"finalize": "",
|
||||||
|
"libs": [],
|
||||||
|
"x": 820,
|
||||||
|
"y": 440,
|
||||||
|
"wires": [
|
||||||
|
[
|
||||||
|
"5512e4f11e424bca"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "7d2cd39e7bcf1c60",
|
||||||
|
"type": "file",
|
||||||
|
"z": "7f0acab470911e6e",
|
||||||
|
"name": "Save industrias",
|
||||||
|
"filename": "/home/mrosero/Documentos/mercadeo/industria/mfg001_507.csv",
|
||||||
|
"filenameType": "str",
|
||||||
|
"appendNewline": false,
|
||||||
|
"createDir": false,
|
||||||
|
"overwriteFile": "false",
|
||||||
|
"encoding": "none",
|
||||||
|
"x": 860,
|
||||||
|
"y": 580,
|
||||||
|
"wires": [
|
||||||
|
[
|
||||||
|
"043fa26ea24c4a85"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "043fa26ea24c4a85",
|
||||||
|
"type": "debug",
|
||||||
|
"z": "7f0acab470911e6e",
|
||||||
|
"name": "debug 2",
|
||||||
|
"active": true,
|
||||||
|
"tosidebar": true,
|
||||||
|
"console": false,
|
||||||
|
"tostatus": false,
|
||||||
|
"complete": "false",
|
||||||
|
"statusVal": "",
|
||||||
|
"statusType": "auto",
|
||||||
|
"x": 1060,
|
||||||
|
"y": 440,
|
||||||
|
"wires": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "f4f8079998fb73d5",
|
||||||
|
"type": "switch",
|
||||||
|
"z": "7f0acab470911e6e",
|
||||||
|
"name": "Clean empty record",
|
||||||
|
"property": "payload",
|
||||||
|
"propertyType": "msg",
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"t": "nempty"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"checkall": "true",
|
||||||
|
"repair": true,
|
||||||
|
"outputs": 1,
|
||||||
|
"x": 610,
|
||||||
|
"y": 400,
|
||||||
|
"wires": [
|
||||||
|
[
|
||||||
|
"d92b4c8ffab2ca69"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "5512e4f11e424bca",
|
||||||
|
"type": "csv",
|
||||||
|
"z": "7f0acab470911e6e",
|
||||||
|
"name": "",
|
||||||
|
"spec": "rfc",
|
||||||
|
"sep": ",",
|
||||||
|
"hdrin": "",
|
||||||
|
"hdrout": "none",
|
||||||
|
"multi": "mult",
|
||||||
|
"ret": "\\r\\n",
|
||||||
|
"temp": "",
|
||||||
|
"skip": "0",
|
||||||
|
"strings": false,
|
||||||
|
"include_empty_strings": false,
|
||||||
|
"include_null_values": "",
|
||||||
|
"x": 690,
|
||||||
|
"y": 620,
|
||||||
|
"wires": [
|
||||||
|
[
|
||||||
|
"7d2cd39e7bcf1c60"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "d92b4c8ffab2ca69",
|
||||||
|
"type": "join",
|
||||||
|
"z": "7f0acab470911e6e",
|
||||||
|
"name": "",
|
||||||
|
"mode": "auto",
|
||||||
|
"build": "string",
|
||||||
|
"property": "payload",
|
||||||
|
"propertyType": "msg",
|
||||||
|
"key": "topic",
|
||||||
|
"joiner": "\\n",
|
||||||
|
"joinerType": "str",
|
||||||
|
"useparts": false,
|
||||||
|
"accumulate": false,
|
||||||
|
"timeout": "",
|
||||||
|
"count": "",
|
||||||
|
"reduceRight": false,
|
||||||
|
"reduceExp": "",
|
||||||
|
"reduceInit": "",
|
||||||
|
"reduceInitType": "",
|
||||||
|
"reduceFixup": "",
|
||||||
|
"x": 430,
|
||||||
|
"y": 460,
|
||||||
|
"wires": [
|
||||||
|
[
|
||||||
|
"98fd8925d21c887b"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "d83575dc7c3a1a52",
|
||||||
|
"type": "comment",
|
||||||
|
"z": "7f0acab470911e6e",
|
||||||
|
"name": "Industrias Leads",
|
||||||
|
"info": "### Fuente: MICI - Directorio de Empresas",
|
||||||
|
"x": 100,
|
||||||
|
"y": 360,
|
||||||
|
"wires": []
|
||||||
}
|
}
|
||||||
]
|
]
|
14
CHANGELOG.md
14
CHANGELOG.md
|
@ -5,6 +5,19 @@ Todos los cambios notables en este proyecto se documentarán en este archivo.
|
||||||
El formato está basado en [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
El formato está basado en [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## [0.4.0] - 2025-03-26
|
||||||
|
|
||||||
|
### Añadido
|
||||||
|
- Nuevo flujo "Industrias Leads" para procesamiento de datos de empresas manufactureras
|
||||||
|
- Funcionalidad de extracción inteligente de datos de contacto mediante expresiones regulares
|
||||||
|
- Normalización automática de información empresarial (productos, sectores, contactos)
|
||||||
|
- Documentación completa del nuevo flujo en README.md
|
||||||
|
|
||||||
|
### Mejorado
|
||||||
|
- Renombrado del flujo "Get Coops Panamá" a "Cooperativas Leads" para mayor consistencia
|
||||||
|
- Organización visual de los nodos en los flujos para mejor comprensión
|
||||||
|
- Respaldo de archivos de configuración críticos (.config.nodes.json, .flows_cred.json, etc.)
|
||||||
|
|
||||||
## [0.3.0] - 2025-03-25
|
## [0.3.0] - 2025-03-25
|
||||||
|
|
||||||
### Añadido
|
### Añadido
|
||||||
|
@ -38,6 +51,7 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
|
||||||
- Licencia privativa (LICENSE.md)
|
- Licencia privativa (LICENSE.md)
|
||||||
- Configuración inicial del repositorio
|
- Configuración inicial del repositorio
|
||||||
|
|
||||||
|
[0.4.0]: https://github.com/username/webservices/compare/v0.3.0...v0.4.0
|
||||||
[0.3.0]: https://github.com/username/webservices/compare/v0.2.0...v0.3.0
|
[0.3.0]: https://github.com/username/webservices/compare/v0.2.0...v0.3.0
|
||||||
[0.2.0]: https://github.com/username/webservices/compare/v0.1.0...v0.2.0
|
[0.2.0]: https://github.com/username/webservices/compare/v0.1.0...v0.2.0
|
||||||
[0.1.0]: https://github.com/username/webservices/releases/tag/v0.1.0
|
[0.1.0]: https://github.com/username/webservices/releases/tag/v0.1.0
|
27
README.md
27
README.md
|
@ -80,7 +80,7 @@ Acceda a la interfaz de Node-RED en: http://localhost:1880
|
||||||
|
|
||||||
## 📊 Flujos Implementados
|
## 📊 Flujos Implementados
|
||||||
|
|
||||||
### Get Coops Panamá
|
### Cooperativas Leads
|
||||||
Flujo automatizado para extraer información sobre cooperativas registradas en Panamá desde el sitio web oficial del IPACOOP.
|
Flujo automatizado para extraer información sobre cooperativas registradas en Panamá desde el sitio web oficial del IPACOOP.
|
||||||
|
|
||||||
**Funcionalidad:**
|
**Funcionalidad:**
|
||||||
|
@ -100,6 +100,31 @@ Flujo automatizado para extraer información sobre cooperativas registradas en P
|
||||||
|
|
||||||
**Fuente de datos:** [IPACOOP - Listado de Cooperativas](https://ipacoop.gob.pa/listado-de-cooperativas-obligadas/)
|
**Fuente de datos:** [IPACOOP - Listado de Cooperativas](https://ipacoop.gob.pa/listado-de-cooperativas-obligadas/)
|
||||||
|
|
||||||
|
### Industrias Leads
|
||||||
|
Flujo para procesar y normalizar datos de industrias manufactureras en Panamá.
|
||||||
|
|
||||||
|
**Funcionalidad:**
|
||||||
|
- Lectura de datos desde archivo CSV crudo
|
||||||
|
- Limpieza y normalización de información
|
||||||
|
- Extracción inteligente de datos de contacto mediante expresiones regulares
|
||||||
|
- Estructuración de datos empresariales
|
||||||
|
|
||||||
|
**Datos procesados:**
|
||||||
|
- Nombre de empresa
|
||||||
|
- Sector industrial
|
||||||
|
- Productos/servicios
|
||||||
|
- Tamaño de empresa
|
||||||
|
- Número de empleados
|
||||||
|
- Ubicación
|
||||||
|
- Información de contacto (teléfono, email)
|
||||||
|
- Presencia digital (sitio web, redes sociales)
|
||||||
|
|
||||||
|
**Formato de salida:**
|
||||||
|
- Archivo CSV (mfg001_507.csv)
|
||||||
|
- Datos normalizados y estructurados para uso en mercadeo
|
||||||
|
|
||||||
|
**Fuente de datos:** MICI - Directorio de Empresas (datos preexistentes)
|
||||||
|
|
||||||
## 🔍 Prerrequisitos
|
## 🔍 Prerrequisitos
|
||||||
|
|
||||||
- Node.js 18.x o superior
|
- Node.js 18.x o superior
|
||||||
|
|
Loading…
Reference in a new issue