VincentChuWaiChow/vanguard-frontier-agentic/skills/salesforce/salesforce-field-mapping-skill/SKILL.md
salesforce-field-mapping-skill
Maps CSV or spreadsheet column headers to Salesforce field API names with type mismatch detection, missing-field flagging, picklist value normalization, and API name collision detection. Used during data migration from HubSpot, Pipedrive, Excel exports, and legacy CRMs. TRIGGER when: user says map these columns to salesforce fields, field mapping for migration, convert csv headers to api names, import field mapping, migrate data from hubspot/pipedrive/excel, column mapping for data loader. DO NO
- Source repository stars
- 21
- Declared platforms
- 0
- Static risk flags
- 1
- Last source update
- 2026-08-27
- Source checked
- 2026-08-28
Decision brief
What it does: where it fits
Pure-generation T0 skill that maps CSV/spreadsheet column headers to Salesforce field API names with type mismatch detection. The daily-driver for admins migrating from HubSpot, Pipedrive, Excel exports, and legacy CRMs. Outputs a complete mapping table, type mismatch report, mi…
Not for
- Tasks that require unconfirmed production actions or broad system permissions.
- Environments where the pinned source and install steps cannot be inspected.
Compatibility matrix
Platform support, with evidence labels
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
Inspect first. Install second.
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/VincentChuWaiChow/vanguard-frontier-agentic --skill "skills/salesforce/salesforce-field-mapping-skill"Inspect the Agent Skill "salesforce-field-mapping-skill" from https://github.com/VincentChuWaiChow/vanguard-frontier-agentic/blob/e01b936730332eca271896571d43cc2013c67f3f/skills/salesforce/salesforce-field-mapping-skill/SKILL.md at commit e01b936730332eca271896571d43cc2013c67f3f. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
What the source asks the agent to do
- 01
Recommended Workflow
Apply label normalization to make headers comparable: - Strip leading/trailing whitespace - Collapse multiple spaces to single space - Remove non-alphanumeric prefix/suffix characters - Flag headers containing special characters that may corrupt Data Loader (e.g., , $, %, (, ),…
Strip leading/trailing whitespaceCollapse multiple spaces to single spaceRemove non-alphanumeric prefix/suffix characters - 02
Step 1 — Normalize source column headers
Apply label normalization to make headers comparable: - Strip leading/trailing whitespace - Collapse multiple spaces to single space - Remove non-alphanumeric prefix/suffix characters - Flag headers containing special characters that may corrupt Data Loader (e.g., , $, %, (, ),…
Strip leading/trailing whitespaceCollapse multiple spaces to single spaceRemove non-alphanumeric prefix/suffix characters - 03
Step 2 — Derive candidate API names from labels
For each normalized column header, apply the API name derivation rules (see references/api-name-normalization.md): 1. Replace spaces with underscores 2. Remove characters not in [A-Za-z0-9] 3. Strip leading digits (Salesforce API names must start with a letter) 4. Collapse conse…
Replace spaces with underscoresRemove characters not in [A-Za-z0-9]Strip leading digits (Salesforce API names must start with a letter) - 04
Step 3 — Match against known standard field API names
Apply fuzzy matching against the standard object's well-known fields:
Apply fuzzy matching against the standard object's well-known fields:For Contact: FirstName, LastName, Email, Phone, MobilePhone, Title, Department, AccountId, MailingStreet, MailingCity, MailingState, MailingPostalCode, MailingCountry, LeadSource, Salutation, Birthdate, Description, DoN…For Lead: FirstName, LastName, Company, Email, Phone, MobilePhone, Status, LeadSource, Title, Industry, AnnualRevenue, NumberOfEmployees, Rating, Street, City, State, PostalCode, Country, Description, HasOptedOutOfEmail… - 05
Step 4 — Detect type mismatches
For each mapped pair, compare source data type to Salesforce field type. Flag mismatches (see references/type-mismatch-detection.md):
For each mapped pair, compare source data type to Salesforce field type. Flag mismatches (see references/type-mismatch-detection.md):
Permission review
Static risk signals and limitations
Network access
The documentation includes network, browsing, or remote request actions.
| User needs to fetch custom field API names from org | `salesforce-metadata-fetcher-skill` |Evidence record
Why each signal appears
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 92/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 21 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Provenance and original SKILL.md
- Repository
- VincentChuWaiChow/vanguard-frontier-agentic
- Skill path
- skills/salesforce/salesforce-field-mapping-skill/SKILL.md
- Commit
- e01b936730332eca271896571d43cc2013c67f3f
- License
- Apache-2.0
- Collected
- 2026-08-28
- Default branch
- master
View the original SKILL.md
salesforce-field-mapping-skill
Pure-generation T0 skill that maps CSV/spreadsheet column headers to Salesforce field API names with type mismatch detection. The daily-driver for admins migrating from HubSpot, Pipedrive, Excel exports, and legacy CRMs. Outputs a complete mapping table, type mismatch report, missing-field list, and a Data Loader–ready column header row.
When This Skill Owns the Task
Use salesforce-field-mapping-skill when the work is to design or
validate a field mapping for a data import:
- "I'm migrating from HubSpot — map these column headers to Salesforce Contact fields"
- "Here's my Excel export. What are the Salesforce API names?"
- "I need a Data Loader field mapping CSV for importing Opportunities from Pipedrive"
- "Flag any type mismatches in my column list before I import"
- "Which of my CSV columns don't have matching Salesforce fields?"
Delegate elsewhere when:
| Situation | Skill to use |
|---|---|
| Actually executing the data migration with records | salesforce-bulk-data-ops-skill |
| Designing new custom fields to receive imported data | salesforce-data-architecture-agent |
| Reviewing FLS or who can see imported fields | salesforce-permission-model-review-skill |
| Fetching field metadata from a live org to compare | salesforce-metadata-fetcher-skill |
Required Context to Gather First
Before generating a mapping, confirm:
- Target Salesforce object — standard (Contact, Lead, Account,
Opportunity, Case) or custom (
Custom_Object__c). - Source system — HubSpot, Pipedrive, Salesforce Classic, Excel/CSV export, Marketo, or other. Source system determines default field label conventions.
- Column header list — the complete list of CSV/spreadsheet column headers, either as a comma-separated list or pasted table.
- Custom fields in scope — list any known custom fields on the target
object that may receive data (e.g.,
HubSpot_Contact_ID__c). - Operation type — insert, update, or upsert. Affects whether
Idor an external ID field is required in the mapping. - External ID field — for upsert: which field is the external ID key?
(e.g.,
HubSpot_Contact_ID__c,Email) - Multi-value fields — any source columns that contain comma-separated multi-values intended for multi-select picklists.
If the column header list is not provided, ask before proceeding.
Recommended Workflow
Step 1 — Normalize source column headers
Apply label normalization to make headers comparable:
- Strip leading/trailing whitespace
- Collapse multiple spaces to single space
- Remove non-alphanumeric prefix/suffix characters
- Flag headers containing special characters that may corrupt Data Loader
(e.g.,
#,$,%,(,),/)
Step 2 — Derive candidate API names from labels
For each normalized column header, apply the API name derivation rules
(see references/api-name-normalization.md):
- Replace spaces with underscores
- Remove characters not in
[A-Za-z0-9_] - Strip leading digits (Salesforce API names must start with a letter)
- Collapse consecutive underscores to single underscore
- Truncate to 40 characters (API name limit)
- Append
__cfor custom fields - Check against reserved words list
Step 3 — Match against known standard field API names
Apply fuzzy matching against the standard object's well-known fields:
For Contact: FirstName, LastName, Email, Phone, MobilePhone,
Title, Department, AccountId, MailingStreet, MailingCity,
MailingState, MailingPostalCode, MailingCountry, LeadSource,
Salutation, Birthdate, Description, DoNotCall, HasOptedOutOfEmail,
OwnerId, ReportsToId
For Lead: FirstName, LastName, Company, Email, Phone,
MobilePhone, Status, LeadSource, Title, Industry, AnnualRevenue,
NumberOfEmployees, Rating, Street, City, State, PostalCode,
Country, Description, HasOptedOutOfEmail, DoNotCall
For Account: Name, Type, Industry, AnnualRevenue,
NumberOfEmployees, BillingStreet, BillingCity, BillingState,
BillingPostalCode, BillingCountry, Phone, Website, Description,
OwnerId, ParentId
For Opportunity: Name, StageName, CloseDate, Amount,
Probability, AccountId, OwnerId, Type, LeadSource, Description,
ForecastCategory, ForecastCategoryName, CampaignId, NextStep
Step 4 — Detect type mismatches
For each mapped pair, compare source data type to Salesforce field type.
Flag mismatches (see references/type-mismatch-detection.md):
| Source type | Target type | Risk | Action |
|---|---|---|---|
| String | Date | HIGH | Requires DATEVALUE transform; verify ISO format |
| String | Number/Currency | HIGH | Requires VALUE or numeric parse; check for non-numeric chars |
| Multi-value string | Single picklist | HIGH | Must pick one value or use transformation script |
| String | Boolean/Checkbox | MEDIUM | Map "true"/"1"/"yes" → true; all else → false |
| String | Lookup (Id) | HIGH | Requires upsert by external ID or pre-lookup step |
| Integer | Currency | LOW | Implicit conversion; verify decimal precision |
| Mixed case | Picklist | MEDIUM | Picklist values are case-sensitive in Data Loader |
Step 5 — Flag missing and unmappable fields
Produce two lists:
- Unmapped source columns — columns with no clear Salesforce target
- Required fields missing from source — Salesforce required fields
(e.g.,
LastNameon Contact,LastName + Companyon Lead,Name + StageName + CloseDateon Opportunity,Nameon Account) not present in the source column list
Step 6 — Normalize picklist values
For any column mapping to a standard picklist field, list the expected Salesforce API values and flag mismatches:
LeadSource: Cold Call, Web, Phone Inquiry, Partner Referral, Purchased List, Other, Word of mouth, Employee, Internal, PartnerStageName: Prospecting, Qualification, Needs Analysis, Value Proposition, Id. Decision Makers, Perception Analysis, Proposal/Price Quote, Negotiation/Review, Closed Won, Closed LostIndustry: Agriculture, Apparel, Banking, Biotechnology, Chemicals, Communications, Construction, Consulting, Education, Electronics, Energy, Engineering, Entertainment, Environmental, Finance, Food & Beverage, Government, Healthcare, Hospitality, Insurance, Machinery, Manufacturing, Media, Not For Profit, Recreation, Retail, Shipping, Technology, Telecommunications, Transportation, Utilities, Other
Step 7 — Detect special character and collision risks
- Flag API names that would collide (two source columns normalizing to the same API name)
- Flag reserved words:
Id,Name,OwnerId,CreatedDate,LastModifiedDate,SystemModstamp,IsDeleted— these cannot be used as custom field API names - Flag API names exceeding 40 characters after normalization
Step 8 — Emit structured output
Produce the full output block per the Output Format section below, including a Data Loader–ready header row.
Quality Scoring Rubric (100-point)
Score every output before emitting. Threshold: 85+ ship, 70–84 ship with caveat, below 70 reject and revise.
| Dimension | Points | What earns full marks |
|---|---|---|
| API name accuracy | 30 | Every standard field mapped to correct API name; custom fields flagged with __c; no typos or reversed lookups |
| Type mismatch detection | 25 | All HIGH and MEDIUM risk mismatches flagged with recommended transforms; no silently ignored mismatches |
| Missing-field flagging | 15 | All required Salesforce fields checked; clearly listed if absent from source; import will fail without them |
| Picklist value normalization | 15 | Case-sensitive picklist values verified; multi-value vs. single-value conflict flagged; API values used not display labels |
| Special char / collision detection | 15 | Column header special chars flagged; API name collisions detected; reserved word conflicts identified |
Scoring penalties:
- Missing a HIGH-risk type mismatch: -15 per missed mismatch
- Missing a required field from target object: -10
- Incorrect standard API name: -15 per error
- Multi-select picklist mapped to single picklist without flag: -20
- Lookup/relationship field mapped without upsert key guidance: -10
T0 Contract
This skill is static-review (T0) only:
- No Salesforce org connection required or permitted.
- No CLI commands are executed.
- No live field metadata is fetched.
- The mapping is generated from known standard field sets and the user's provided column list.
- If the target object has custom fields that the user has not listed,
mappings to those custom fields cannot be generated here — use
salesforce-metadata-fetcher-skillto fetch them first.
Refusal Triggers
Stop and decline if:
- The request is to execute a live data migration (route to
salesforce-bulk-data-ops-skill). - The target object is not specified after two clarification attempts.
- The column header list is not provided after one prompt.
- The operation involves permanent hard-deletes (T3 prohibited — route
to
salesforce-live-guard-agent).
Output Format
verdict: "ship | ship-with-caveat | reject"
quality_score: <0-100>
quality_notes: "<what drove the score>"
mapping_summary:
source_system: "<HubSpot | Pipedrive | Excel | Salesforce Classic | Other>"
target_object: "<SObjectApiName>"
operation: "<insert | update | upsert>"
external_id_field: "<FieldApiName | none>"
total_source_columns: <integer>
mapped_columns: <integer>
unmapped_columns: <integer>
type_mismatch_count: <integer>
required_fields_missing: <integer>
field_mapping:
- source_column: "<source header>"
salesforce_api_name: "<FieldApiName>"
salesforce_field_type: "<Text|Date|Number|Currency|Picklist|Lookup|Checkbox|etc>"
confidence: "<high|medium|low>"
type_mismatch: "<none|HIGH|MEDIUM|LOW>"
mismatch_detail: "<description of mismatch if present>"
transform_recommended: "<none|DATEVALUE|VALUE|Picklist normalization|External ID lookup>"
notes: "<any special handling>"
unmapped_source_columns:
- column: "<source header>"
reason: "<no standard match | ambiguous | custom field needed>"
suggested_custom_api_name: "<Suggested_Name__c>"
required_fields_missing_from_source:
- field: "<FieldApiName>"
required_for: "<insert|update|upsert>"
impact: "<import will fail | data quality risk>"
picklist_value_mismatches:
- source_column: "<source header>"
salesforce_field: "<FieldApiName>"
source_values_found: ["<val1>", "<val2>"]
valid_salesforce_values: ["<val1>", "<val2>"]
mismatched_values: ["<val1>"]
normalization_recommended: "<map 'val1' → 'Correct Value'"
collision_and_special_char_warnings:
- column: "<source header>"
issue: "<special chars | api name collision | reserved word | length overflow>"
recommendation: "<how to resolve>"
data_loader_header_row: "<Comma-separated list of Salesforce API names in source column order>"
handoff_suggestions:
- "<e.g., fetch custom fields from org with salesforce-metadata-fetcher-skill>"
- "<e.g., run data migration with salesforce-bulk-data-ops-skill>"
assumptions:
- "<explicit list of assumptions made>"
Redaction Rules
This is a T0 generation skill with no live org connection. Apply:
- Never emit actual production org IDs, user IDs, or credentials even if the user includes them in their prompt.
- If the user pastes sample data rows alongside headers, do not include actual record values (email addresses, names, phone numbers) in the output.
- Sanitize pasted column lists that contain Org IDs (18-char starting
00D) before incorporating into output.
Handoff Rules
| Situation | Hand off to |
|---|---|
| User wants to execute the migration | salesforce-bulk-data-ops-skill |
| User needs to fetch custom field API names from org | salesforce-metadata-fetcher-skill |
| User wants to create new fields to receive import data | salesforce-data-architecture-agent |
| FLS or sharing concerns on import fields | salesforce-permission-model-review-skill |
Stop Conditions
- Import will fail because required fields (
LastName,Company,StageName + CloseDate + Name) are entirely missing from the source — stop, surface the list, require resolution before producing a mapping. - Every source column maps to the same single Salesforce field (e.g., all columns appear to be "Name") — stop and request clarification.
- Requested mapping includes hard-delete or permanent-destroy operations —
stop and route to
salesforce-live-guard-agent.
Security Notes
- T0 static generation only: No org connection, no CLI execution, no MCP calls.
- No credential handling: Skill never requests or emits OAuth tokens, session IDs, or Connected App credentials.
- PII in sample data: If user pastes real data rows, do not include field values containing PII in the output mapping table. Process headers only.
- Upsert external ID guidance: External ID fields used in upsert operations must have "External ID" checked on the field definition in Salesforce Setup — flag this requirement explicitly.
Reference File Index
| File | When to read |
|---|---|
references/api-name-normalization.md | How to derive API name from label, reserved words, length limits, collision rules |
references/type-mismatch-detection.md | Common type mismatches, normalization strategies, transform patterns |
references/picklist-value-mapping.md | Picklist value conversion, case sensitivity, multi-select handling |
Frequently asked questions
What to verify before installation and use
What does the salesforce-field-mapping-skill source document cover?
Pure-generation T0 skill that maps CSV/spreadsheet column headers to Salesforce field API names with type mismatch detection. The daily-driver for admins migrating from HubSpot, Pipedrive, Excel exports, and legacy CRMs. Outputs a complete mapping table, type mismatch report, mi…
How do I install salesforce-field-mapping-skill?
The source record exposes this install command: npx skills add https://github.com/VincentChuWaiChow/vanguard-frontier-agentic --skill "skills/salesforce/salesforce-field-mapping-skill". Inspect the command and pinned source before running it.
Which permission-related actions were detected?
Static rules flagged network in the source; the page lists the matching lines and excerpts.
Alternatives
Compare before choosing
PostHog/skills
exploring-llm-evaluations
Investigate AI observability evaluations of both types — `hog` (deterministic code-based) and `llm_judge` (LLM-prompt-based). Find existing evaluations, inspect their configuration, run them against specific generations, query individual pass/fail results, and generate AI-powered summaries of patterns across many runs. Use when the user asks to debug why an evaluation is failing, surface common failure modes, compare results across filters, dry-run a Hog evaluator, prototype a new LLM-judge prom
synthetic-sciences/openscience
neuropixels-analysis
Neuropixels neural recording analysis. Load SpikeGLX/OpenEphys data, preprocess, motion correction, Kilosort4 spike sorting, quality metrics, Allen/IBL curation, AI-assisted visual analysis, for Neuropixels 1.0/2.0 extracellular electrophysiology. Use when working with neural recordings, spike sorting, extracellular electrophysiology, or when the user mentions Neuropixels, SpikeGLX, Open Ephys, Kilosort, quality metrics, or unit curation.
brucesongs/kali-claw
deception-honeypot
Defensive deception and honeypot deployment covering SSH/Telnet (Cowrie), web (OpenCanary), enterprise (HFish), ICS/SCADA (Conpot), all-in-one (T-Pot), AI-driven deception (Beelzebub), Thinkst Canarytokens (DNS, HTTP, file, AWS API key, SQL), Dionaea multi-protocol honeypot, notification pipelines (Slack/Teams webhooks), false positive tuning, and attacker engagement — including lure design, deployment OPSEC, IOC extraction, and attacker attribution.
buildfastwithai/gen-ai-experiments
startupblueprint
Turn a startup, SaaS, app, developer tool, website, repository, or product idea into an evidence-backed business plan, monetization strategy, pricing architecture, editable 12-month financial model, and 90-day execution roadmap. Use when Codex needs to analyze how a startup can become a sustainable business; decide free versus paid, monthly, annual, usage-based, one-time, or lifetime pricing; design tiers and upgrade triggers; estimate unit economics and break-even under explicit assumptions; co