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.
WSI Operations Specialist
Salesforce CRM
Connection
- API: Power Automate connector → Azure API Hub → Salesforce
- Objects: Account, Task, Event, User, Opportunity, Contact, Lead
Sales Pipeline Stages (Sales_Stage__c)
- Prospect → 2. Conversing with PIC → 3. Opportunity → 4. Active → 5. Won → 6. Freezer (dormant)
Sales Team (9 users)
| Name | OwnerId | Territory | Profile | Status |
|---|---|---|---|---|
| Manuel Chavez | 005Kd000004ZvCKIA0 | Admin | Admin 00eKd000001X48MIAS | Active |
| Cristhian Trinidad | 005Kd000004a5hhIAA | MX accounts | Admin 00eKd000001X48MIAS | Active |
| Janice Kim | 005Kd000004a9wjIAA | LAX/SoCal (largest book) | Sales 00eKd000001APnrIAG | Active |
| Thomas Kim | 005Kd000004a9weIAA | LAX area | Sales alt 00eVp000001sqDxIAI | Active |
| George Damwijk | 005Kd000004ao2MIAQ | AZ market | Sales | Active |
| Jimmy Yim | 005Kd000004ao2RIAQ | SoCal | Sales | Active |
| Michael Mendoza | 005Kd000004aZgzIAE | AZ, national | Sales | Active |
| Jeff Chang | 005Kd000004asgOIAQ | Unknown | Sales | Inactive (last login Jul 2025) |
| Insights Integration | 005Kd000004a7N2IAI | — | Integration | System |
Account Object — Key Fields
Standard: Id, Name, Type (Customer/Prospect/Consignee/Co-loader), Industry, Phone, Website, OwnerId, BillingAddress, ShippingAddress Sales: Sales_Stage__c, Account_Status__c (New/Qualified), Elapsed__c (activity bucket), T_Y_Volume__c (Hot/Warm/Medium), Lead_Date__c, Assign_Date__cServices (Booleans): Ocean_Import_FCL__c, Ocean_Import_LCL__c, Ocean_Export_FCL__c, Air_Import__c, Air_Export__c, Over_the_Road_FTL__c, Customs_Brokerage__c, Warehouse__c, Hazmat_DG__cCargo: Container__c (20/40/40HQ/NOR), Commodity__c, Company__cDataMyne: Company_Name__c, Competitor_VOCC__c, Country_of_Origin__c, Port_of_Origin__c, Port_of_Destination__c, HS_Code_List__c, Total_Volume_Current_Year__c, Total_Volume_Last_Year__cIntegration: CWCode__c — CargoWise customer code (links SF Account ↔ CW OrgHeader)
Top Accounts by Volume (TEU, Last Year)
Tireco (18,267), Koyorad (908), Liberty Paper (825), VM International (480), Twenty Four 7 (112→430 CY), Master Toy (177), ACM Tech (30→141 CY)
Task Object (Email/Call Activities)
Subject,Description(full email body with To/CC/BCC),Status,Priority,TaskSubtype(Email/Call/Task),OwnerId,AccountId,WhoId- Sample: 10 tasks from George Damwijk (Feb-Mar 2025), all email
- Rate trend: China→AZ: $5,800 (Jan) → $4,600 (Feb 24-25)
- Key leads: Barron Lighting (2 tasks), UP Auto (multi-country), Today's Patio
Event Object
Subject,Description,Type,Location,ActivityDate,DurationInMinutes,OwnerId,AccountId- Sample: 10 events (Oct 2024-Mar 2025), George Damwijk (7) + Manuel (3)
User Object
- Identity, Profile/Permissions, Contact/Locale, Login/Security, Photo, Email/Feed prefs
- Key flags: ForecastEnabled (Manuel+Cristhian only), MarketingUser (same), UserDebugModePref (George only)
Data Quality Issues
- Placeholder phone numbers, missing addresses,
Phiysical_Address_fx__ctypo, possible duplicates, sample accounts mixed in
CargoWise Integration
eAdaptor
- Endpoint:
https://jecprdservices.wisegrid.net/eAdaptor(JEC/PRD/LAX) - Credential: "EadaptorProdCredentials" (HTTP Basic Auth)
- MS SQL: Credential
[CREDENTIAL_ID]
Arrival Notice Upload Workflow (hJdFaSEsRZc1VtuF, ACTIVE)
- 15 nodes: Webhook → Extract → Cognito Auth → S3 Upload → AI Parser → Poll Results → CW SQL Match → eAdaptor Upload → Callback
- AI Parser:
udm.api.junctionnet.cloud(Cognito auth, org: WSI) - CW Match: Consol→Shipment→Declaration priority, SCAC-prefix stripping
- Doc codes: CustomsDeclaration→ARN, has CAN→RAN, no CAN→CAN
AN Audit (7 workflows, INACTIVE)
- Orchestrator
AsL9OZSRkD7calhd+ 6 sub-workflows (Field Validation, CW Comparison, ETA & Routing, Container Audit, Regulatory Logic, Financial Audit) - CW Tables: JobConsol, JobShipment, JobDeclaration, JobConsolTransport, JobConsolContainer, AccTransactionHeader, JobMilestone, OrgHeader
AP Invoice Processor (YYUjYczdRH8kIfAG, INACTIVE)
- 24 nodes: Webhook → PDF Extract → AI Extract (Claude Haiku, 15 fields) → 8 parallel CW checks → Exception Evaluator → Response
- 6 exception checks: Duplicate, Already Paid, Amount Tolerance (>25%=block, 10-25%=warn), Currency Mismatch, Tax IVA, Date validation
WSI Follow-up Email Ingestor (bpSRrvueoqy1E32M, ACTIVE)
Architecture
- Webhook:
POST /wsi-tasks| API Key:[API_KEY] - Email path: Power Automate (flagged Outlook emails) → n8n → Claude Haiku classify → Store task
- CRUD path: action=list|get|update|delete|stats|bulk_update|get_recap
- Recap path: action=recap → Recap Builder → AI Recap → staticData.lastRecap
- Storage:
$getWorkflowStaticData('global')(max 500 tasks, newest first) - AI: Claude Haiku 4.5 classifies: priority (HIGH/MEDIUM/LOW), category (MISSING_DOCS/PAYMENT/TRACKING/CUSTOMS/GENERAL), sentiment, summary, action_required
- Statuses: PENDING → IN_PROGRESS → DONE
Power Automate Email Recap
- Flow:
Recap JSON cada 20 minutos— every 20 min → Get emails → Filter unread/important/flagged → POST/wsi-tasksaction=recap - AI Recap: Claude Haiku generates Spanish briefing → stored as
staticData.lastRecap - Dashboard: MC section 5 + WSI MC section 7 poll
action: get_recapevery 2 min
Salesforce Data Hub (aXxt5OPrwtVoGZsQ, ACTIVE)
- Webhook:
POST /sf-data| API Key:[API_KEY] - Actions:
push(PA sends raw SF objects),get(cached data),stats(computed metrics) - Data source: Power Automate pushes SF objects (Opportunities, Accounts, Contacts, Leads, Tasks, Events, Users)
- Stats:
total_pipeline,weighted_pipeline,win_rate_pct,avg_deal_size,open_leads,overdue_tasks,total_accounts,total_contacts,stage_breakdown,lead_sources,pipeline_by_owner - Dashboard: MC section 8 polls stats + get every 2 min
Shipment Notice Emailer (dH1nNvwPxR3eyGU8, ACTIVE)
- Webhook:
POST /shipment-notice| Carriers: ONE + MSC - MSC merge bug FIXED (2026-02-22): Added Merge node before Normalize
WSI MC — Standalone Dashboard
- Live:
wsi.handymanny.cloud(basic auth: same as MC) - Source:
~/wsi-mc/| Deploy:bash ~/wsi-mc/deploy.sh - Stack: Python generator → static HTML → nginx:alpine → Traefik HTTPS
- Theme: Light/white, WSI blue
#0457A1, red#E53B30, bg#F2F7FA - 7 sections: Overview → Email Briefing (full-width, 3-col) → Follow-up Tasks → Team + Assignments → n8n Workflows + CargoWise
- Data:
~/mission-control/projects.json(wsi section) + n8n/wsi-tasksAPI + localStorage CRUD - localStorage keys:
wsi-mc-team/wsi-mc-tasks - JS bug fix (2026-02-23): Python
'''ate\'→ "Unexpected string". Fixed with\x27.
Sales MC — WSI Salesman Dashboard
- Live:
sales.handymanny.cloud(basic auth:admin/WestSide) - Source:
~/projects/sales-mc/| Deploy:cd ~/projects/sales-mc && bash deploy.sh - Stack: React (Vite) + Express 5 + better-sqlite3 + nginx (Docker multi-stage)
- Features: Weighted scorecard (A+ to F), 7 salespeople, 12 months data, KPI bar, alerts, Import Intel, drill-down
- Real Team: Janice Kim (#1 A+), Thomas Kim (#2), George Damwijk, Jimmy Yim, Michael Mendoza, Cristhian Trinidad | Jeff Chang (inactive)
- Import Intel: 10 records — Tireco, Koyorad, Liberty Paper, Barron Lighting, GT Industries, VM Int'l, UP Auto, Today's Patio, Twenty Four 7, Grupo Logistico
- n8n: Salesforce Data Hub (
aXxt5OPrwtVoGZsQ, ACTIVE,/webhook/sf-data) | Sales Digest Generator (BssAxFxxEWk2T67T, ACTIVE, cron 5AM CST) - API:
/api/kpis,/api/scorecard,/api/salespeople/:id,/api/alerts,/api/sync/salesforce,/api/upload/import-intel,/api/entity-review,/api/digest(POST),/api/digest/latest(GET) - AI Digest: Daily newspaper generated by Claude Haiku 4.5 — fetches 10 internal APIs + RSS → AI generates lead, columns, Trade Wire (with logos/links), Champion, Curious Fact, Finance Brief, ticker, briefs → stored in
digestsSQLite table. API key:digest_wsi_9f3a2b7c8e1d4056. Cost: ~$0.01/day. - Re-seed:
ssh ... "docker volume rm sales-mc_sales-data"then redeploy
WSI Management Report — Power BI Rebuild (2026-02-23)
- Source:
~/projects/wsi-management-report/| Git: commit599c1a9 - Stack: Static HTML + CSS + JS (Chart.js 4.4 + Leaflet 1.9 + DM Sans) | 209KB single file
- 30 pages: Customs(7), Volume(7), Financial(7), Rankings(2), Dashboards(5), Other(1)
- 58 charts, 5 Leaflet maps, 31 sortable tables, 80 KPI cards, 27 filter bars
- TODO: Deploy to VPS, connect to live CargoWise data, add deploy.sh
CHAROS Trucking (n8n Workflows)
Batch Tracker (fCVbPtxhdMcroH4P, ACTIVE)
- Webhook:
POST /charos-batch-track - Input:
{ shipments: [{ unit, containers[], tracking_url, eta }] } - Output:
{ totals: {trucks, on_time, attention}, shipments: [{status, location, speed, driver}] } - Status categories: on_time, stopped, delayed, expired, not_found
Email Report (ry7zDIJTBXzV1dez, ACTIVE)
- Webhook:
POST /charos-email-report - Input:
{ to, cc, from, subject, data: {batch tracker output} } - Preview mode: If
toempty, returns HTML without sending - Gmail credential:
[CREDENTIAL_ID]