# Send Salesforce Skill to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "salesforce-skill",
    "name": "Salesforce Skill",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/lucas-riverbi/salesforce-skill",
    "canonicalUrl": "https://clawhub.ai/lucas-riverbi/salesforce-skill",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/salesforce-skill",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=salesforce-skill",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "scripts/salesforce-helper.sh"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "salesforce-skill",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-08T10:56:05.107Z",
      "expiresAt": "2026-05-15T10:56:05.107Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=salesforce-skill",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=salesforce-skill",
        "contentDisposition": "attachment; filename=\"salesforce-skill-0.1.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "salesforce-skill"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/salesforce-skill"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/salesforce-skill",
    "downloadUrl": "https://openagent3.xyz/downloads/salesforce-skill",
    "agentUrl": "https://openagent3.xyz/skills/salesforce-skill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/salesforce-skill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/salesforce-skill/agent.md"
  }
}
```
## Documentation

### Salesforce CRM Skill

Interact with Salesforce CRM using the official Salesforce CLI (sf) and REST API.

### Prerequisites

Salesforce CLI (sf) installed via npm or Homebrew
Authentication configured via one of:

sf org login web (OAuth browser flow - recommended for interactive)
sf org login jwt (JWT for headless/automated)
SALESFORCE_ACCESS_TOKEN environment variable (direct token)

### Authentication & Org Management

# Login to org (opens browser)
sf org login web --alias myorg

# Login with JWT (headless)
sf org login jwt --client-id <consumer-key> --jwt-key-file <path-to-key> --username <user> --alias myorg

# List connected orgs
sf org list

# Set default org
sf config set target-org myorg

# Display org info
sf org display --target-org myorg

### Query Records (SOQL)

# Query contacts
sf data query --query "SELECT Id, Name, Email, Phone FROM Contact LIMIT 10" --target-org myorg

# Query with WHERE clause
sf data query --query "SELECT Id, Name, Amount, StageName FROM Opportunity WHERE StageName = 'Prospecting'" --target-org myorg

# Query accounts by name
sf data query --query "SELECT Id, Name, Industry, Website FROM Account WHERE Name LIKE '%Acme%'" --target-org myorg

# Export to CSV
sf data query --query "SELECT Id, Name, Email FROM Contact" --result-format csv > contacts.csv

# Export to JSON
sf data query --query "SELECT Id, Name FROM Account" --result-format json

### Create Records

# Create a Contact
sf data create record --sobject Contact --values "FirstName='John' LastName='Doe' Email='john.doe@example.com'" --target-org myorg

# Create an Account
sf data create record --sobject Account --values "Name='Acme Corp' Industry='Technology' Website='https://acme.com'" --target-org myorg

# Create an Opportunity
sf data create record --sobject Opportunity --values "Name='Big Deal' AccountId='001XXXXXXXXXXXXXXX' StageName='Prospecting' CloseDate='2025-06-30' Amount=50000" --target-org myorg

# Create a Lead
sf data create record --sobject Lead --values "FirstName='Jane' LastName='Smith' Company='NewCo' Email='jane@newco.com' Status='Open - Not Contacted'" --target-org myorg

# Create a Case
sf data create record --sobject Case --values "Subject='Support Request' Description='Customer needs help' Status='New' Priority='Medium'" --target-org myorg

### Update Records

# Update a Contact
sf data update record --sobject Contact --record-id 003XXXXXXXXXXXXXXX --values "Phone='555-1234' Title='VP Sales'" --target-org myorg

# Update an Opportunity stage
sf data update record --sobject Opportunity --record-id 006XXXXXXXXXXXXXXX --values "StageName='Negotiation/Review' Amount=75000" --target-org myorg

# Update Account
sf data update record --sobject Account --record-id 001XXXXXXXXXXXXXXX --values "Description='Key strategic account'" --target-org myorg

### Delete Records

# Delete a record
sf data delete record --sobject Contact --record-id 003XXXXXXXXXXXXXXX --target-org myorg

# Bulk delete via query (careful!)
sf data delete bulk --sobject Lead --file leads-to-delete.csv --target-org myorg

### Bulk Operations

# Bulk insert from CSV
sf data import bulk --sobject Contact --file contacts.csv --target-org myorg

# Bulk update from CSV
sf data upsert bulk --sobject Account --file accounts.csv --external-id Id --target-org myorg

# Check bulk job status
sf data bulk status --job-id <job-id> --target-org myorg

### Schema & Metadata

# Describe an object (get fields)
sf sobject describe --sobject Account --target-org myorg

# List all objects
sf sobject list --target-org myorg

# Get field details
sf sobject describe --sobject Opportunity --target-org myorg | jq '.fields[] | {name, type, label}'

### Pipeline Report

SELECT StageName, COUNT(Id) NumDeals, SUM(Amount) TotalValue
FROM Opportunity
WHERE IsClosed = false
GROUP BY StageName

### Recent Activities

SELECT Id, Subject, WhoId, WhatId, ActivityDate
FROM Task
WHERE OwnerId = '<user-id>'
AND ActivityDate >= LAST_N_DAYS:7
ORDER BY ActivityDate DESC

### Contacts by Account

SELECT Account.Name, Id, Name, Email, Title
FROM Contact
WHERE Account.Name = 'Acme Corp'

### Open Cases

SELECT Id, CaseNumber, Subject, Status, Priority, CreatedDate
FROM Case
WHERE IsClosed = false
ORDER BY Priority, CreatedDate

### Leads by Status

SELECT Status, COUNT(Id) Total
FROM Lead
WHERE IsConverted = false
GROUP BY Status

### REST API (Alternative)

For operations not covered by CLI, use curl with the REST API:

# Set variables
INSTANCE_URL="https://yourorg.salesforce.com"
ACCESS_TOKEN="$SALESFORCE_ACCESS_TOKEN"

# Query via REST
curl -s "$INSTANCE_URL/services/data/v59.0/query?q=SELECT+Id,Name+FROM+Account+LIMIT+5" \\
  -H "Authorization: Bearer $ACCESS_TOKEN" \\
  -H "Content-Type: application/json"

# Create record via REST
curl -s "$INSTANCE_URL/services/data/v59.0/sobjects/Contact" \\
  -H "Authorization: Bearer $ACCESS_TOKEN" \\
  -H "Content-Type: application/json" \\
  -d '{"FirstName":"Test","LastName":"User","Email":"test@example.com"}'

### Error Handling

INVALID_SESSION_ID: Token expired. Re-authenticate with sf org login web
MALFORMED_QUERY: Check SOQL syntax. Use single quotes for strings.
ENTITY_IS_DELETED: Record was deleted. Query to verify before updating.
REQUIRED_FIELD_MISSING: Check object schema for required fields.

### Tips

Use aliases: Set --alias when logging in, then use --target-org alias
JSON output: Add --json flag for programmatic parsing
Dry run: Use --dry-run flag on bulk operations to preview
Field names: Use API names (e.g., FirstName), not labels (e.g., "First Name")
Date format: Use YYYY-MM-DD for dates, YYYY-MM-DDThh:mm:ssZ for datetimes

### Limitations

Bulk operations have daily API limits (varies by Salesforce edition)
Some objects (e.g., ContentDocument) have special handling requirements
Complex queries may hit governor limits
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: lucas-riverbi
- Version: 0.1.0
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-08T10:56:05.107Z
- Expires at: 2026-05-15T10:56:05.107Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/salesforce-skill)
- [Send to Agent page](https://openagent3.xyz/skills/salesforce-skill/agent)
- [JSON manifest](https://openagent3.xyz/skills/salesforce-skill/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/salesforce-skill/agent.md)
- [Download page](https://openagent3.xyz/downloads/salesforce-skill)