{
  "schemaVersion": "1.0",
  "item": {
    "slug": "salesforce-dx",
    "name": "Salesforce",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/rjmcgirr-pl/salesforce-dx",
    "canonicalUrl": "https://clawhub.ai/rjmcgirr-pl/salesforce-dx",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/salesforce-dx",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=salesforce-dx",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "scripts/schema-export.sh",
      "references/pipeline-queries.md",
      "references/soql-patterns.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "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."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "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. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/salesforce-dx"
    },
    "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."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/salesforce-dx",
    "agentPageUrl": "https://openagent3.xyz/skills/salesforce-dx/agent",
    "manifestUrl": "https://openagent3.xyz/skills/salesforce-dx/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/salesforce-dx/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "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."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "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. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Salesforce DX — Data & Pipeline",
        "body": "Query data and manage pipelines with the sf CLI."
      },
      {
        "title": "Prerequisites",
        "body": "# Verify CLI and auth\nsf --version\nsf org list\n\nIf no orgs listed, authenticate:\n\nsf org login web --alias my-org --set-default"
      },
      {
        "title": "Schema Discovery",
        "body": "Before querying, explore available objects and fields:\n\n# List all objects\nsf sobject list --target-org my-org\n\n# Describe object fields\nsf sobject describe --sobject Opportunity --target-org my-org\n\n# Quick field list (names only)\nsf sobject describe --sobject Opportunity --target-org my-org | grep -E \"^name:|^type:\""
      },
      {
        "title": "Basic Patterns",
        "body": "# Simple query\nsf data query -q \"SELECT Id, Name, Amount FROM Opportunity LIMIT 10\"\n\n# With WHERE clause\nsf data query -q \"SELECT Id, Name FROM Opportunity WHERE StageName = 'Closed Won'\"\n\n# Date filtering\nsf data query -q \"SELECT Id, Name FROM Opportunity WHERE CloseDate = THIS_QUARTER\"\n\n# Export to CSV\nsf data query -q \"SELECT Id, Name, Amount FROM Opportunity\" --result-format csv > opps.csv"
      },
      {
        "title": "Relationships",
        "body": "# Parent lookup (Account from Opportunity)\nsf data query -q \"SELECT Id, Name, Account.Name, Account.Industry FROM Opportunity\"\n\n# Child subquery (Opportunities from Account)\nsf data query -q \"SELECT Id, Name, (SELECT Id, Name, Amount FROM Opportunities) FROM Account LIMIT 5\""
      },
      {
        "title": "Aggregations",
        "body": "# COUNT\nsf data query -q \"SELECT COUNT(Id) total FROM Opportunity WHERE IsClosed = false\"\n\n# SUM and GROUP BY\nsf data query -q \"SELECT StageName, SUM(Amount) total FROM Opportunity GROUP BY StageName\"\n\n# Multiple aggregates\nsf data query -q \"SELECT StageName, COUNT(Id) cnt, SUM(Amount) total, AVG(Amount) avg FROM Opportunity GROUP BY StageName\""
      },
      {
        "title": "Bulk Queries (Large Datasets)",
        "body": "# Use --bulk for >2000 records\nsf data query -q \"SELECT Id, Name, Amount FROM Opportunity\" --bulk --wait 10"
      },
      {
        "title": "Pipeline Snapshot",
        "body": "# Open pipeline by stage\nsf data query -q \"SELECT StageName, COUNT(Id) cnt, SUM(Amount) total FROM Opportunity WHERE IsClosed = false GROUP BY StageName ORDER BY StageName\"\n\n# Pipeline by owner\nsf data query -q \"SELECT Owner.Name, SUM(Amount) total FROM Opportunity WHERE IsClosed = false GROUP BY Owner.Name ORDER BY SUM(Amount) DESC\"\n\n# Pipeline by close month\nsf data query -q \"SELECT CALENDAR_MONTH(CloseDate) month, SUM(Amount) total FROM Opportunity WHERE IsClosed = false AND CloseDate = THIS_YEAR GROUP BY CALENDAR_MONTH(CloseDate) ORDER BY CALENDAR_MONTH(CloseDate)\""
      },
      {
        "title": "Win/Loss Analysis",
        "body": "# Win rate by stage\nsf data query -q \"SELECT StageName, COUNT(Id) FROM Opportunity WHERE IsClosed = true GROUP BY StageName\"\n\n# Closed won this quarter\nsf data query -q \"SELECT Id, Name, Amount, CloseDate FROM Opportunity WHERE StageName = 'Closed Won' AND CloseDate = THIS_QUARTER ORDER BY Amount DESC\"\n\n# Lost deals with reasons\nsf data query -q \"SELECT Id, Name, Amount, StageName, Loss_Reason__c FROM Opportunity WHERE StageName = 'Closed Lost' AND CloseDate = THIS_QUARTER\""
      },
      {
        "title": "Forecast Queries",
        "body": "# Weighted pipeline (assumes Probability field)\nsf data query -q \"SELECT StageName, SUM(Amount) gross, SUM(ExpectedRevenue) weighted FROM Opportunity WHERE IsClosed = false GROUP BY StageName\"\n\n# Deals closing this month\nsf data query -q \"SELECT Id, Name, Amount, StageName, CloseDate FROM Opportunity WHERE CloseDate = THIS_MONTH AND IsClosed = false ORDER BY Amount DESC\"\n\n# Stale deals (no activity in 30 days)\nsf data query -q \"SELECT Id, Name, Amount, LastActivityDate FROM Opportunity WHERE IsClosed = false AND LastActivityDate < LAST_N_DAYS:30\""
      },
      {
        "title": "Create Records",
        "body": "sf data create record -s Opportunity -v \"Name='New Deal' StageName='Prospecting' CloseDate=2024-12-31 Amount=50000\""
      },
      {
        "title": "Update Records",
        "body": "# By ID\nsf data update record -s Opportunity -i 006xx000001234 -v \"StageName='Negotiation'\"\n\n# Bulk update via CSV\nsf data upsert bulk -s Opportunity -f updates.csv -i Id --wait 10"
      },
      {
        "title": "Export/Import",
        "body": "# Export with relationships\nsf data export tree -q \"SELECT Id, Name, (SELECT Id, Subject FROM Tasks) FROM Account WHERE Industry = 'Technology'\" -d ./export\n\n# Import\nsf data import tree -f ./export/Account.json"
      },
      {
        "title": "JSON Output for Scripting",
        "body": "Add --json for structured output:\n\nsf data query -q \"SELECT Id, Name, Amount FROM Opportunity WHERE IsClosed = false\" --json\n\nParse with jq:\n\nsf data query -q \"SELECT Id, Name FROM Opportunity LIMIT 5\" --json | jq '.result.records[].Name'"
      },
      {
        "title": "Common Date Literals",
        "body": "LiteralMeaningTODAYCurrent dayTHIS_WEEKCurrent weekTHIS_MONTHCurrent monthTHIS_QUARTERCurrent quarterTHIS_YEARCurrent yearLAST_N_DAYS:nPast n daysNEXT_N_DAYS:nNext n daysLAST_QUARTERPrevious quarter"
      },
      {
        "title": "Troubleshooting",
        "body": "\"Malformed query\" — Check field API names (not labels). Use sf sobject describe to verify.\n\n\"QUERY_TIMEOUT\" — Add filters, use --bulk, or add LIMIT.\n\n\"INVALID_FIELD\" — Field may not exist on that object or your profile lacks access.\n\nLarge result sets — Use --bulk flag for queries returning >2000 records."
      },
      {
        "title": "Quick Deal Lookup",
        "body": "Find a deal by name or account:\n\n# By opportunity name (fuzzy)\nsf data query -q \"SELECT Id, Name, Amount, StageName, CloseDate, Owner.Name, Account.Name FROM Opportunity WHERE Name LIKE '%Acme%' ORDER BY Amount DESC\"\n\n# By account name\nsf data query -q \"SELECT Id, Name, Amount, StageName, CloseDate FROM Opportunity WHERE Account.Name LIKE '%Microsoft%' AND IsClosed = false\"\n\n# Recent deals I own\nsf data query -q \"SELECT Id, Name, Amount, StageName, CloseDate, Account.Name FROM Opportunity WHERE OwnerId = '<my-user-id>' AND IsClosed = false ORDER BY CloseDate\""
      },
      {
        "title": "Get Contact Info for Outreach",
        "body": "Find someone to email at a company:\n\n# Contacts at an account\nsf data query -q \"SELECT Id, Name, Email, Phone, Title FROM Contact WHERE Account.Name LIKE '%Acme%'\"\n\n# Decision makers (by title)\nsf data query -q \"SELECT Name, Email, Title, Account.Name FROM Contact WHERE Title LIKE '%CEO%' OR Title LIKE '%VP%' OR Title LIKE '%Director%'\"\n\n# Contacts on a specific deal\nsf data query -q \"SELECT Contact.Name, Contact.Email, Contact.Title, Role FROM OpportunityContactRole WHERE Opportunity.Name LIKE '%Acme%'\""
      },
      {
        "title": "Prep for Pipeline Review",
        "body": "Get a quick executive summary:\n\n# Top 10 deals closing this quarter\nsf data query -q \"SELECT Name, Account.Name, Amount, StageName, CloseDate, Owner.Name FROM Opportunity WHERE CloseDate = THIS_QUARTER AND IsClosed = false ORDER BY Amount DESC LIMIT 10\"\n\n# Deals by rep (for 1:1s)\nsf data query -q \"SELECT Owner.Name, COUNT(Id) deals, SUM(Amount) total FROM Opportunity WHERE IsClosed = false GROUP BY Owner.Name ORDER BY SUM(Amount) DESC\"\n\n# Deals needing attention (stale)\nsf data query -q \"SELECT Name, Amount, StageName, LastActivityDate, Owner.Name FROM Opportunity WHERE IsClosed = false AND LastActivityDate < LAST_N_DAYS:14 ORDER BY Amount DESC LIMIT 10\""
      },
      {
        "title": "Account Intelligence",
        "body": "Before a call or meeting:\n\n# Account overview\nsf data query -q \"SELECT Id, Name, Industry, BillingCity, Website, OwnerId FROM Account WHERE Name LIKE '%Acme%'\"\n\n# All open deals with account\nsf data query -q \"SELECT Name, Amount, StageName, CloseDate FROM Opportunity WHERE Account.Name LIKE '%Acme%' AND IsClosed = false\"\n\n# Recent activities\nsf data query -q \"SELECT Subject, Status, ActivityDate FROM Task WHERE Account.Name LIKE '%Acme%' ORDER BY ActivityDate DESC LIMIT 5\""
      },
      {
        "title": "Cross-Tool Workflows",
        "body": "Salesforce + Email (via gog/gmail):\n\nFind contact email: sf data query -q \"SELECT Email FROM Contact WHERE Account.Name LIKE '%Acme%'\"\nDraft email using that address with your email tool\n\nSalesforce + Calendar:\n\nFind deals closing soon: sf data query -q \"SELECT Name, Account.Name, CloseDate FROM Opportunity WHERE CloseDate = THIS_WEEK\"\nCross-reference with calendar to ensure follow-ups scheduled\n\nQuick CRM Update After Call:\n\n# Log a task\nsf data create record -s Task -v \"Subject='Call with John' WhatId='<opportunity-id>' Status='Completed' ActivityDate=$(date +%Y-%m-%d)\"\n\n# Update opportunity stage\nsf data update record -s Opportunity -i <opp-id> -v \"StageName='Negotiation' NextStep='Send proposal'\""
      },
      {
        "title": "Finding Your User ID",
        "body": "Needed for \"deals I own\" queries:\n\nsf data query -q \"SELECT Id, Name FROM User WHERE Email = 'your.email@company.com'\"\n\nStore this in your local config for quick reference."
      },
      {
        "title": "References",
        "body": "soql-patterns.md — Advanced SOQL patterns (polymorphic, semi-joins, formula fields)\npipeline-queries.md — Ready-to-use pipeline and forecast queries"
      }
    ],
    "body": "Salesforce DX — Data & Pipeline\n\nQuery data and manage pipelines with the sf CLI.\n\nPrerequisites\n# Verify CLI and auth\nsf --version\nsf org list\n\n\nIf no orgs listed, authenticate:\n\nsf org login web --alias my-org --set-default\n\nSchema Discovery\n\nBefore querying, explore available objects and fields:\n\n# List all objects\nsf sobject list --target-org my-org\n\n# Describe object fields\nsf sobject describe --sobject Opportunity --target-org my-org\n\n# Quick field list (names only)\nsf sobject describe --sobject Opportunity --target-org my-org | grep -E \"^name:|^type:\" \n\nSOQL Queries\nBasic Patterns\n# Simple query\nsf data query -q \"SELECT Id, Name, Amount FROM Opportunity LIMIT 10\"\n\n# With WHERE clause\nsf data query -q \"SELECT Id, Name FROM Opportunity WHERE StageName = 'Closed Won'\"\n\n# Date filtering\nsf data query -q \"SELECT Id, Name FROM Opportunity WHERE CloseDate = THIS_QUARTER\"\n\n# Export to CSV\nsf data query -q \"SELECT Id, Name, Amount FROM Opportunity\" --result-format csv > opps.csv\n\nRelationships\n# Parent lookup (Account from Opportunity)\nsf data query -q \"SELECT Id, Name, Account.Name, Account.Industry FROM Opportunity\"\n\n# Child subquery (Opportunities from Account)\nsf data query -q \"SELECT Id, Name, (SELECT Id, Name, Amount FROM Opportunities) FROM Account LIMIT 5\"\n\nAggregations\n# COUNT\nsf data query -q \"SELECT COUNT(Id) total FROM Opportunity WHERE IsClosed = false\"\n\n# SUM and GROUP BY\nsf data query -q \"SELECT StageName, SUM(Amount) total FROM Opportunity GROUP BY StageName\"\n\n# Multiple aggregates\nsf data query -q \"SELECT StageName, COUNT(Id) cnt, SUM(Amount) total, AVG(Amount) avg FROM Opportunity GROUP BY StageName\"\n\nBulk Queries (Large Datasets)\n# Use --bulk for >2000 records\nsf data query -q \"SELECT Id, Name, Amount FROM Opportunity\" --bulk --wait 10\n\nPipeline Management\nPipeline Snapshot\n# Open pipeline by stage\nsf data query -q \"SELECT StageName, COUNT(Id) cnt, SUM(Amount) total FROM Opportunity WHERE IsClosed = false GROUP BY StageName ORDER BY StageName\"\n\n# Pipeline by owner\nsf data query -q \"SELECT Owner.Name, SUM(Amount) total FROM Opportunity WHERE IsClosed = false GROUP BY Owner.Name ORDER BY SUM(Amount) DESC\"\n\n# Pipeline by close month\nsf data query -q \"SELECT CALENDAR_MONTH(CloseDate) month, SUM(Amount) total FROM Opportunity WHERE IsClosed = false AND CloseDate = THIS_YEAR GROUP BY CALENDAR_MONTH(CloseDate) ORDER BY CALENDAR_MONTH(CloseDate)\"\n\nWin/Loss Analysis\n# Win rate by stage\nsf data query -q \"SELECT StageName, COUNT(Id) FROM Opportunity WHERE IsClosed = true GROUP BY StageName\"\n\n# Closed won this quarter\nsf data query -q \"SELECT Id, Name, Amount, CloseDate FROM Opportunity WHERE StageName = 'Closed Won' AND CloseDate = THIS_QUARTER ORDER BY Amount DESC\"\n\n# Lost deals with reasons\nsf data query -q \"SELECT Id, Name, Amount, StageName, Loss_Reason__c FROM Opportunity WHERE StageName = 'Closed Lost' AND CloseDate = THIS_QUARTER\"\n\nForecast Queries\n# Weighted pipeline (assumes Probability field)\nsf data query -q \"SELECT StageName, SUM(Amount) gross, SUM(ExpectedRevenue) weighted FROM Opportunity WHERE IsClosed = false GROUP BY StageName\"\n\n# Deals closing this month\nsf data query -q \"SELECT Id, Name, Amount, StageName, CloseDate FROM Opportunity WHERE CloseDate = THIS_MONTH AND IsClosed = false ORDER BY Amount DESC\"\n\n# Stale deals (no activity in 30 days)\nsf data query -q \"SELECT Id, Name, Amount, LastActivityDate FROM Opportunity WHERE IsClosed = false AND LastActivityDate < LAST_N_DAYS:30\"\n\nData Operations\nCreate Records\nsf data create record -s Opportunity -v \"Name='New Deal' StageName='Prospecting' CloseDate=2024-12-31 Amount=50000\"\n\nUpdate Records\n# By ID\nsf data update record -s Opportunity -i 006xx000001234 -v \"StageName='Negotiation'\"\n\n# Bulk update via CSV\nsf data upsert bulk -s Opportunity -f updates.csv -i Id --wait 10\n\nExport/Import\n# Export with relationships\nsf data export tree -q \"SELECT Id, Name, (SELECT Id, Subject FROM Tasks) FROM Account WHERE Industry = 'Technology'\" -d ./export\n\n# Import\nsf data import tree -f ./export/Account.json\n\nJSON Output for Scripting\n\nAdd --json for structured output:\n\nsf data query -q \"SELECT Id, Name, Amount FROM Opportunity WHERE IsClosed = false\" --json\n\n\nParse with jq:\n\nsf data query -q \"SELECT Id, Name FROM Opportunity LIMIT 5\" --json | jq '.result.records[].Name'\n\nCommon Date Literals\nLiteral\tMeaning\nTODAY\tCurrent day\nTHIS_WEEK\tCurrent week\nTHIS_MONTH\tCurrent month\nTHIS_QUARTER\tCurrent quarter\nTHIS_YEAR\tCurrent year\nLAST_N_DAYS:n\tPast n days\nNEXT_N_DAYS:n\tNext n days\nLAST_QUARTER\tPrevious quarter\nTroubleshooting\n\n\"Malformed query\" — Check field API names (not labels). Use sf sobject describe to verify.\n\n\"QUERY_TIMEOUT\" — Add filters, use --bulk, or add LIMIT.\n\n\"INVALID_FIELD\" — Field may not exist on that object or your profile lacks access.\n\nLarge result sets — Use --bulk flag for queries returning >2000 records.\n\nExecutive Workflows\nQuick Deal Lookup\n\nFind a deal by name or account:\n\n# By opportunity name (fuzzy)\nsf data query -q \"SELECT Id, Name, Amount, StageName, CloseDate, Owner.Name, Account.Name FROM Opportunity WHERE Name LIKE '%Acme%' ORDER BY Amount DESC\"\n\n# By account name\nsf data query -q \"SELECT Id, Name, Amount, StageName, CloseDate FROM Opportunity WHERE Account.Name LIKE '%Microsoft%' AND IsClosed = false\"\n\n# Recent deals I own\nsf data query -q \"SELECT Id, Name, Amount, StageName, CloseDate, Account.Name FROM Opportunity WHERE OwnerId = '<my-user-id>' AND IsClosed = false ORDER BY CloseDate\"\n\nGet Contact Info for Outreach\n\nFind someone to email at a company:\n\n# Contacts at an account\nsf data query -q \"SELECT Id, Name, Email, Phone, Title FROM Contact WHERE Account.Name LIKE '%Acme%'\"\n\n# Decision makers (by title)\nsf data query -q \"SELECT Name, Email, Title, Account.Name FROM Contact WHERE Title LIKE '%CEO%' OR Title LIKE '%VP%' OR Title LIKE '%Director%'\"\n\n# Contacts on a specific deal\nsf data query -q \"SELECT Contact.Name, Contact.Email, Contact.Title, Role FROM OpportunityContactRole WHERE Opportunity.Name LIKE '%Acme%'\"\n\nPrep for Pipeline Review\n\nGet a quick executive summary:\n\n# Top 10 deals closing this quarter\nsf data query -q \"SELECT Name, Account.Name, Amount, StageName, CloseDate, Owner.Name FROM Opportunity WHERE CloseDate = THIS_QUARTER AND IsClosed = false ORDER BY Amount DESC LIMIT 10\"\n\n# Deals by rep (for 1:1s)\nsf data query -q \"SELECT Owner.Name, COUNT(Id) deals, SUM(Amount) total FROM Opportunity WHERE IsClosed = false GROUP BY Owner.Name ORDER BY SUM(Amount) DESC\"\n\n# Deals needing attention (stale)\nsf data query -q \"SELECT Name, Amount, StageName, LastActivityDate, Owner.Name FROM Opportunity WHERE IsClosed = false AND LastActivityDate < LAST_N_DAYS:14 ORDER BY Amount DESC LIMIT 10\"\n\nAccount Intelligence\n\nBefore a call or meeting:\n\n# Account overview\nsf data query -q \"SELECT Id, Name, Industry, BillingCity, Website, OwnerId FROM Account WHERE Name LIKE '%Acme%'\"\n\n# All open deals with account\nsf data query -q \"SELECT Name, Amount, StageName, CloseDate FROM Opportunity WHERE Account.Name LIKE '%Acme%' AND IsClosed = false\"\n\n# Recent activities\nsf data query -q \"SELECT Subject, Status, ActivityDate FROM Task WHERE Account.Name LIKE '%Acme%' ORDER BY ActivityDate DESC LIMIT 5\"\n\nCross-Tool Workflows\n\nSalesforce + Email (via gog/gmail):\n\nFind contact email: sf data query -q \"SELECT Email FROM Contact WHERE Account.Name LIKE '%Acme%'\"\nDraft email using that address with your email tool\n\nSalesforce + Calendar:\n\nFind deals closing soon: sf data query -q \"SELECT Name, Account.Name, CloseDate FROM Opportunity WHERE CloseDate = THIS_WEEK\"\nCross-reference with calendar to ensure follow-ups scheduled\n\nQuick CRM Update After Call:\n\n# Log a task\nsf data create record -s Task -v \"Subject='Call with John' WhatId='<opportunity-id>' Status='Completed' ActivityDate=$(date +%Y-%m-%d)\"\n\n# Update opportunity stage\nsf data update record -s Opportunity -i <opp-id> -v \"StageName='Negotiation' NextStep='Send proposal'\"\n\nFinding Your User ID\n\nNeeded for \"deals I own\" queries:\n\nsf data query -q \"SELECT Id, Name FROM User WHERE Email = 'your.email@company.com'\"\n\n\nStore this in your local config for quick reference.\n\nReferences\nsoql-patterns.md — Advanced SOQL patterns (polymorphic, semi-joins, formula fields)\npipeline-queries.md — Ready-to-use pipeline and forecast queries"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/rjmcgirr-pl/salesforce-dx",
    "publisherUrl": "https://clawhub.ai/rjmcgirr-pl/salesforce-dx",
    "owner": "rjmcgirr-pl",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/salesforce-dx",
    "downloadUrl": "https://openagent3.xyz/downloads/salesforce-dx",
    "agentUrl": "https://openagent3.xyz/skills/salesforce-dx/agent",
    "manifestUrl": "https://openagent3.xyz/skills/salesforce-dx/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/salesforce-dx/agent.md"
  }
}