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.
Bots & AI Agents Mission Control
Complete inventory of all AI agents, bots, and automated intelligence systems across the HandyManny ecosystem.
Table of Contents
- Interactive Bots — User-facing chat interfaces
- AI Workflow Orchestrators — n8n workflows with AI
- Scheduled AI Services — Automated daily/periodic tasks
- AI Infrastructure — Shared services & credentials
- Quick Reference — All workflows, endpoints, credentials
Interactive Bots
1. CrowBot — Telegram Bot Orchestrator (ACTIVE)
Primary intelligent assistant for daily operations via Telegram.
Architecture
- Entry: Telegram bot (Python, srv1379713) → n8n Orchestrator (srv1139900) → Sub-services
- Fallback: If orchestrator unreachable, bot falls back to direct Claude Haiku chat
- WhatsApp:
Evolution API integrationDISABLED (2026-02-28, env var security fix)
n8n Workflows (5, ALL ACTIVE)
| Workflow | ID | Webhook | Schedule |
|---|---|---|---|
| Orchestrator | cE3MeCxzEq8stEzU | /crowbot-orchestrator | On-demand |
| Security Patrol | 2OZeifB6TsZXrpzM | /crowbot-security | Daily 3 AM CST |
| Version Manager | 7R3kt0bM9TLhUPzq | /crowbot-versions | Daily 2 AM CST |
| Daily Briefing | DluVLcWCRANrFwp3 | /crowbot-briefing | Daily 7 AM CST |
| Context Aggregator | 3KV33ay3BGnmqORk | /crowbot-context | On-demand |
Intent Classification (12 Categories)
| Intent | Routes To |
|---|---|
| OCEAN_TRACK | Ocean Tracker (AzACxa8tKeisIYss) |
| TRUCK_TRACK | Batch Tracker (fCVbPtxhdMcroH4P) |
| SHIPMENT_STATUS | HandyManny API /api/shipments |
| DOCUMENT_QUERY | Claude Haiku (Expediente context) |
| SYSTEM_HEALTH | MC Status (FJBz5E7sDbct4OSN) |
| SECURITY_CHECK | Security Patrol |
| VERSION_CHECK | Version Manager |
| CALENDAR | Claude Haiku (suggests MC) |
| DAILY_PLAN | Context Aggregator → Claude Haiku |
| TODO_STATUS | Context Aggregator → Claude Haiku |
| PROJECT_STATUS | Context Aggregator → Claude Haiku |
| GENERAL_CHAT | Claude Haiku (CrowBot persona) |
Telegram Bot Details
- Location:
/opt/telegram-bot/on srv1379713 - Service:
telegram-bot.service(systemd) - Owner Chat ID:
5523342814 - Deps:
httpx,python-telegram-bot,anthropic - Env:
ORCHESTRATOR_URL,ORCHESTRATOR_TIMEOUT=120
VPS Config Files
/docker/crowbot/security-baseline.json,version-registry.json,orchestrator-config.json,file-hashes.txt
Test Results (2026-02-28 — FULLY OPERATIONAL)
- ✅ Orchestrator: WORKING (latest execution: success)
- ✅ Intent Classification: All 12 categories operational
- ✅ Smart Routing: Ocean tracking, truck tracking, system health, security, versions, daily plan, todos, projects
- ✅ Sub-services: Context Aggregator 4/4, Briefing ✅, Security GREEN ✅, Versions ✅
- ⚠️ OCEAN_TRACK times out on blocked carriers only (OOCL, Wan Hai, ZIM)
Recent Fixes (2026-02-28)
Issue: n8n updated security policy blocked environment variable access ($env.*), causing WhatsApp Reply node to fail with "access to env vars denied"
Fix Applied:
- Disabled WhatsApp Reply node via n8n REST API
- Method: Fetched workflow → Modified nodes array → Updated via PUT
/api/v1/workflows/{id} - n8n API Key used:
eyJhbGci...(Claude API key fromuser_api_keystable) - WhatsApp functionality temporarily disabled; Telegram remains primary channel
- Orchestrator now responds via Webhook Response node only
Verification:
- Latest execution
18322: finished=1, status=success - Test response: Full JSON with intent classification + response text
- Zero env var errors in recent executions
Known Issues
- SSH commands in Security Patrol may return empty (credential verification needed)
- WhatsApp integration disabled (was non-critical, removed to fix env var blocking)
- OCEAN_TRACK times out on carriers with heavy anti-bot (OOCL, Wan Hai, ZIM)
2. OpenClaw / Clawbot — Multi-Channel AI Chatbot (ACTIVE)
Advanced AI chatbot with Telegram, WhatsApp, and Web UI access.
Basics
- Version: v2026.2.26 (updated 2026-02-27, latest)
- VPS: srv1379713 ([VPS_IP]), port 63034 localhost-only
- Container:
openclaw-ruln-openclaw-1 - Channels: Telegram
@HMannyBot+ WhatsApp (linked 2026-02-27) - Auth Method: OpenAI via OAuth, Anthropic via API key
Access & Authentication
Web UI:
- URL:
http://localhost:63034(via SSH tunnel) - Tunnel:
ssh user@server -N - Gateway Token:
A4orghkMigPlg18UIaWMlsgx21c85EQZ
Telegram: @HMannyBot (Telegram bot token in .env)
WhatsApp: Linked via openclaw channels login (credentials saved, reconnects on restart)
Model Configuration (2026-02-28 — GPT-5.3 CODEX)
Primary Model: openai/gpt-5.3-codex 🚀 LATEST CODING MODEL
- Context: 266K tokens (largest available)
- Max Output: 16K tokens
- Reasoning: Enabled
- Multimodal: text + images
- Cost: $5 input / $20 output per 1M tokens
- Optimized for: Code generation, debugging, architecture, full-stack development
- Alias:
codex
Fallback Chain:
openai/gpt-4.1-mini(fast, cheap, 125K ctx)anthropic/claude-haiku-4-5-20251001(cheapest, 195K ctx)anthropic/claude-sonnet-4-5-20250929(reasoning, 195K ctx)anthropic/claude-opus-4-6(most powerful, 195K ctx, $75/1M output)
Available Providers:
- OpenAI (via OAuth): gpt-5.3-codex, gpt-4.1-mini, gpt-4.1-nano
- Anthropic (via API key): claude-opus-4-6, claude-sonnet-4-5, claude-haiku-4-5
- Local: Ollama (Llama 3.1 8B/70B, needs SSH tunnel)
Model Switching: Use aliases in chat: @codex, @sonnet, @opus, @haiku, @mini, @nano
Setup & Onboarding (2026-02-27)
Initial Setup:
ssh user@server
cd /docker/openclaw-ruln
docker compose exec openclaw openclaw onboardOAuth Flow:
- Wizard provides OAuth URL for OpenAI
- Open URL in browser, authorize OpenAI
- Copy redirect URL from browser (even if 404 error)
- Paste full redirect URL back into terminal
- OpenClaw extracts code and completes OAuth
Link WhatsApp:
docker compose exec openclaw openclaw channels login
# Select WhatsApp, scan QR code with phoneKey Config Files (VPS)
| File | Purpose |
|---|---|
/docker/openclaw-ruln/.env | Env vars (Telegram token, Brave API) |
.openclaw/openclaw.json | Main config (auto-generated on boot) |
.openclaw/agents/main/agent/models.json | Runtime model cache |
.openclaw/agents/main/agent/auth.json | Provider auth (OpenAI OAuth tokens) |
.openclaw/agents/main/agent/auth-profiles.json | Auth profiles + usage stats |
Useful Commands
# Health check
docker compose exec openclaw openclaw health
# Update OpenClaw
docker compose pull openclaw && docker compose down && docker compose up -d
# Configure settings
docker compose exec openclaw openclaw config set <key> <value>
# List available models
docker compose exec openclaw openclaw models list
# Access Web UI
openclaw dashboard # (generates login URL)
# Link new channel
docker compose exec openclaw openclaw channels loginCritical: Entrypoint Behavior
- Hostinger's
/entrypoint.sh→/hostinger/server.mjsauto-injects providers from env vars and overwritesopenclaw.jsonon every boot - To remove a provider: delete from
.envANDdocker compose down && up -d(notdocker restart) - OAuth tokens persist in
auth.json(survive reboots)
3. WhatsApp Bot — n8n Workflow (ACTIVE)
Standalone WhatsApp bot for customer interactions.
- n8n ID:
RU2w9L7oHM0HnAcU - Status: Active
- Integration: Evolution API
- Purpose: Customer support automation, shipment notifications
- Related: Error Handler workflow (
0A6m78fcTqd53C1N)
AI Workflow Orchestrators
4. Ocean Tracker Orchestrator (ACTIVE)
Unified AI-powered tracking for 11 ocean carriers with headless browser and AI parsing.
Overview
- n8n Workflow:
AzACxa8tKeisIYss(ACTIVE, 19 nodes) - Webhook:
POST /ocean-trackwith{"tracking_number": "...", "carrier": "ONE|MSC|MAERSK|CMA|..."} - Pipeline: Webhook → Detect Carrier → IF Error → Switch (11 routes + fallback) → Track → Normalize → Respond
- Carrier auto-detection from container prefix when carrier not specified
11 Carrier Workflows (12 total with orchestrator)
| Carrier | Workflow ID | Webhook | HB Route | Status |
|---|---|---|---|---|
| ONE | sjIvD2jvQBJJQsCQ | GET /one-tracking | direct API | VERIFIED 3/3 |
| MSC | yktm8HGmhAMclGLG | POST /msc-track | /track/msc | VERIFIED 3/3 |
| Yang Ming | Y4otOacbdvQy5qph | POST /yangming-track | /track/yangming | VERIFIED 2/2 |
| Evergreen | 2lcog1Lq9p1gxaOf | POST /evergreen-track | /track/evergreen | VERIFIED 1/1 |
| HMM | 3DJfFyyQyXVLhVM1 | POST /hmm-track | /track/hmm | VERIFIED 2/2 |
| CMA-CGM | vuM2hK1ptcl53bvq | POST /cma-track | /track/cma | VERIFIED |
| Maersk | PJOoXo1rDx0YiCOX | POST /maersk-track | direct API | NEEDS API KEY |
| COSCO | ucOvO235wlsnkvW9 | POST /cosco-track | /track/cosco | Active |
| OOCL | NZIx89az0CXBNxSN | POST /oocl-track | /track/oocl | BLOCKED (Cloudflare) |
| Wan Hai | OkZspGGpM4AkoCW1 | POST /wanhai-track | /track/wanhai | BLOCKED (Imperva) |
| ZIM | WbasTpPdndzwXlB1 | POST /zim-track | /track/zim | BLOCKED (Akamai) |
AI Technology
- Primary: Headless Browser Service (Playwright + AI parsing with Claude Haiku)
- Fallback: Direct carrier APIs where available (ONE, Maersk)
- Anti-Bot: Stealth plugin, rotating user agents, random delays, mouse movement
Container Prefix Auto-Detection
- ONE: ONEU, KKTU, TEMU, NYKU, ONEY
- MSC: MEDU, MSCU, MSRU, GESU, TRHU (+ slot: LTIU, IMTU, HMCU)
- Maersk: MAEU, MSKU, MRKU, MRSU, TCLU, TCNU (+ slot: UETU)
- CMA-CGM: CMAU, CMDU, CXDU, CGMU
- COSCO: COSU, CSLU, CCLU, CSNU
- HMM: HDMU, HMMU
- Evergreen: EGLV, EGHU, EGSU
- Yang Ming: YMLU, YMJA
- OOCL: OOLU, OOCL
- Wan Hai: WHLU, WHSU, WHLC
- ZIM: ZIMU
5. WSI Follow-up Email Ingestor (ACTIVE)
AI-powered email classifier for WSI follow-up tasks with Mission Control integration.
Overview
- n8n ID:
bpSRrvueoqy1E32M - Status: Active
- Webhook: POST
/wsi-tasks - Production URL:
https://n8n.[VPS_HOSTNAME]/webhook/wsi-tasks - API Key:
[API_KEY](body fieldapi_key) - AI Model:
claude-haiku-4-5-20251001(credential[CREDENTIAL_ID])
Architecture
- Single webhook serves both email ingestion and CRUD API
- IF Route:
$json.body.actionexists → CRUD Handler (TRUE) | AI Classify (FALSE) - Email ingestion path: Webhook → Route(FALSE) → AI Classify (Claude Haiku) → Store Task
- CRUD API path: Webhook → Route(TRUE) → CRUD Handler
- Storage:
$getWorkflowStaticData('global')— persists in n8n DB, max 500 tasks
AI Classification Output
Claude Haiku classifies each email into:
- priority: HIGH | MEDIUM | LOW
- category: MISSING_DOCS | PAYMENT | TRACKING | CUSTOMS | GENERAL
- sentiment: NEUTRAL | URGENT | FRUSTRATED
- summary, action_required, due_suggestion, shipment_ref
CRUD API Actions
All require api_key in body.
| Action | Fields | Description |
|---|---|---|
list | status, priority, category, search, limit | List/filter tasks |
get | task_id | Get single task |
update | task_id, status, assigned_to, notes, priority | Update task |
delete | task_id | Delete task |
stats | — | Counts by status/priority/category |
bulk_update | task_ids[], status, assigned_to | Bulk update |
Task Statuses
PENDING → IN_PROGRESS → DONE
Mission Control Integration
- Section 4 "WSI Follow-up Tasks" with live JS polling every 60s
- Stats boxes (total, pending, in-progress, done)
- Filter buttons by status
- Task cards with priority badges, category pills, email context
- Inline status update and assign buttons
6. Expediente AI Extract (ACTIVE)
AI-powered document data extraction for Expediente platform.
- n8n ID:
0DN5KduorqBsJk4B - Webhook:
/expediente-extract - Status: Active
- Purpose: Extract structured data from uploaded documents using Claude AI
- Integration: Expediente Next.js app → n8n webhook → Claude Haiku → structured JSON
7. Expediente Contract Generator (ACTIVE)
AI-powered contract generation for Expediente platform.
- n8n ID:
owJ7egjjRphZIqgY - Webhook:
/expediente-contract - Status: Active
- Purpose: Generate legal contract documents based on case data
- AI Model: Claude Haiku/Sonnet for contract drafting
8. HandyManny Geocode AI (ACTIVE)
AI-powered address geocoding for shipment tracking.
- n8n ID:
J76GltqEdd731XGY - Webhook:
/webhook/geocode-ai - Status: Active
- Purpose: Convert addresses to coordinates using AI + geocoding APIs
- Integration: HandyManny shipment creation → geocode → map display
9. AP Invoice Processor (INACTIVE — Ready for Testing)
AI-powered AP invoice extraction and validation system.
Overview
- n8n ID:
YYUjYczdRH8kIfAG - Nodes: 24
- Status: Inactive (ready for testing)
- Webhook: POST
/ap-invoice-process - AI Model: Claude 3.5 Haiku (credential
[CREDENTIAL_ID])
Architecture Flow
Webhook POST /ap-invoice-process
→ Extract File Info (multipart or base64 JSON)
→ Extract Text from PDF
→ PDF Quality Gate (word count >= 20, has numbers)
→ AI Extract (Claude 3.5 Haiku, 15 fields + tax)
→ AI Extraction Validation
→ 8 PARALLEL exception checks:
1. Query AP - Find Purchasing Party
2. Query Shipment - Find by BL/Container
3. Check Duplicate Invoice
4. Check Payment Status
5. Check Amount Tolerance
6. Check Currency Mismatch
7. Check Tax IVA (16% validation)
8. Check Shipment Dates
→ Exception Evaluator
→ Build Response (Success/Blocked/Rejected)
→ Respond to Webhook
→ Audit LogAI Extraction Schema (15 fields)
vendor_name, vendor_code, invoice_number, invoice_date, invoice_amount, currency, tax_amount, tax_rate, master_bill_of_lading, house_bill_of_lading, container_number, vessel_name, voyage_number, consignee, description
Exception Check Rules
| Check | Condition | Severity |
|---|---|---|
| DUPLICATE_INVOICE | Invoice# found in AccTransactionHeader | block |
| ALREADY_PAID | Vendor AP lines already posted | block |
| AMOUNT_TOLERANCE | >25% variance from expected | block |
| AMOUNT_TOLERANCE | 10-25% variance | warn |
| CURRENCY_MISMATCH | Invoice currency != CW charge currency | warn |
| TAX_IVA | Tax rate != 16% or math mismatch | warn |
| DATE_BEFORE_DEPARTURE | Invoice date < shipment ETD | warn |
| DATE_TOO_OLD | Invoice date > 180 days after arrival | warn |
Response Types
- Success (
success: true): All checks passed or only warnings - Blocked (
success: false, blocked: true): Has blocking exceptions - Rejected (
success: false, rejected: true): Early rejection (PDF unreadable or AI extraction incomplete)
Pending
- Activate workflow and test with real AP invoice PDFs
- Verify CargoWise table/column names match production DB
- Connect Audit Log node to storage (Google Sheets, HTTP, or DB)
10. AN Audit System (INACTIVE — 7 Workflows)
Multi-workflow AI validation system for Arrival Notices.
Overview
Standalone n8n workflow system that receives parsed Arrival Notice data, queries CargoWise (CW) for comparison data, runs all TFS validation rules, and returns a structured JSON audit result. Split across 7 modular n8n workflows.
Workflow IDs
| # | Workflow Name | n8n ID | Nodes | Type |
|---|---|---|---|---|
| 1 | AN Audit -- Orchestrator | AsL9OZSRkD7calhd | 19 | Webhook + dispatch |
| 2 | AN Audit -- Field Validation | 5Ftc0ei99NGwHl5c | 2 | Pure logic |
| 3 | AN Audit -- CW Comparison | TM1SzEe34ssgXRKc | 3 | SQL + logic |
| 4 | AN Audit -- ETA & Routing | Zj3MAJ9wZa4QlDnX | 3 | SQL + logic |
| 5 | AN Audit -- Container Audit | kjaov3J6MaXvCJWG | 3 | SQL + logic |
| 6 | AN Audit -- Regulatory Logic | HdJJUOgZnblifCYK | 2 | Pure logic |
| 7 | AN Audit -- Financial Audit | KtoUCulKnYfG9DKE | 3 | SQL + logic (FRT only) |
Architecture
- Orchestrator: Webhook POST
/an-audit→ Determine Type (FRT/CHB) → CW Match SQL → IF Match → dispatch to 6 sub-workflows sequentially → Aggregate Results → Respond - Sub-workflows: executeWorkflowTrigger v1.1 with
inputSource: "passthrough" - Execute Sub-workflow nodes: v1.2 with
source: "database"
Sub-Workflow Details
- Field Validation (pure logic): TFS Table 0 required field matrix
- CW Comparison (1 SQL query): Vessel, carrier, POL, POD, consignee comparison
- ETA & Routing (1 SQL query): Transport legs, variance detection, RAIL routing
- Container Audit (1 SQL query): Per-container validation against CW
- Regulatory Logic (pure logic): IT#/RRN updates based on discharge rules
- Financial Audit (1 SQL query, FRT only): AP existence, telex release, cost variance
Process Result Logic
- Any
stop_processing: true→ EXCEPTION - FRT + telex missing → FINANCIAL_PENDING
- Minor issues but no stops → PARTIAL_SUCCESS
- No issues → SUCCESS
Status
- All 7 workflows created and validated (currently inactive)
- Pending: activate orchestrator, end-to-end test with real CW data
11. CHAROS Batch Tracker (ACTIVE)
AI-powered batch truck tracking with branded email reports.
Flow 1: CHAROS Batch Tracker
- n8n ID:
fCVbPtxhdMcroH4P - Nodes: 8
- Webhook: POST
/charos-batch-track - Production URL:
https://n8n.[VPS_HOSTNAME]/webhook/charos-batch-track - Status: Active
- AI Model:
claude-haiku-4-5-20251001(credential[CREDENTIAL_ID]) - Headless Browser:
http://headless-browser:3000/scrape
Flow 2: CHAROS Email Report
- n8n ID:
ry7zDIJTBXzV1dez - Nodes: 7
- Webhook: POST
/charos-email-report - Status: Active (Gmail OAuth configured)
- Features: CHAROS branded HTML email, KPI boxes, status categorization, container chips
Status Categorization Logic
| Pattern | Category |
|---|---|
| Default (tracking found) | on_time |
| stop/park/idle/detenid/estaciona | stopped |
| delay/retras/demora/lento | delayed |
| session_expired: true | expired |
| tracking_found: false | not_found |
12. WSI Sales Digest Generator (ACTIVE)
Automated daily AI-powered sales digest email.
- n8n ID:
BssAxFxxEWk2T67T - Status: Active
- Schedule: Daily 5 AM CST (cron)
- Purpose: Generate daily sales summary email for WSI team
- AI Model: Claude Haiku for digest generation
- Data Sources: Salesforce Data Hub, CargoWise metrics
13. VIA Q&A Sync (ACTIVE)
AI-powered Q&A synchronization for VIA platform.
- n8n ID:
hZwPmavou0yhBXlQ - Status: Active
- Purpose: Sync and process VIA platform Q&A data
- Integration: VIA dashboard knowledge base
14. Via-Dev Intelligence (ACTIVE)
Development intelligence and monitoring for VIA platform.
- n8n ID:
Q1xBoqjsUQLmfpqC - Status: Active
- Purpose: Monitor VIA development metrics and generate insights
15. Mission Control AI Workflows (3 ACTIVE)
AI-powered Mission Control automation suite.
| Workflow | ID | Purpose |
|---|---|---|
| MC Status | FJBz5E7sDbct4OSN | System health monitoring with AI analysis |
| MC Email | oR4E28Vizh6bNEHz | Automated email notifications |
| MC AI | YQCY1c9bZTghl8yv | AI process scanning and monitoring |
Scheduled AI Services
16. CrowBot Security Patrol (DAILY 3 AM CST)
Automated security scanning and alerting system.
- n8n ID:
2OZeifB6TsZXrpzM - Schedule: Daily 3 AM CST
- Scans: Port scan, Docker security, auth logs, SSL cert expiry (4 domains), DB security, file integrity (SHA-256), system resources
- Output: GREEN/YELLOW/RED JSON + Telegram alert
- Alert Threshold: Any YELLOW or RED finding triggers immediate notification
17. CrowBot Version Manager (DAILY 2 AM CST)
Automated version and dependency monitoring.
- n8n ID:
7R3kt0bM9TLhUPzq - Schedule: Daily 2 AM CST
- Checks: Docker images, n8n version, SSL expiry, npm audit (HandyManny, Expediente), image version comparison
- Output: Version registry JSON + Telegram alert for outdated packages
18. CrowBot Daily Briefing (DAILY 7 AM CST)
AI-generated daily briefing for task planning.
- n8n ID:
DluVLcWCRANrFwp3 - Schedule: Daily 7 AM CST
- Flow: Cron → Fetch Context (4 sources) → Build AI Prompt → Claude Haiku → Parse → Format → Telegram
- Output Categories: DEBE HACER HOY / DEBERÍA HACER / VICTORIAS RÁPIDAS / ESTADO
- Context Sources: projects.json, MC status, WSI tasks, HandyManny dashboard stats
- AI Pattern: Build request body as JS object in Code node →
={{ JSON.stringify($json.requestBody) }}in HTTP node
19. CrowBot Context Aggregator (ON-DEMAND)
Multi-source context aggregation for AI decision-making.
- n8n ID:
3KV33ay3BGnmqORk - Trigger: On-demand via CrowBot commands
- Architecture: 7-node sequential chain (avoids Merge bug + Code sandbox
fetch()limitation) - Sources: projects.json (basic auth), MC status, WSI tasks (CRUD), HandyManny dashboard stats
- Fault Tolerance: All HTTP nodes use
onError: continueRegularOutput
20. OpenClaw Daily Sync (6 AM + EVERY 4 HOURS)
Automated context sync for OpenClaw AI chatbot.
Basics
- Location:
~/openclaw-sync/ - Schedule: 6 AM daily, every 4 hours (Task Scheduler)
- Purpose: Syncs Google Calendar + projects + notes →
USER.mdon VPS
Files
~/openclaw-sync/
├── sync_to_openclaw.sh # Main sync script
├── fetch_calendar.py # Google Calendar API
├── config.env # VPS details
├── claude_ai_projects.md # Manually maintained project list
├── calendar-credentials.json # Google OAuth creds
├── run-daily.bat # Task Scheduler launcherConfig
- VPS:
[VPS_IP], SSH key~/.ssh/id_hostinger - Workspace:
/docker/openclaw-ruln/data/.openclaw/workspace/ - Calendar: Python fallback with
google-api-python-client
Maintenance
- Update projects: edit
~/openclaw-sync/claude_ai_projects.md - Calendar token: auto-refreshes; if expired, run
python fetch_calendar.pymanually
21. HandyManny Auto-Track (EVERY 4 HOURS)
Automated shipment tracking refresh.
- n8n ID:
XEYwLqrwEJwCz39g - Schedule: Every 4 hours
- Webhook:
/api/shipments/auto-track - Purpose: Auto-refresh tracking data for active shipments in HandyManny portal
- Integration: Calls Ocean Tracker Orchestrator for updated container status
AI Infrastructure
Headless Browser Service (VPS 1139900)
Shared Playwright-based browser automation service for AI scraping.
Basics
- Docker:
/docker/headless-browser/on [VPS_IP] (srv1139900) - Tech: Playwright v1.51.0 + stealth plugin + Fastify
- Internal URL:
http://headless-browser:3000(Dockerroot_defaultnetwork) - Local source:
~/projects/docker-stack/headless-browser/src/ - Deploy: SCP →
cd /docker/headless-browser && docker compose up -d --build - Resources: 2GB RAM, 2 CPU, 1GB shm, MAX_CONCURRENT=5
11 Routes
/health, /scrape (generic), /track/msc, /track/maersk, /track/cma, /track/cosco, /track/hmm, /track/evergreen, /track/yangming, /track/oocl, /track/wanhai, /track/zim
Anti-Bot Features
playwright-extra+puppeteer-extra-plugin-stealth- Rotating user agents (8 realistic UAs)
- Random delays (500-2000ms), mouse movement, scrolling
- Cookie consent auto-dismiss, resource blocking (images/fonts/analytics)
Performance
- MSC page fetch: ~6s (305KB HTML → 4.7KB cleaned text)
- Full e2e: ~8.3s (webhook to response)
Used By
- Ocean Tracker Orchestrator (9 carriers)
- CHAROS Batch Tracker
- Truck Tracker
- MSC Shipment Tracker
Anthropic / Claude AI Credentials
Shared Claude API access across all AI workflows.
Primary Credential
- ID:
[CREDENTIAL_ID] - Type: Anthropic API account
- Models: Claude 3.5 Haiku, Claude 3.5 Sonnet, Claude Opus 4.6
- Usage: ALL n8n AI workflows use this credential
Used By (20+ workflows)
- Ocean Tracker Orchestrator + 11 carrier workflows
- WSI Follow-up Email Ingestor
- Expediente AI Extract
- Expediente Contract Generator
- HandyManny Geocode AI
- AP Invoice Processor
- CHAROS Batch Tracker
- CrowBot Daily Briefing
- CrowBot Context Aggregator
- WSI Sales Digest Generator
- Mission Control AI workflows
- And more...
Model Selection Strategy
| Use Case | Model | Reasoning |
|---|---|---|
| Email classification | Haiku 4.5 | Fast, cheap, accurate for structured data |
| HTML parsing | Haiku 4.5 | Handles HTML well, cost-effective |
| Document extraction | Haiku 3.5 | Balance of speed and accuracy |
| Contract generation | Sonnet 3.5 | Complex reasoning, higher quality output |
| Daily briefing | Haiku 4.5 | Quick summaries, conversational output |
| Security analysis | Sonnet 3.5 | Thorough analysis, pattern recognition |
Mission Control AI Status Monitor
Real-time AI service monitoring dashboard.
Overview
- Location: Mission Control admin section (mc.handymanny.cloud)
- Endpoint: GET
/api/ai-status - Refresh: Manual button + auto-refresh every hour
- Status: Deployed (2026-02-26)
Monitored Services (5)
- Claude API (Anthropic) — model availability, quota, current model
- Ollama (local) — server status, available models
- NVIDIA (free API) — DeepSeek V3.2, Nemotron Ultra availability
- Gemini (Google) — Flash/Pro availability
- n8n Anthropic — credential status, workflow health
Status Indicators
- Green: Service operational, API responding
- Yellow: Service degraded, high latency, or approaching quota
- Red: Service down, API error, or quota exceeded
- Current Model: Shows active Claude model (sonnet/opus/haiku)
Integration
- JavaScript polling every 60 minutes
- Admin-only visibility
- Links to n8n workflows using each service
- Usage stats (if available from provider)
Quick Reference
All AI Workflows (30+ Active)
| # | Workflow Name | ID | Type | Status |
|---|---|---|---|---|
| 1 | Ocean Tracker Orchestrator | AzACxa8tKeisIYss | AI Orchestrator | ACTIVE |
| 2 | ONE Tracker | sjIvD2jvQBJJQsCQ | Ocean | ACTIVE |
| 3 | MSC Tracker | yktm8HGmhAMclGLG | Ocean | ACTIVE |
| 4 | Yang Ming Tracker | Y4otOacbdvQy5qph | Ocean | ACTIVE |
| 5 | Evergreen Tracker | 2lcog1Lq9p1gxaOf | Ocean | ACTIVE |
| 6 | HMM Tracker | 3DJfFyyQyXVLhVM1 | Ocean | ACTIVE |
| 7 | CMA-CGM Tracker | vuM2hK1ptcl53bvq | Ocean | ACTIVE |
| 8 | Maersk Tracker | PJOoXo1rDx0YiCOX | Ocean | ACTIVE |
| 9 | COSCO Tracker | ucOvO235wlsnkvW9 | Ocean | ACTIVE |
| 10 | OOCL Tracker | NZIx89az0CXBNxSN | Ocean | BLOCKED |
| 11 | Wan Hai Tracker | OkZspGGpM4AkoCW1 | Ocean | BLOCKED |
| 12 | ZIM Tracker | WbasTpPdndzwXlB1 | Ocean | BLOCKED |
| 13 | WSI Follow-up Ingestor | bpSRrvueoqy1E32M | AI Classifier | ACTIVE |
| 14 | Expediente AI Extract | 0DN5KduorqBsJk4B | AI Extractor | ACTIVE |
| 15 | Expediente Contract Gen | owJ7egjjRphZIqgY | AI Generator | ACTIVE |
| 16 | HandyManny Geocode AI | J76GltqEdd731XGY | AI Geocoder | ACTIVE |
| 17 | AP Invoice Processor | YYUjYczdRH8kIfAG | AI Extractor | INACTIVE |
| 18 | AN Audit Orchestrator | AsL9OZSRkD7calhd | AI Validator | INACTIVE |
| 19 | AN Field Validation | 5Ftc0ei99NGwHl5c | AN Audit | INACTIVE |
| 20 | AN CW Comparison | TM1SzEe34ssgXRKc | AN Audit | INACTIVE |
| 21 | AN ETA & Routing | Zj3MAJ9wZa4QlDnX | AN Audit | INACTIVE |
| 22 | AN Container Audit | kjaov3J6MaXvCJWG | AN Audit | INACTIVE |
| 23 | AN Regulatory Logic | HdJJUOgZnblifCYK | AN Audit | INACTIVE |
| 24 | AN Financial Audit | KtoUCulKnYfG9DKE | AN Audit | INACTIVE |
| 25 | CHAROS Batch Tracker | fCVbPtxhdMcroH4P | AI Parser | ACTIVE |
| 26 | CHAROS Email Report | ry7zDIJTBXzV1dez | Email Gen | ACTIVE |
| 27 | Truck Tracker | 2GF72l5GeWcUYohm | AI Parser | ACTIVE |
| 28 | WSI Sales Digest | BssAxFxxEWk2T67T | AI Generator | ACTIVE |
| 29 | VIA Q&A Sync | hZwPmavou0yhBXlQ | AI Sync | ACTIVE |
| 30 | Via-Dev Intelligence | Q1xBoqjsUQLmfpqC | AI Monitor | ACTIVE |
| 31 | MC Status | FJBz5E7sDbct4OSN | AI Monitor | ACTIVE |
| 32 | MC Email | oR4E28Vizh6bNEHz | Email Gen | ACTIVE |
| 33 | MC AI | YQCY1c9bZTghl8yv | AI Scanner | ACTIVE |
| 34 | CrowBot Orchestrator | cE3MeCxzEq8stEzU | Bot | ACTIVE |
| 35 | CrowBot Security Patrol | 2OZeifB6TsZXrpzM | Scheduled | ACTIVE |
| 36 | CrowBot Version Manager | 7R3kt0bM9TLhUPzq | Scheduled | ACTIVE |
| 37 | CrowBot Daily Briefing | DluVLcWCRANrFwp3 | Scheduled | ACTIVE |
| 38 | CrowBot Context Aggregator | 3KV33ay3BGnmqORk | AI Aggregator | ACTIVE |
| 39 | HandyManny Auto-Track | XEYwLqrwEJwCz39g | Scheduled | ACTIVE |
| 40 | WhatsApp Bot | RU2w9L7oHM0HnAcU | Bot | ACTIVE |
Webhook Endpoints
All webhooks are on: https://n8n.[VPS_HOSTNAME]/webhook/
| Endpoint | Workflow | Method | Auth |
|---|---|---|---|
/ocean-track | Ocean Tracker Orchestrator | POST | None |
/one-tracking | ONE Tracker | GET | None |
/msc-track | MSC Tracker | POST | None |
/yangming-track | Yang Ming Tracker | POST | None |
/evergreen-track | Evergreen Tracker | POST | None |
/hmm-track | HMM Tracker | POST | None |
/cma-track | CMA-CGM Tracker | POST | None |
/maersk-track | Maersk Tracker | POST | None |
/cosco-track | COSCO Tracker | POST | None |
/oocl-track | OOCL Tracker | POST | None |
/wanhai-track | Wan Hai Tracker | POST | None |
/zim-track | ZIM Tracker | POST | None |
/wsi-tasks | WSI Follow-up Ingestor | POST | API Key |
/expediente-extract | Expediente AI Extract | POST | None |
/expediente-contract | Expediente Contract Gen | POST | None |
/webhook/geocode-ai | HandyManny Geocode AI | POST | None |
/ap-invoice-process | AP Invoice Processor | POST | None |
/an-audit | AN Audit Orchestrator | POST | None |
/charos-batch-track | CHAROS Batch Tracker | POST | None |
/charos-email-report | CHAROS Email Report | POST | None |
/crowbot-orchestrator | CrowBot Orchestrator | POST | None |
/crowbot-security | Security Patrol | POST | None |
/crowbot-versions | Version Manager | POST | None |
/crowbot-briefing | Daily Briefing | POST | None |
/crowbot-context | Context Aggregator | POST | None |
/api/shipments/auto-track | HandyManny Auto-Track | POST | None |
Credentials Matrix
| Credential | ID | Type | Used By (count) |
|---|---|---|---|
| Anthropic | [CREDENTIAL_ID] | API Key | 20+ workflows |
| MS SQL (CW) | [CREDENTIAL_ID] | Database | 15+ workflows |
| Gmail | [CREDENTIAL_ID] | OAuth | 5 workflows |
| SSH srv1139900 | ssh-srv1139900-pk | SSH Key | CrowBot, Version Manager |
| Anthropic Header | [CREDENTIAL_ID] | HTTP Auth | Legacy workflows |
| CrowBot Telegram | crowbot-telegram-01 | Telegram API | CrowBot Orchestrator |
API Keys
| Key | Webhook | Field | Purpose |
|---|---|---|---|
[API_KEY] | /wsi-tasks | body api_key | WSI Follow-up CRUD API |
[API_KEY] | /sf-data | body api_key | Salesforce Data Hub |
Scheduled Tasks Summary
| Task | Frequency | Workflow/Service |
|---|---|---|
| CrowBot Security Patrol | Daily 3 AM CST | n8n 2OZeifB6TsZXrpzM |
| CrowBot Version Manager | Daily 2 AM CST | n8n 7R3kt0bM9TLhUPzq |
| CrowBot Daily Briefing | Daily 7 AM CST | n8n DluVLcWCRANrFwp3 |
| OpenClaw Daily Sync | 6 AM + Every 4 hours | Windows Task Scheduler |
| HandyManny Auto-Track | Every 4 hours | n8n XEYwLqrwEJwCz39g |
| WSI Sales Digest | Daily 5 AM CST | n8n BssAxFxxEWk2T67T |
Bot Performance Metrics
CrowBot (2026-02-23)
- Intent Classification: 15/16 pass rate (93.75%)
- Response Time: <2s for most intents
- Timeout Rate: 1/16 (OCEAN_TRACK on OOCL only)
- Uptime: 99.8% (7-day average)
OpenClaw (2026-02-27)
- Channels: 3 (Telegram, WhatsApp, Web UI)
- Model: gpt-4o-mini (default)
- Uptime: 99.9%
- Auto-sync: 6 times per day
Ocean Tracker (2026-02-21)
- Success Rate: 14/25 test BLs (56%)
- Blocked Carriers: 3/11 (OOCL, Wan Hai, ZIM)
- Average Response Time: 8.3s (headless browser), 1-2s (direct API)
- Daily Volume: ~200 tracking requests
WSI Follow-up (Live)
- Tasks Processed: 147 total
- AI Classification Accuracy: 94% (manual review)
- Average Processing Time: 3.2s per email
- Mission Control Integration: Live with 60s polling
Future Enhancements
Planned
- Arrival Alert Pipeline (CrowBot) — Auto-notify <48h arrivals
- Client Auto-Responder (CrowBot) — WhatsApp→tracking automation
- Document Expiry Watchdog (CrowBot) — Monitor document deadlines
- Maersk API Integration — Add Consumer-Key to workflow
- OOCL/Wan Hai/ZIM — Anti-bot bypass with residential proxies
- AP Invoice Processor — Activate and production test
- AN Audit System — Activate and integrate with eAdaptor workflow
Under Development
- Hamid (Anti-Bot Specialist) — Working on OOCL, Wan Hai, ZIM unblocking (starting 2026-02-23)
Troubleshooting
CrowBot Not Responding
- Check Telegram bot service:
ssh user@server 'systemctl status telegram-bot' - Check n8n orchestrator:
https://n8n.[VPS_HOSTNAME]→ workflowcE3MeCxzEq8stEzU - Check fallback mode: Bot should respond with "Orchestrator unreachable, using fallback"
- Test orchestrator directly:
curl -X POST http://localhost:5678/webhook/crowbot-orchestrator -H "Content-Type: application/json" -d '{"message":"test","chatId":"5523342814","userName":"Test","source":"telegram"}' - Check recent executions in n8n for errors
- Restart bot:
ssh user@server 'systemctl restart telegram-bot'
If env var errors appear again:
- Disable problematic nodes via n8n API (see Recent Fixes section)
- n8n API key location:
sqlite3 /var/lib/docker/volumes/n8n_data/_data/database.sqlite 'SELECT apiKey FROM user_api_keys WHERE label="Claude API";' - Fetch workflow:
curl -H "X-N8N-API-KEY: <key>" http://localhost:5678/api/v1/workflows/cE3MeCxzEq8stEzU - Update workflow: Use Python script to disable node + PUT request
OpenClaw Offline
- ssh user@server -N`
- Check container:
ssh user@server 'docker ps | grep openclaw' - Restart:
ssh user@server 'cd /docker/openclaw-ruln && docker compose restart' - Check OAuth: Run
openclaw onboardif model list empty
Ocean Tracker Timeout
- Check headless browser:
http://headless-browser:3000/health - Restart browser:
ssh user@server 'cd /docker/headless-browser && docker compose restart' - Check specific carrier workflow in n8n
- For blocked carriers (OOCL/Wan Hai/ZIM): Contact Hamid
WSI Follow-up Tasks Not Showing
- Check Mission Control Section 4 polling (60s interval)
- Test CRUD API:
curl -X POST https://n8n.[VPS_HOSTNAME]/webhook/wsi-tasks -H "Content-Type: application/json" -d '{"api_key":"[API_KEY]","action":"stats"}' - Check n8n workflow
bpSRrvueoqy1E32Mactive - Check Power Automate flow is flagging emails correctly
AI Extraction Failing
- Check Anthropic credential in n8n: credential ID
[CREDENTIAL_ID] - Verify API quota not exceeded
- Check AI Status Monitor in Mission Control for Claude API health
- Review n8n execution logs for specific error message
Last Updated: 2026-02-28 Total AI Workflows: 40 active, 7 inactive Total Bots: 3 (CrowBot [Telegram only], OpenClaw, WhatsApp Bot) Total Scheduled Services: 6 AI Infrastructure: 1 headless browser service, 1 shared Anthropic credential Recent Fixes: CrowBot Orchestrator (2026-02-28) — WhatsApp node disabled, full Telegram functionality restored