Security Notice
This document has been auto-published from the internal knowledge base. All passwords, API keys, tokens, and IP addresses have been redacted for security.
n8n Automation Specialist
Instance
- UI:
https://n8n.[VPS_HOSTNAME](password: [REDACTED]S:** srv1139900, containerroot-n8n-1, port 5678 (localhost) - REST API:
X-N8N-API-KEY: {jwt}(NOTAuthorization: Bearer) - Curl on Windows: Add
--ssl-no-revokefor HTTPS endpoints
Workflow Registry (63 total, 31 active)
Ocean Tracking (12 workflows, 12 active)
| Workflow | ID | Status |
|---|---|---|
| Ocean Tracker Orchestrator | AzACxa8tKeisIYss | ACTIVE |
| ONE Tracker | sjIvD2jvQBJJQsCQ | ACTIVE |
| MSC Tracker | yktm8HGmhAMclGLG | ACTIVE |
| Maersk Tracker | PJOoXo1rDx0YiCOX | ACTIVE (needs API key) |
| CMA-CGM Tracker | vuM2hK1ptcl53bvq | ACTIVE |
| Yang Ming Tracker | Y4otOacbdvQy5qph | ACTIVE |
| Evergreen Tracker | 2lcog1Lq9p1gxaOf | ACTIVE |
| COSCO Tracker | ucOvO235wlsnkvW9 | ACTIVE |
| HMM Tracker | 3DJfFyyQyXVLhVM1 | ACTIVE |
| OOCL Tracker | NZIx89az0CXBNxSN | BLOCKED (Cloudflare) |
| Wan Hai Tracker | OkZspGGpM4AkoCW1 | BLOCKED (Imperva) |
| ZIM Tracker | WbasTpPdndzwXlB1 | BLOCKED (Akamai) |
WSI / CargoWise (11 workflows, 4 active)
| Workflow | ID | Status |
|---|---|---|
| Arrival Notice Upload (eAdaptor) | hJdFaSEsRZc1VtuF | ACTIVE |
| Split Arrival Notice PDF | 9Awg66cnUXoy9mid | ACTIVE |
| Doc Receiver | cKsgxyMvL4Jb3OxR | ACTIVE |
| WSI Follow-up Ingestor | bpSRrvueoqy1E32M | ACTIVE |
| Salesforce Data Hub | aXxt5OPrwtVoGZsQ | ACTIVE |
| WSI Sales Digest Generator | BssAxFxxEWk2T67T | ACTIVE (cron 5AM CST) |
| AP Upload (eAdaptor) | KmCdpSqMghk1yNqg | Inactive |
| + 4 others | — | Inactive |
AN Audit (7 workflows, 0 active)
| Workflow | ID |
|---|---|
| AN Audit Orchestrator | AsL9OZSRkD7calhd |
| Field Validation | 5Ftc0ei99NGwHl5c |
| CW Comparison | TM1SzEe34ssgXRKc |
| ETA & Routing | Zj3MAJ9wZa4QlDnX |
| Container Audit | kjaov3J6MaXvCJWG |
| Regulatory Logic | HdJJUOgZnblifCYK |
| Financial Audit | KtoUCulKnYfG9DKE |
CHAROS Trucking (4 workflows, 3 active)
| Workflow | ID | Status |
|---|---|---|
| Truck Tracker (single) | 2GF72l5GeWcUYohm | ACTIVE |
| Batch Tracker | fCVbPtxhdMcroH4P | ACTIVE |
| Email Report | ry7zDIJTBXzV1dez | ACTIVE (Gmail OAuth) |
| Ingest | 6A8eDlbdVIlWmUpa | Inactive |
CrowBot (5 workflows, 5 active)
| Workflow | ID | Webhook |
|---|---|---|
| Orchestrator | cE3MeCxzEq8stEzU | /crowbot-orchestrator |
| Security Patrol | 2OZeifB6TsZXrpzM | /crowbot-security |
| Version Manager | 7R3kt0bM9TLhUPzq | /crowbot-versions |
| Daily Briefing | DluVLcWCRANrFwp3 | /crowbot-briefing |
| Context Aggregator | 3KV33ay3BGnmqORk | /crowbot-context |
Mission Control (4 workflows, 3 active)
| Workflow | ID |
|---|---|
| MC Status | FJBz5E7sDbct4OSN |
| MC Email | oR4E28Vizh6bNEHz |
| MC AI | YQCY1c9bZTghl8yv |
HandyManny (3 workflows, 3 active)
| Workflow | ID | Webhook |
|---|---|---|
| Auto-Track (every 4h) | XEYwLqrwEJwCz39g | /api/shipments/auto-track |
| Shipment Notice Emailer | dH1nNvwPxR3eyGU8 | /shipment-notice |
| Geocode AI | J76GltqEdd731XGY | /webhook/geocode-ai |
Expediente (4 workflows, 4 active)
| Workflow | ID | Webhook |
|---|---|---|
| Notifications | uMvWVvFbRcfB2qyV | /expediente-notify |
| AI Extract | 0DN5KduorqBsJk4B | /expediente-extract |
| Monthly Reset | fJwklRmPNVdxjARl | /expediente-monthly-reset |
| Contract Generate | owJ7egjjRphZIqgY | /expediente-contract |
VIA (2 workflows, 2 active)
| Workflow | ID |
|---|---|
| Q&A Sync | hZwPmavou0yhBXlQ |
| Via-Dev Intelligence | Q1xBoqjsUQLmfpqC |
Messaging (2 workflows, 2 active)
| Workflow | ID |
|---|---|
| WhatsApp Bot | RU2w9L7oHM0HnAcU |
| Error Handler | 0A6m78fcTqd53C1N |
Other
| Workflow | ID | Status |
|---|---|---|
| CHAROS Audit Alert | iCi0oHtOg0k43IFI | ACTIVE (Telegram alert) |
| AP Invoice Processor | YYUjYczdRH8kIfAG | Inactive |
| Legacy (7) | — | 1 active, rest inactive |
| Basura (4) | — | All inactive, tagged for cleanup |
Webhook Endpoints (Active)
| Path | Workflow | Method |
|---|---|---|
/ocean-track | Ocean Orchestrator | POST |
/msc-track | MSC Tracker | POST |
/one-tracking | ONE Tracker | GET |
/cma-track | CMA-CGM Tracker | POST |
/shipment-notice | Shipment Notice Emailer | POST |
/charos-batch-track | Batch Tracker | POST |
/charos-email-report | Email Report | POST |
/wsi-tasks | WSI Follow-up Ingestor | POST |
/sf-data | Salesforce Data Hub | POST |
/crowbot-orchestrator | CrowBot Orchestrator | POST |
/crowbot-security | Security Patrol | POST |
/crowbot-versions | Version Manager | POST |
/crowbot-briefing | Daily Briefing | POST |
/crowbot-context | Context Aggregator | POST |
/charos-audit-report | Audit Alert | POST |
/an-audit | AN Audit Orchestrator | POST |
/ap-invoice-process | AP Invoice Processor | POST |
API Keys (Custom)
| Key | Endpoint | Field |
|---|---|---|
[API_KEY] | /wsi-tasks | body api_key |
[API_KEY] | /sf-data | body api_key |
Critical Gotchas
Code Node v2 Sandbox
- No
fetch()— "fetch is not defined" - No
$http/require()— not available in sandbox - Available:
$input,$('NodeName'),$execution,$workflow,Date,Math,JSON $envblocked in production — use stored credentials or hardcode
Code Node Execution Model
- Multiple branches → same Code node → runs once per branch, NOT merged
$input.all()only returns items from current branch- Pattern: Use
$('NodeName').first().jsonto reference each upstream node
Merge Node v3 Bugs
- "Append" with 4+ branches → only captures first 2 reliably
- Pattern: Sequential chain →
$('NodeName')references (avoids Merge entirely)
Webhook Node
webhookIdproperty required for clean URL paths- Webhook v2 nests POST body under
$json.body— Code nodes needwebhookData.body || webhookDatapattern typeVersionmust be2.1
Switch Node v3.2
- Requires
conditions.options.caseSensitiveandconditions.options.version - Rules at indices 0..N, fallback at N+1 — adding rules shifts fallback index
MCP Tool Bugs
updateNodewithnamefield always loses name → usenodeIdinsteadaddConnectioncreates wrong keys → use REST APIPUT /api/v1/workflows/{id}with full connections- Can't update archived workflows or single non-webhook node workflows
JSON in HTTP Request Nodes
{{ $json.someString }}injsonBodybreaks with quotes- Pattern: Build body as JS object in Code node →
={{ JSON.stringify($json.requestBody) }}
REST API
PUT /api/v1/workflows/{id}requiresnameANDsettingsin body- Deactivate/activate:
POST /rest/workflows/{id}/deactivate|activate(requiresversionId)
Activation via MCP
create_workflowcreates inactive withactiveVersionId: null- Must set BOTH
active=1ANDactiveVersionIdin SQLite, pluswebhookIdon webhook node
Other
- HTTP nodes:
onError: continueRegularOutputfor fault tolerance - Sequential fetches are ~1-2s slower but 100% reliable vs parallel+Merge
- Restart n8n after MCP workflow updates
- MCP
addTagcreates tag if it doesn't exist