Skip to content

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.

Salesforce Playbook — Domain Specialist ​

Connection Architecture ​

Salesforce → Power Automate (Azure API Hub connector) → n8n Salesforce Data Hub → Dashboards
  • No direct Salesforce API — all data flows through Power Automate
  • n8n Data Hub: aXxt5OPrwtVoGZsQ (ACTIVE), webhook POST /sf-data
  • API Key: [API_KEY]

Pipeline Stages (WSI Sales Process) ​

Prospect → Conversing with PIC → Opportunity → Active → Won
                                                    ↘ Freezer (dormant)
  • Prospect: Initial contact, no engagement yet
  • Conversing with PIC: Talking to Person in Charge, gathering intel
  • Opportunity: Quoted, active negotiation
  • Active: Shipping cargo, revenue generating
  • Won: Closed deal, ongoing business
  • Freezer: Went dormant, revisit later

WSI Sales Team (9 users total) ​

NameRoleTerritoryProfileStatus
Janice Kim#1 SalesSoCal (largest book)Sales 00eKd000001APnrIAGActive
Thomas Kim#2 SalesLAXSales alt 00eVp000001sqDxIAIActive
George DamwijkSalesArizonaSales 00eKd000001APnrIAGActive
Jimmy YimSalesSoCalSales 00eKd000001APnrIAGActive
Michael MendozaSalesAZ / NationalSales 00eKd000001APnrIAGActive
Cristhian TrinidadSalesMexicoAdmin 00eKd000001X48MIASActive
Jeff ChangSales—Sales 00eKd000001APnrIAGInactive (since Jul 2025)
Manuel ChavezAdmin—Admin 00eKd000001X48MIASActive (system)
System/Integration———Active (system)

Salesforce Objects (Documented) ​

Account ​

  • ~100+ accounts, mostly US (CA/AZ), some MX
  • Key custom field: CWCode__c = CargoWise Company Code (links SF Account ↔ CW OrgHeader.OH_Code)
  • Custom fields: DataMyne trade intel (competitors, ports, HS codes, volumes)
  • Service mode booleans: Ocean, Air, OTR
  • Owner: Assigned to sales rep (User.Id)

Top Accounts by Volume ​

AccountTEU (Last Year)Key CargoSales Rep
Tireco18,000Tires—
Koyorad908Auto radiators—
Liberty Paper825Paper products—
VM International480——
Twenty Four 7430 (CY)——

Opportunity ​

  • Linked to Account
  • Stages match pipeline above
  • Amount = deal value
  • CloseDate = expected close
  • StageName = current pipeline stage
  • Used for: total_pipeline, weighted_pipeline, win_rate_pct, avg_deal_size

Task ​

  • Activities assigned to users
  • Types: Email, Call, Follow-up
  • Status: Open, Completed, Deferred
  • ActivityDate: Due date
  • Sample data: Mostly George Damwijk emails (Feb–Mar 2025), rate trends China→AZ ($5.8K→$4.6K)
  • Key leads in tasks: Barron Lighting, UP Auto, Today's Patio, GT Industries

Event ​

  • Calendar activities (meetings, calls)
  • StartDateTime, EndDateTime
  • Linked to Account/Contact

Contact ​

  • People at accounts
  • Linked to Account via AccountId

Lead ​

  • Pre-account prospects
  • LeadSource: Web, Referral, Trade Show, etc.
  • Status: New, Working, Qualified, Converted

User ​

  • SF system users (sales reps, admins)
  • IsActive boolean
  • ProfileId links to profile (Admin vs Sales)

DataMyne Fields (Trade Intelligence) ​

Custom fields on Account for competitive intel:

  • Competitors: Who else ships for this account
  • Ports: Origin/destination ports used
  • HS Codes: Product classification codes
  • Volumes: Historical TEU/shipment counts
  • Trade lanes: Origin country → destination pairs

Salesforce Data Hub (n8n Workflow) ​

Actions ​

ActionInputOutput
pushRaw SF objects from Power AutomateStores in staticData
getOptional object type filterReturns cached SF data
stats—Computed metrics (see below)

Stats Response Fields ​

json
{
  "total_pipeline": 0,
  "weighted_pipeline": 0,
  "win_rate_pct": 0,
  "avg_deal_size": 0,
  "open_leads": 0,
  "overdue_tasks": 0,
  "total_accounts": 0,
  "total_contacts": 0,
  "stage_breakdown": {},
  "lead_sources": {},
  "pipeline_by_owner": {}
}

Power Automate Push Schedule ​

  • Recap JSON cada 20 minutos flow pushes email data every 20 min
  • SF object sync: Opportunities, Accounts, Contacts, Leads, Tasks, Events, Users

Sales MC Scoring Model ​

Weighted Scorecard (A+ to F) ​

  • 7 real WSI salespeople scored monthly (6 active + Jeff Chang inactive)
  • 12 months of historical data
  • Grades: A+, A, B+, B, C+, C, D, F
  • Current rankings (2026-02-23):
    1. Janice Kim — A+
    2. Thomas Kim
    3. George Damwijk
    4. Jimmy Yim
    5. Michael Mendoza
    6. Cristhian Trinidad
    7. Jeff Chang (inactive, active=0)

Import Intel (Sales MC) ​

10 records with real WSI accounts: Tireco, Koyorad, Liberty Paper, Barron Lighting, GT Industries, VM Int'l, UP Auto, Today's Patio, Twenty Four 7, Grupo Logistico

Sales MC API Endpoints ​

EndpointPurpose
/api/kpisKPI summary
/api/scorecardFull scorecard with grades
/api/salespeople/:idIndividual drill-down
/api/alertsActive alerts
/api/sync/salesforceTrigger SF data sync
/api/upload/import-intelUpload import intel data
/api/entity-reviewEntity review
POST /api/digestStore AI-generated daily digest (key: digest_wsi_9f3a2b7c8e1d4056)
GET /api/digest/latestReturn most recent AI digest with parsed JSON + staleness flag

Dashboard Integrations ​

Mission Control (Section 8 — Salesforce CRM) ​

  • Generated by gen_salesforce() in generate.py
  • KPIs: pipeline, weighted, deals, win rate, avg deal
  • Stage breakdown bars, lead sources, activity chart
  • Polls n8n sf-data webhook every 2 min

WSI MC ​

  • Section references Salesforce data via n8n API

Sales MC (sales.handymanny.cloud) ​

  • Full React app with Express backend
  • SQLite database with seed data
  • Re-seed: ssh ... "docker volume rm sales-mc_sales-data" then redeploy

HandyManny Documentation System