{"_id":"@anhnt224/n8n-nodes-zalo","_rev":"2-ed32af5abbe1075578a7859934e30df9","name":"@anhnt224/n8n-nodes-zalo","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@anhnt224/n8n-nodes-zalo","version":"0.1.0","keywords":["n8n-community-node-package","n8n","zalo","zca-js"],"author":{"name":"@anhnt224/n8n-nodes-zalo contributors"},"license":"MIT","_id":"@anhnt224/n8n-nodes-zalo@0.1.0","maintainers":[{"name":"anhnt224","email":"anhnt019@gmail.com"}],"homepage":"https://github.com/tronganhnham/n8n-nodes-zalo","n8n":{"nodes":["dist/nodes/ZaloAuth/ZaloAuth.node.js","dist/nodes/ZaloAccount/ZaloAccount.node.js","dist/nodes/ZaloGroup/ZaloGroup.node.js","dist/nodes/ZaloMessage/ZaloMessage.node.js","dist/nodes/ZaloTrigger/ZaloTrigger.node.js"],"credentials":["dist/credentials/ZaloUserApi.credentials.js","dist/credentials/N8nApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"8bee98425c9670b150be96f33f1548cf3157b8d6","tarball":"https://registry.npmjs.org/@anhnt224/n8n-nodes-zalo/-/n8n-nodes-zalo-0.1.0.tgz","fileCount":78,"integrity":"sha512-y6PObrU6ZiCDUW7C51f5eQZ0fdg1BI4wsUCdOOxsNbBpXWRbjRqRKY3fM9zduLGu4US9eg5ZyUE4NARXUXTvmg==","signatures":[{"sig":"MEUCIDqlS7E2e6e4vm6ak0XL46V65K8tsnEBlpceGKXLpdLTAiEAs63I2jVJHFNpSjJSrEC6i2JZ0e6rKizWtXwx2FU0xmQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108460},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"n8n":">=1.100.0","node":">=18.0.0"},"gitHead":"bc93f53a31587ff23e38eeb2f4a8443079009e1b","scripts":{"dev":"tsc -w -p tsconfig.json","lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"vitest run","build":"tsc -p tsconfig.json","clean":"rimraf dist","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","prepack":"npm run build"},"_npmUser":{"name":"anhnt224","email":"anhnt019@gmail.com"},"_npmVersion":"11.6.2","description":"n8n community nodes for Zalo personal-account automation via unofficial Zalo Web API.","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zca-js":"2.1.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.1","vitest":"^2.1.1","prettier":"^3.3.3","typescript":"^5.5.4","@types/node":"^20.19.0","n8n-workflow":"^1.100.0","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"n8n-workflow":">=1.100.0"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-zalo_0.1.0_1779280099579_0.6221164433890725","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@anhnt224/n8n-nodes-zalo","version":"0.1.1","description":"n8n community nodes for Zalo personal-account automation via unofficial Zalo Web API.","license":"MIT","homepage":"https://github.com/anhnt224/n8n-nodes-zalo","repository":{"type":"git","url":"git+https://github.com/anhnt224/n8n-nodes-zalo.git"},"bugs":{"url":"https://github.com/anhnt224/n8n-nodes-zalo/issues"},"author":{"name":"n8n-nodes-zalo contributors"},"keywords":["n8n-community-node-package","n8n","zalo","zca-js"],"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"clean":"rimraf dist","build":"tsc -p tsconfig.json","dev":"tsc -w -p tsconfig.json","format":"prettier --write \"src/**/*.ts\" \"test/**/*.ts\"","lint":"eslint \"src/**/*.ts\" \"test/**/*.ts\"","test":"vitest run","prepack":"npm run build"},"engines":{"node":">=18.0.0","n8n":">=1.100.0"},"n8n":{"n8nNodesApiVersion":1,"credentials":["dist/credentials/ZaloUserApi.credentials.js","dist/credentials/N8nApi.credentials.js"],"nodes":["dist/nodes/ZaloAuth/ZaloAuth.node.js","dist/nodes/ZaloAccount/ZaloAccount.node.js","dist/nodes/ZaloGroup/ZaloGroup.node.js","dist/nodes/ZaloMessage/ZaloMessage.node.js","dist/nodes/ZaloTrigger/ZaloTrigger.node.js"]},"peerDependencies":{"n8n-workflow":">=1.100.0"},"dependencies":{"zca-js":"2.1.2"},"devDependencies":{"@types/node":"^20.19.0","@typescript-eslint/eslint-plugin":"^7.18.0","@typescript-eslint/parser":"^7.18.0","eslint":"^8.57.1","prettier":"^3.3.3","typescript":"^5.5.4","vitest":"^2.1.1","n8n-workflow":"^1.100.0"},"_id":"@anhnt224/n8n-nodes-zalo@0.1.1","gitHead":"bc93f53a31587ff23e38eeb2f4a8443079009e1b","_nodeVersion":"24.4.1","_npmVersion":"11.4.2","dist":{"integrity":"sha512-pRFW2NMgOPWSLGygtm0zPRERUj3ckMq5YhWFh038jcTi7FSnpF/j9Dd24gW7eAtrlOSe+GeJsunXRTX4frOQ+w==","shasum":"209a85454a7d52839cbf4804f8863c84e6b44cbb","tarball":"https://registry.npmjs.org/@anhnt224/n8n-nodes-zalo/-/n8n-nodes-zalo-0.1.1.tgz","fileCount":78,"unpackedSize":111019,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIADCqd2cfOurpj2EBNn9FYBHbzfq/2Ohivt5Tvj3lq//AiEA9YYGQKMfXwqpAD2UQgsLjvWEGBJEqTFxS1fmG6oK2hs="}]},"_npmUser":{"name":"anhnt224","email":"anhnt019@gmail.com"},"directories":{},"maintainers":[{"name":"anhnt224","email":"anhnt019@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/n8n-nodes-zalo_0.1.1_1779285300365_0.7356333656654308"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-20T12:28:19.399Z","modified":"2026-05-20T13:55:00.647Z","0.1.0":"2026-05-20T12:28:19.749Z","0.1.1":"2026-05-20T13:55:00.538Z"},"author":{"name":"n8n-nodes-zalo contributors"},"license":"MIT","homepage":"https://github.com/anhnt224/n8n-nodes-zalo","keywords":["n8n-community-node-package","n8n","zalo","zca-js"],"description":"n8n community nodes for Zalo personal-account automation via unofficial Zalo Web API.","maintainers":[{"name":"anhnt224","email":"anhnt019@gmail.com"}],"readme":"# n8n-nodes-zalo\n\nReadable n8n community package for Zalo personal-account automation through [`zca-js`](https://github.com/RFS-ADRENO/zca-js).\n\n> Disclaimer: this package drives the unofficial Zalo Web API via `zca-js`. It can violate Zalo's Terms of Service and may get accounts flagged, rate-limited, or banned. Use at your own risk on accounts you control.\n\n## Features\n\n- Login with Zalo cookie.\n- Experimental login with Zalo QR.\n- Save login result as an n8n `zaloUserApi` credential by calling the n8n Public API.\n- Validate session and fetch account/user information.\n- List groups, get group metadata, and get group members.\n- Fetch group chat history.\n- Trigger workflows on new Zalo messages.\n\n## Security Defaults\n\nThe package intentionally does not include license checks, premium gates, telemetry, obfuscation, custom servers, or workflow mutation.\n\nDefaults:\n\n- `checkUpdate=false`\n- `logging=false`\n- `includeRaw=false`\n- `includeSensitiveData=false`\n\nSensitive values are redacted from normal outputs and errors:\n\n- cookies\n- IMEI\n- full user agent\n- phone numbers\n- n8n API keys\n- Zalo secrets\n\n## Credentials\n\n### Zalo User API\n\nInternal name: `zaloUserApi`\n\nFields:\n\n- `cookie`\n- `imei`\n- `userAgent`\n- `language`\n- `checkUpdate`\n- `logging`\n\n### n8n Public API\n\nInternal name: `n8nApi`\n\nUsed only by `Zalo Auth` when `Save as Credential` is enabled.\n\nFields:\n\n- `baseUrl`\n- `apiKey`\n\n## Nodes\n\n### Zalo Auth\n\nOperations:\n\n- Login With Cookie\n- Login With QR\n- Validate Credential\n\nQR login emits the generated QR image to the n8n UI while the node is running. After the phone confirms login, the node saves the returned cookie and IMEI as a `zaloUserApi` credential when **Save as Credential** is enabled.\n\nWhen saving credentials, the node creates one standalone `zaloUserApi` credential through `POST /api/v1/credentials`. It does not modify existing workflows or auto-attach credentials to nodes.\n\n### Zalo Account\n\nOperations:\n\n- Validate Session\n- Get Me\n- Get User Info\n- Get Context\n\n### Zalo Group\n\nOperations:\n\n- Get All Groups\n- Get Group Info\n- Get Group Members\n\n### Zalo Message\n\nOperations:\n\n- Get Group Chat History\n\n### Zalo Trigger\n\nEvents:\n\n- New Message\n\nFilters:\n\n- Thread type: all, direct, group\n- Include self messages\n- Include raw payload\n\nOnly one Zalo Web listener can run per account. Opening Zalo Web elsewhere can disconnect the listener. The trigger does not auto-reconnect; fix the session and reactivate the workflow.\n\n## Development\n\n```bash\nnpm install\nnpm run build\nnpm test\nnpm pack --dry-run\n```\n\n## Manual Test Checklist\n\n- Valid cookie creates a `zaloUserApi` credential.\n- Invalid cookie returns a login error without logging cookie data.\n- Missing IMEI returns `ZALO_MISSING_CREDENTIAL_FIELD`.\n- Created credential can be selected manually in Account/Group/Message/Trigger nodes.\n- Group history normalizes text and attachment messages without crashing.\n- Trigger emits direct and group messages and stops on workflow deactivation.\n\n## Notes\n\nThis package depends on `zca-js@2.1.2` and Node.js 18+. n8n Public API credential creation can vary by n8n version and deployment plan.\n","readmeFilename":"README.md","repository":{"type":"git","url":"git+https://github.com/anhnt224/n8n-nodes-zalo.git"},"bugs":{"url":"https://github.com/anhnt224/n8n-nodes-zalo/issues"}}