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 ChangSalesSales 00eKd000001APnrIAGInactive (since Jul 2025)
Manuel ChavezAdminAdmin 00eKd000001X48MIASActive (system)
System/IntegrationActive (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
statsComputed 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