{
 "slug": "salesforce",
 "name": "Salesforce",
 "url": "https://salesforce.com",
 "domain": "salesforce.com",
 "category": "crm",
 "category_name": "CRM",
 "tested_at": "2026-10-16",
 "run": "20261016T052456Z",
 "draft": false,
 "reviewed": true,
 "owner_verified": null,
 "origin": "editorial",
 "history": [
  {
   "run": "20261001T213535Z",
   "date": "2026-10-01",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": null,
    "driver": null,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "start"
   }
  },
  {
   "run": "20261006T090800Z",
   "date": "2026-10-06",
   "level": 2,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 2,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "start"
   },
   "why": "product"
  },
  {
   "run": "20261016T052456Z",
   "date": "2026-10-16",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 4,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "skip"
   },
   "why": "product"
  }
 ],
 "level": 1,
 "level_name": "Needs a person",
 "level_selfhost": null,
 "entry": "closed",
 "door": {
  "passed": 1,
  "tries": 3,
  "self_start": false
 },
 "badges": [],
 "stages": [
  {
   "key": "in",
   "label": "Access",
   "state": "part",
   "text": "Gets in 1 of 3 drives",
   "at": "signup"
  },
  {
   "key": "work",
   "label": "Use",
   "state": "unreached",
   "text": "Work not measured"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "unreached",
   "text": "Payment not reached",
   "value": "unreached",
   "route": "card_checkout"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "unreached",
   "text": "Leaving not reached",
   "how": "no-account"
  }
 ],
 "outcomes": [
  {
   "key": "find",
   "label": "Find",
   "state": "part",
   "text": "Some docs agents can read: llms.txt and an MCP server",
   "have": [
    "llms_txt",
    "mcp"
   ],
   "docs": "gaps"
  },
  {
   "key": "access",
   "label": "Access",
   "state": "part",
   "text": "Gets in 1 of 3 drives",
   "at": "signup",
   "stage": "in"
  },
  {
   "key": "use",
   "label": "Use",
   "state": "unreached",
   "text": "Work not measured",
   "stage": "work"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "unreached",
   "text": "Payment not reached",
   "value": "unreached",
   "route": "card_checkout",
   "stage": "pay"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "unreached",
   "text": "Leaving not reached",
   "how": "no-account",
   "stage": "leave"
  }
 ],
 "access": [
  {
   "key": "person",
   "label": "A person sets it up",
   "routes": [],
   "minutes": null,
   "core": null
  }
 ],
 "minutes": null,
 "next": {
  "to": 2,
  "text": "Next: let an agent sign up on its own"
 },
 "stop": "signup",
 "core": "0/10",
 "scores": {
  "coverage": null,
  "reliability": null,
  "resilience": null,
  "setup": 75,
  "surface_coverage": null,
  "docs_accuracy": null,
  "docs_completeness": null
 },
 "parts": {
  "holds_up": null,
  "docs_match": null,
  "setup": 75,
  "security": null,
  "standards": [
   {
    "standard": "MCP client registration",
    "state": "behind",
    "behind": null,
    "value": "dcr"
   }
  ]
 },
 "reliability_method": null,
 "resilience": null,
 "stress": [],
 "surface_audit": null,
 "coverage_core": null,
 "after_wall": null,
 "coverage_source": "computed",
 "driver": {
  "version": 4,
  "model": "claude-opus-5-5",
  "profile": "full",
  "assisted": false,
  "handoff": false,
  "prompt_sha": "365f93123295",
  "kb_version": "3+overlay-83f4487de6",
  "identity": "e8a92f24a9a8"
 },
 "methodology": 15,
 "rules_date": "2026-10-15",
 "engine": {
  "runner": "omp",
  "model": "claude-opus-5-5",
  "driver": 4,
  "signed": true,
  "inbox": [
   "agentdrives.com"
  ],
  "robots": "skip"
 },
 "same_level_drives": 1,
 "drives": 3,
 "works_assisted": null,
 "freshness": "fresh",
 "nothing_to_pay": false,
 "core_gated": false,
 "profiles": {},
 "agent_check": {
  "rung": "signup",
  "vendor": "Akamai (developer.salesforce.com edge)",
  "visible": false,
  "type": "network",
  "human": null,
  "how": "In Akamai Bot Manager, allow verified Web Bot Auth agents on sign-up.",
  "signed": true
 },
 "agent_pass": null,
 "who_gets_in": {
  "server": {
   "state": "edge"
  },
  "signed": {
   "state": "page",
   "kind": "signup",
   "at": "2026-10-16"
  },
  "browser": {
   "state": "through",
   "measured": false
  },
  "our_key": "pending",
  "robots": null,
  "tip": false
 },
 "ladder": {
  "docs": {
   "status": "headless",
   "note": "docs.salesforce.com serves llms.txt and a .md copy of every page (Hosted MCP Servers, sf CLI reference, object reference); developer.salesforce.com itself answers 403 to our agent, and the REST API and Bulk API guides are not on the markdown mirror."
  },
  "signup": {
   "status": "blocked",
   "cause": "check",
   "note": "Akamai refuses our agent on developer.salesforce.com (Developer Edition sign-up, 403 'Oops Something went wrong') and on the c.salesforce.com scripts of the Trailblazer sign-in, with no challenge shown; the Enterprise trial form requires a phone number, then stopped loading for the same 403s."
  },
  "verify": {
   "status": "",
   "note": "not reached: no sign-up went through",
   "reached": false
  },
  "credentials": {
   "status": "",
   "note": "not reached: credentials need an org (External Client App in Setup or sf org login web)",
   "reached": false
  },
  "first_call": {
   "status": "",
   "note": "not reached: the MCP server and the REST API need an org token ('JWT Token is required')",
   "route": "account",
   "reached": false
  },
  "first_action": {
   "status": "",
   "note": "not reached",
   "reached": false
  },
  "pay": {
   "status": "",
   "grade": "P1",
   "rails": [],
   "rail_ids": [],
   "first_party": false,
   "rail_scope": "none",
   "trial_path": "no-card trial",
   "route": "browser",
   "checkout": {
    "reached": "no",
    "processor": "none",
    "captcha": "none",
    "three_ds": "not_seen",
    "card_form": false,
    "phone_field": "required",
    "wallets": [],
    "rail_offer": "none",
    "price": "25.00",
    "currency": "USD",
    "period": "month",
    "plan": "Starter Suite",
    "last_button": ""
   },
   "person": "phone",
   "ours": "account",
   "note": "No 402, MPP or Stripe Projects listing; we paid nothing. The pricing page lists editions from $25 USD/user/month and links only to no-card trials and contact-sales; the trial form requires a phone. Buying happens inside an org we could not get, so the checkout was not reached.",
   "reached": false
  },
  "cancel": {
   "status": "",
   "note": "Nothing to cancel: no account, plan or trial was started. Cancelling was not observed; the docs we read do not describe a billing API.",
   "docs_grade": "",
   "reached": false
  },
  "delete": {
   "status": "",
   "note": "No account was created, so nothing to delete; no trial mail arrived at our inbox.",
   "account": false,
   "reached": false
  }
 },
 "routes": [
  {
   "route": "email_password",
   "offered": "documented",
   "tried": true,
   "not_tried": null,
   "result": "walled",
   "wall": {
    "type": "challenge",
    "owner": "product"
   },
   "person": "none",
   "brings": "inbox",
   "fresh": true,
   "minutes": 8
  },
  {
   "route": "oauth_consent",
   "offered": "seen",
   "tried": true,
   "not_tried": null,
   "result": "walled",
   "wall": {
    "type": "consent_needs_account",
    "owner": "product"
   },
   "person": "none",
   "brings": "nothing",
   "fresh": true,
   "minutes": 1
  }
 ],
 "checkout": {
  "reached": "no",
  "processor": "none",
  "captcha": "none",
  "three_ds": "not_seen",
  "phone_field": "required",
  "rail_offer": "none",
  "period": "month",
  "card_form": false,
  "price": "25.00",
  "currency": "USD",
  "plan": "Starter Suite"
 },
 "docs": {
  "at": "2026-10-16",
  "read": 138,
  "listed": 3736,
  "sampled": true,
  "overall": "gaps",
  "getting_started": "found",
  "auth": "found",
  "errors": "partial",
  "examples": "some",
  "freshness": "old",
  "newest": "2024-05-23",
  "core_pages": "9 of 10",
  "capabilities": "most"
 },
 "claims": null,
 "pay_options": {
  "checked": "2026-10-16",
  "source": "probe",
  "options": [],
  "agentic": [],
  "paid": null,
  "exercised": null,
  "detected_grade": null,
  "trial": {
   "no_card": null,
   "card_required": null,
   "free_plan": null
  },
  "owner_fixes": [
   {
    "title": "Accept x402 or MPP on your API",
    "how": "Answer an unpaid call with 402 and a payment challenge, so an agent pays per call or buys credits without an account or a card."
   },
   {
    "title": "List your plans on Stripe Projects",
    "how": "Agents buy a plan with `stripe projects add`, paid with a token under a spend cap the owner sets (projects.dev)."
   },
   {
    "title": "Let a verified agent finish your checkout",
    "how": "Show signed agents no visible CAPTCHA at checkout, accept virtual and prepaid cards, and don't ask for a phone number to pay."
   }
  ]
 },
 "surfaces": {
  "api": true,
  "openapi": false,
  "cli": true,
  "mcp": "official",
  "llms_txt": true,
  "webhooks": false,
  "sandbox": true
 },
 "surface_notes": {
  "api": "REST/SOQL/Bulk on each org's own domain; guides only on developer.salesforce.com (403 to us)",
  "mcp": "official hosted MCP servers (sobject-all, -reads, -mutations, -deletes, custom Flow/Apex tools), OAuth per org",
  "cli": "sf CLI 2.154.4: data, project deploy, agent generate/test/preview; login web/jwt/access-token, no device flow",
  "llms_txt": "docs.salesforce.com/llms.txt with per-collection llms.txt, manifests and .md pages"
 },
 "can_do": [
  "Read the Salesforce developer docs as markdown from docs.salesforce.com (llms.txt, .md pages, manifests)",
  "Install the sf CLI and list its documented commands without an account"
 ],
 "cannot_do": [
  {
   "what": "Sign up for a free Developer Edition org",
   "why": "developer.salesforce.com answers 403 (Akamai) to our signed agent on every path, in curl and in the browser"
  },
  {
   "what": "Start a Sales Cloud Enterprise trial",
   "why": "the form requires a phone number; it then stopped loading because its scripts answered 403"
  },
  {
   "what": "Start a Starter Suite trial",
   "why": "the Trailblazer sign-in page stays blank: Akamai answers 403 to its scripts"
  },
  {
   "what": "Connect to the hosted MCP server or call the REST API",
   "why": "both need an org and an admin-made External Client App; DCR needs an initial token"
  },
  {
   "what": "Any CRM, service, agent or marketing task",
   "why": "no org could be created"
  }
 ],
 "blockers": [
  "Akamai 403 on developer.salesforce.com (Developer Edition sign-up)",
  "Akamai 403 on Trailblazer sign-in scripts (c.salesforce.com)",
  "Phone number required on the Enterprise trial form"
 ],
 "tips_for_owner": [
  "Let verified agents reach the developer sign-up",
  "Make the trial phone number optional",
  "Offer a headless org sign-up for agents",
  "Support CIMD and device flow on login.salesforce.com",
  "Put the REST and Bulk guides on docs.salesforce.com",
  "Accept x402 or MPP for a plan"
 ],
 "tips_for_agents": [
  "Read docs from docs.salesforce.com (llms.txt and .md URLs); developer.salesforce.com refuses signed agents.",
  "Hosted MCP URLs: https://api.salesforce.com/platform/mcp/v1/<server> (production) and /v1/sandbox/<server> (sandbox, scratch); an admin must enable the servers and create an External Client App first.",
  "The sf CLI has no device login: use org login web, jwt or access-token once a human has an org."
 ],
 "selfhost": null,
 "summary": "An agent cannot get into Salesforce: the free Developer Edition sign-up on developer.salesforce.com and the Trailblazer sign-in behind the Starter Suite trial are refused by Akamai (403, no challenge), and the Enterprise trial form requires a phone number. The docs are agent-friendly on docs.salesforce.com (llms.txt, markdown pages) and there is an official hosted MCP server and a rich sf CLI, but all of it needs an org we could not create, so no capability was driven.",
 "wall": "Akamai refuses sign-up pages; trial needs phone",
 "plan_scope": "",
 "robots_stop": null,
 "robots": {
  "rule": "star",
  "step": null,
  "seen": "2026-10-16",
  "held": false
 },
 "plain": {
  "summary": "Salesforce is a CRM and AI-agent platform, but an agent working on its own could not even sign up: the free developer-account page and the trial sign-in are blocked by the site's anti-bot defenses, and the paid trial form asks for a phone number the agent doesn't have. Because no account or org could be created, none of the CRM, sales, service or AI-agent features could be tried.",
  "can_do": [
   "Read Salesforce's developer documentation as plain text/markdown",
   "Install and inspect the command-line tool's command list"
  ],
  "cannot_do": [
   {
    "what": "Create a free developer account",
    "why": "the sign-up page blocks the agent with no visible check to solve"
   },
   {
    "what": "Start a sales trial",
    "why": "the form requires a phone number the agent doesn't have"
   },
   {
    "what": "Use any CRM, sales, service or AI-agent feature",
    "why": "every feature needs an account, and none could be created"
   }
  ]
 },
 "plan_gated": [],
 "reply": null,
 "capabilities": [
  {
   "id": "cap-01",
   "group": "Sales",
   "capability": "Capture and manage leads, accounts and contacts",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /services/data/vXX.X/sobjects/Lead",
    "mcp": "SObject All (platform/sobject-all)",
    "cli": "sf data create record --sobject Lead",
    "ui": "Sales Cloud > Leads"
   },
   "check": "GET /services/data/vXX.X/sobjects/Lead/{id} returns the created lead record",
   "source": "https://www.salesforce.com/sales/pricing/; https://www.salesforce.com/sales/"
  },
  {
   "id": "cap-02",
   "group": "Sales",
   "capability": "Manage opportunities and sales pipeline",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "PATCH /services/data/vXX.X/sobjects/Opportunity/{id}",
    "mcp": "SObject All",
    "cli": "sf data update record --sobject Opportunity",
    "ui": "Sales Cloud > Opportunities/Pipeline"
   },
   "check": "GET /services/data/vXX.X/sobjects/Opportunity/{id} shows updated StageName/Amount",
   "source": "https://www.salesforce.com/sales/pricing/; https://www.salesforce.com/sales/"
  },
  {
   "id": "cap-03",
   "group": "Sales",
   "capability": "Generate and send sales quotes",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "POST /services/data/vXX.X/sobjects/Quote",
    "mcp": null,
    "cli": null,
    "ui": "Sales Cloud > Quotes (Pro Suite+)"
   },
   "check": "GET /services/data/vXX.X/sobjects/Quote/{id} shows generated quote linked to the opportunity",
   "source": "https://www.salesforce.com/sales/pricing/"
  },
  {
   "id": "cap-04",
   "group": "Sales",
   "capability": "Forecast revenue and pipeline",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "GET /services/data/vXX.X/sobjects/ForecastingItem",
    "mcp": null,
    "cli": null,
    "ui": "Sales Cloud > Forecasts (Pro Suite+)"
   },
   "check": "UI forecast rollup reflects opportunity amount/stage changes",
   "source": "https://www.salesforce.com/sales/pricing/; https://www.salesforce.com/sales/"
  },
  {
   "id": "cap-05",
   "group": "Service",
   "capability": "Create, track and resolve support cases",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /services/data/vXX.X/sobjects/Case",
    "mcp": "SObject All",
    "cli": "sf data create record --sobject Case",
    "ui": "Service Cloud > Case Console"
   },
   "check": "GET /services/data/vXX.X/sobjects/Case/{id} shows Status changed to Closed after resolution",
   "source": "https://www.salesforce.com/service/pricing/; https://www.salesforce.com/service/"
  },
  {
   "id": "cap-06",
   "group": "Service",
   "capability": "Route cases across channels with omni-channel",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /services/data/vXX.X/sobjects/PendingServiceRouting",
    "mcp": null,
    "cli": null,
    "ui": "Service Cloud > Omni-Channel"
   },
   "check": "Case/work item shows assigned OwnerId of the routed agent/queue",
   "source": "https://www.salesforce.com/service/pricing/"
  },
  {
   "id": "cap-07",
   "group": "Agentforce",
   "capability": "Build and configure an autonomous AI agent (topics, actions)",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "developer.salesforce.com Agentforce API/Agent Script",
    "mcp": null,
    "cli": "sf agent generate",
    "ui": "Agentforce > Agent Builder"
   },
   "check": "Agentforce Studio shows the agent with configured topics/actions and a published version",
   "source": "https://www.salesforce.com/agentforce/; https://developer.salesforce.com/docs/ai/agentforce/guide/get-started.html"
  },
  {
   "id": "cap-08",
   "group": "Agentforce",
   "capability": "Deploy an AI agent to a channel (web, Slack, WhatsApp, Teams, voice)",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Agentforce > Channels"
   },
   "check": "Agent responds to a message sent through the configured channel (e.g. Slack app)",
   "source": "https://www.salesforce.com/agentforce/ai-agents/; https://www.salesforce.com/slack/agentforce-in-slack/"
  },
  {
   "id": "cap-09",
   "group": "Marketing",
   "capability": "Build and send email/SMS marketing campaigns",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Marketing Cloud > Email Studio/Campaigns"
   },
   "check": "Campaign send report shows delivered/sent count for the campaign",
   "source": "https://www.salesforce.com/marketing/; https://www.salesforce.com/marketing/pricing/"
  },
  {
   "id": "cap-10",
   "group": "Marketing",
   "capability": "Orchestrate multi-step customer journeys (Journey Builder)",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Marketing Cloud > Journey Builder"
   },
   "check": "Contact's journey history shows progression through defined journey steps",
   "source": "https://www.salesforce.com/marketing/"
  },
  {
   "id": "cap-11",
   "group": "Automation",
   "capability": "Automate business processes with Flow (declarative, no-code)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": "Lightning Flows (custom MCP)",
    "cli": "sf project deploy start --metadata Flow",
    "ui": "Setup > Flow Builder"
   },
   "check": "Record created by Flow trigger is visible via GET /sobjects/{Object}/{id}",
   "source": "https://help.salesforce.com/s/articleView?id=platform.flow_http_callout_configure.htm"
  },
  {
   "id": "cap-12",
   "group": "Automation",
   "capability": "Call external APIs from a workflow (HTTP callout)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Flow Builder > HTTP Callout Action"
   },
   "check": "Flow run log shows the outbound HTTP request and the parsed response fields",
   "source": "https://help.salesforce.com/s/articleView?id=platform.flow_http_callout_configure.htm"
  },
  {
   "id": "cap-13",
   "group": "Automation",
   "capability": "Deploy custom code (Apex classes/triggers, LWC)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": "Apex Actions (custom MCP)",
    "cli": "sf project deploy start --source-dir",
    "ui": "Setup > Apex Classes"
   },
   "check": "sf project deploy report shows Succeeded status and class visible in org metadata",
   "source": "https://developer.salesforce.com/docs/platform/sfvscode-extensions/guide/source-format.html"
  },
  {
   "id": "cap-14",
   "group": "Data",
   "capability": "Query and export records (SOQL)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET /services/data/vXX.X/query?q=SOQL",
    "mcp": "SObject Reads",
    "cli": "sf data query --query",
    "ui": "Setup > Developer Console Query Editor"
   },
   "check": "Response JSON 'records' array matches the queried object's current field values",
   "source": "https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_query.htm"
  },
  {
   "id": "cap-15",
   "group": "Data",
   "capability": "Bulk insert/update/delete large record sets",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /services/data/vXX.X/jobs/ingest",
    "mcp": null,
    "cli": "sf data delete bulk --file",
    "ui": "Setup > Data Import Wizard"
   },
   "check": "GET /services/data/vXX.X/jobs/ingest/{job_id} shows state Completed with record counts",
   "source": "https://developer.salesforce.com/docs/platform/api-asynch/guide/create-job.html"
  },
  {
   "id": "cap-16",
   "group": "Data",
   "capability": "Unify and segment customer data (Data 360/CDP)",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Data 360 > Segmentation"
   },
   "check": "Segment membership count updates in Data 360 UI after unification run",
   "source": "https://www.salesforce.com/data/; https://www.salesforce.com/marketing/data/"
  },
  {
   "id": "cap-17",
   "group": "Service",
   "capability": "Publish and browse self-service knowledge articles",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /services/data/vXX.X/sobjects/Knowledge__kav",
    "mcp": null,
    "cli": null,
    "ui": "Service Cloud > Knowledge"
   },
   "check": "Published article is visible in the self-service Knowledge search results",
   "source": "https://www.salesforce.com/service/pricing/; https://www.salesforce.com/service/"
  },
  {
   "id": "cap-18",
   "group": "Service",
   "capability": "Chat with customers in real time (live chat)",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Service Cloud > Chat (Pro Suite+)"
   },
   "check": "Chat transcript record is created and linked to the case/contact",
   "source": "https://www.salesforce.com/service/pricing/"
  },
  {
   "id": "cap-19",
   "group": "Service",
   "capability": "Manage service contracts and entitlements",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /services/data/vXX.X/sobjects/Entitlement",
    "mcp": null,
    "cli": null,
    "ui": "Service Cloud > Entitlements"
   },
   "check": "Case shows an applied Entitlement with milestone tracking",
   "source": "https://www.salesforce.com/service/pricing/"
  },
  {
   "id": "cap-20",
   "group": "Service",
   "capability": "Collaborate on cases in Slack (swarming)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Service Cloud > Slack Swarming"
   },
   "check": "Slack swarm channel is auto-created and linked to the Case record",
   "source": "https://www.salesforce.com/service/pricing/"
  },
  {
   "id": "cap-21",
   "group": "Agentforce",
   "capability": "Test AI agent behavior before publishing",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Agentforce Studio > Testing Center"
   },
   "check": "Test run history shows pass/fail results per scenario with scoring metrics",
   "source": "https://help.salesforce.com/s/articleView?language=en_US&id=ai.agent_testing_center.htm"
  },
  {
   "id": "cap-22",
   "group": "Agentforce",
   "capability": "Monitor deployed agent performance (observability)",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Agentforce Observability dashboard"
   },
   "check": "Dashboard shows latency, error rate and escalation rate for the agent over time",
   "source": "https://www.salesforce.com/agentforce/observability/"
  },
  {
   "id": "cap-23",
   "group": "Agentforce",
   "capability": "Write agent logic in code (Agent Script / headless dev)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": "sf agent generate",
    "ui": null
   },
   "check": "Agent Script file deploys and the agent version reflects the scripted topic/action",
   "source": "https://developer.salesforce.com/docs/ai/agentforce/guide/agent-script.html; https://developer.salesforce.com/docs/ai/agentforce/guide/headless.html"
  },
  {
   "id": "cap-25",
   "group": "Analytics",
   "capability": "Analyze CRM data with Tableau/Momentum insights",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Sales Cloud > Momentum / Tableau Next (Core+)"
   },
   "check": "Dashboard renders deal-intelligence insight tied to a live opportunity",
   "source": "https://www.salesforce.com/sales/pricing/"
  },
  {
   "id": "cap-26",
   "group": "Admin",
   "capability": "Authenticate and manage org access (CLI/OAuth login)",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": "sf org login web --alias",
    "ui": "Setup > Connected Apps"
   },
   "check": "sf org list shows the newly authenticated org as connected",
   "source": "https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_org_commands_unified.htm"
  },
  {
   "id": "cap-27",
   "group": "Admin",
   "capability": "Map territories and accounts geographically (Salesforce Maps)",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Sales Cloud > Salesforce Maps (Advanced+)"
   },
   "check": "Map view plots account locations with assigned territory boundaries",
   "source": "https://www.salesforce.com/sales/pricing/"
  },
  {
   "id": "cap-28",
   "group": "Admin",
   "capability": "Manage sales commission/incentive compensation",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Sales Cloud > Spiff Incentive Compensation (Advanced+)"
   },
   "check": "Commission statement reflects calculated payout for a closed-won opportunity",
   "source": "https://www.salesforce.com/sales/pricing/"
  },
  {
   "id": "cap-29",
   "group": "Admin",
   "capability": "Back up and monitor data security (Security Center, Backup & Recover)",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Setup > Security Center / Backup & Recover (Advanced+ add-on)"
   },
   "check": "Backup job history shows a completed snapshot with restore point available",
   "source": "https://www.salesforce.com/sales/pricing/"
  }
 ],
 "attempts": [
  {
   "cap": "docs",
   "capability": "Docs",
   "task": "Find agent-readable developer docs",
   "route": "none",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "https://docs.salesforce.com/llms.txt (200 text/plain) -> /developer/current/en-us/llms.txt, 52 collections incl. Hosted MCP Servers, Salesforcedx, Platform; every page has a .md URL served text/markdown",
   "notes": "developer.salesforce.com itself answers 403 (Akamai 'Oops Something went wrong') to our signed agent on every path incl. /robots.txt, /docs and /signup; docs.salesforce.com mirrors the docs as markdown.",
   "t": "02:31"
  },
  {
   "cap": "discovery",
   "capability": "MCP version",
   "task": "server/discover on hosted MCP server",
   "route": "mcp",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "POST https://api.salesforce.com/platform/mcp/v1/platform/sobject-all server/discover -> 401 text/plain {\"errors\":[{\"message\":\"JWT Token is required\"}]}, no WWW-Authenticate header; salesforce.com/mcp -> 403",
   "notes": "auth required before discover; PRM at https://api.salesforce.com/.well-known/oauth-protected-resource (authorization_servers login.salesforce.com, scopes api sfap_api refresh_token einstein_gpt_api); OIDC config has registration_endpoint (DCR), no device_authorization_endpoint, no client_id_metadata_document_supported, PKCE S256",
   "t": "02:31"
  },
  {
   "cap": "discovery",
   "capability": "Cards",
   "task": "MCP server card, AI catalog, A2A card",
   "route": "none",
   "documented": false,
   "result": "done",
   "verified": true,
   "evidence": "<mcp>/server-card 401; www.salesforce.com/.well-known/ai-catalog.json, agent-card.json, agent.json, mcp/server-card.json, ucp, /auth.md all 302 (no JSON); api.salesforce.com/.well-known/ai-catalog.json 404",
   "notes": "no cards",
   "t": "02:31"
  },
  {
   "cap": "discovery",
   "capability": "aipref / markdown",
   "task": "Content-Usage and markdown negotiation",
   "route": "none",
   "documented": false,
   "result": "done",
   "verified": true,
   "evidence": "robots.txt of www.salesforce.com, docs.salesforce.com, login.salesforce.com: no Content-Usage or Content-signal lines; Accept: text/markdown on docs page without .md -> 404 text/html; .md URL -> 200 text/markdown (vary: Origin)",
   "notes": "markdown via md-url only",
   "t": "02:31"
  },
  {
   "cap": "signup",
   "way": "keyless",
   "capability": "No-account access",
   "task": "Find a documented no-account route",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "not_tried": "same_as",
   "evidence": "Hosted MCP docs and REST docs (docs.salesforce.com) require an org and an External Client App; no keyless, local or claimable route documented",
   "notes": "not offered",
   "t": "10:39"
  },
  {
   "cap": "pay",
   "way": "pay_per_call",
   "capability": "Pay per call",
   "task": "Agent payment on a 402 rail",
   "route": "none",
   "documented": false,
   "result": "blocked",
   "verified": true,
   "evidence": "pay_tx.json: status refused, 'no 402 on the product's own endpoint ... asks for USDC'; pay_probe.json: no challenges, x402./mpp./agents. hosts do not resolve, no registry listings",
   "notes": "no agent rail",
   "t": "10:39"
  },
  {
   "cap": "signup",
   "way": "api_signup",
   "capability": "Sign-up call",
   "task": "Find an API/auth.md sign-up",
   "route": "none",
   "documented": false,
   "result": "skipped",
   "verified": false,
   "not_tried": "same_as",
   "evidence": "www.salesforce.com/auth.md 302 (no file); login.salesforce.com/.well-known/oauth-authorization-server 404; openid-configuration has no agent_auth block",
   "notes": "not offered",
   "t": "10:39"
  },
  {
   "cap": "signup",
   "way": "email_password",
   "capability": "Developer Edition sign-up",
   "task": "Sign up for the free Developer Edition org",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "cause": "check",
   "evidence": "www.salesforce.com/form/developer-signup/ -> 301 /products/free-trial/developer/ -> developer.salesforce.com/signup.",
   "notes": "Akamai edge refuses our signed agent on the whole developer.salesforce.com host (headless and browser), no challenge shown; not handed off (invisible rejection, no challenge)",
   "t": "10:40"
  },
  {
   "cap": "signup",
   "way": "email_password",
   "capability": "Enterprise Edition 30-day trial sign-up",
   "task": "Sign up for Sales Cloud EE free trial (no card)",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "cause": "phone",
   "evidence": "https://www.salesforce.com/sales/free-trial/ee/ form fields: firstName, lastName, jobTitle, company, employees, country, email, phone.phoneNumber all required=true (shots/003.png, 004)",
   "notes": "Required phone number we don't have; on the next page load the form itself stopped rendering: 'Oops, something went wrong. Please try again later.' with every c.salesforce.com form script (forms.js, free-trial.js, sf-offer.js) answering 403 to our agent's browser (Akamai). No mail received at an inbox.",
   "t": "10:40"
  },
  {
   "cap": "signup",
   "way": "email_password",
   "capability": "Starter Suite trial sign-up (Trailblazer account)",
   "task": "Sign up via Starter Suite trial",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "cause": "check",
   "evidence": "small-business/free-trial/starter-suite-v2/ redirects to tbid.digital.salesforce.com Okta authorize ('Trailblazer account'); page blank: c.salesforce.com idx-auth-ui/standard-auth.js, idx-tbid-mfe/standard.js answer 403 to our agent's browser (shots/010, 012)",
   "notes": "tbid robots.txt 'User-agent: * Disallow: /' (a rule for all user agents, opened as an account step with --account); the sign-in widget never rendered because Akamai refused its scripts",
   "t": "10:40"
  },
  {
   "cap": "signup",
   "way": "sso_github",
   "capability": "Continue with GitHub",
   "task": "",
   "route": "none",
   "documented": false,
   "result": "skipped",
   "verified": false,
   "not_tried": "same_as",
   "evidence": "no GitHub sign-in on the trial forms seen; Trailblazer page never rendered, so its social buttons are unknown",
   "notes": "not offered where seen",
   "t": "10:40"
  },
  {
   "cap": "signup",
   "way": "sso_google",
   "capability": "Continue with Google",
   "task": "",
   "route": "none",
   "documented": false,
   "result": "skipped",
   "verified": false,
   "not_tried": "same_as",
   "evidence": "not seen on the trial forms; Trailblazer sign-in page did not render",
   "notes": "unknown",
   "t": "10:40"
  },
  {
   "cap": "signup",
   "way": "oauth_consent",
   "capability": "MCP OAuth sign-in",
   "task": "Register a client by DCR and sign in to the hosted MCP server",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "evidence": "POST https://login.salesforce.com/services/oauth2/register (no token) -> 401 {\"error\":\"invalid_client\",\"error_description\":\"invalid client credentials\"}; MCP POST -> 401 'JWT Token is required'",
   "notes": "needs an org: MCP clients use an External Client App created by an admin in Setup; DCR needs an initial access token; no CIMD, no device flow",
   "quality": {
    "error_legibility": "vague"
   },
   "t": "10:40"
  },
  {
   "cap": "verify",
   "way": "email_password",
   "capability": "Verify email",
   "task": "",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "notes": "not reached: sign-up blocked",
   "t": "10:40"
  },
  {
   "cap": "credentials",
   "way": "email_password",
   "capability": "API credentials",
   "task": "Create External Client App / token",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "notes": "not reached: no org",
   "t": "10:40"
  },
  {
   "cap": "first_call",
   "way": "email_password",
   "capability": "First API call",
   "task": "",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "notes": "not reached: no org",
   "t": "10:40"
  },
  {
   "cap": "first_action",
   "way": "email_password",
   "capability": "First action",
   "task": "",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "notes": "not reached: no org",
   "t": "10:40"
  },
  {
   "cap": "credentials",
   "key": "create",
   "capability": "Scoped key headless",
   "task": "Create a scoped token via API/CLI",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "notes": "needs an org; the docs route is an External Client App in Setup, or sf org login web (browser OAuth); no org could be made",
   "t": "10:40"
  },
  {
   "cap": "cap-01",
   "way": "email_password",
   "capability": "Capture and manage leads, accounts and contacts",
   "task": "Capture and manage leads, accounts and contacts in our own org",
   "route": "mcp",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "documented at https://docs.salesforce.com/legacydeveloper/current/en-us/object_reference/sforce_api_objects_lead.md; every route needs a Salesforce org (REST /services/data on the org's My Domain, MCP via External Client App, sf CLI --target-org)",
   "notes": "not reached: no org could be created (Akamai 403 on Developer Edition sign-up and Trailblazer sign-in; phone required on EE trial)",
   "step": "create",
   "t": "13:10"
  },
  {
   "kind": "claim",
   "cap": "cap-01",
   "surface": "api",
   "claim": "POST /services/data/vXX.X/sobjects/Lead",
   "doc_url": "https://docs.salesforce.com/legacydeveloper/current/en-us/object_reference/sforce_api_objects_lead.md",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "not run: no org",
   "t": "13:10",
   "capability": "Docs claim: Capture and manage leads, accounts and contacts",
   "task": "POST /services/data/vXX.X/sobjects/Lead",
   "route": "api",
   "evidence": "not run: no org"
  },
  {
   "kind": "claim",
   "cap": "cap-01",
   "surface": "mcp",
   "claim": "SObject All (platform/sobject-all)",
   "doc_url": "https://docs.salesforce.com/legacydeveloper/current/en-us/object_reference/sforce_api_objects_lead.md",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "not run: no org; server URL https://api.salesforce.com/platform/mcp/v1/platform/sobject-all answers 401 'JWT Token is required'",
   "t": "13:10",
   "capability": "Docs claim: Capture and manage leads, accounts and contacts",
   "task": "SObject All (platform/sobject-all)",
   "route": "mcp",
   "evidence": "not run: no org; server URL https://api.salesforce.com/platform/mcp/v1/platform/sobject-all answers 401 'JWT Token is required'"
  },
  {
   "kind": "claim",
   "cap": "cap-01",
   "surface": "cli",
   "claim": "sf data create record --sobject Lead",
   "doc_url": "https://docs.salesforce.com/legacydeveloper/current/en-us/object_reference/sforce_api_objects_lead.md",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "not run: no org; command present in sf CLI 2.154.4 help (installed in run dir); running it needs --target-org",
   "t": "13:10",
   "capability": "Docs claim: Capture and manage leads, accounts and contacts",
   "task": "sf data create record --sobject Lead",
   "route": "cli",
   "evidence": "not run: no org; command present in sf CLI 2.154.4 help (installed in run dir); running it needs --target-org"
  },
  {
   "cap": "cap-02",
   "way": "email_password",
   "capability": "Manage opportunities and sales pipeline",
   "task": "Manage opportunities and sales pipeline in our own org",
   "route": "mcp",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "documented at https://docs.salesforce.com/legacydeveloper/current/en-us/object_reference/sforce_[redacted].md; every route needs a Salesforce org (REST /services/data on the org's My Domain, MCP via External Client App, sf CLI --target-org)",
   "notes": "not reached: no org could be created (Akamai 403 on Developer Edition sign-up and Trailblazer sign-in; phone required on EE trial)",
   "step": "create",
   "t": "13:10"
  },
  {
   "kind": "claim",
   "cap": "cap-02",
   "surface": "api",
   "claim": "PATCH /services/data/vXX.X/sobjects/Opportunity/{id}",
   "doc_url": "https://docs.salesforce.com/legacydeveloper/current/en-us/object_reference/sforce_[redacted].md",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "not run: no org",
   "t": "13:10",
   "capability": "Docs claim: Manage opportunities and sales pipeline",
   "task": "PATCH /services/data/vXX.X/sobjects/Opportunity/{id}",
   "route": "api",
   "evidence": "not run: no org"
  },
  {
   "kind": "claim",
   "cap": "cap-02",
   "surface": "mcp",
   "claim": "SObject All",
   "doc_url": "https://docs.salesforce.com/legacydeveloper/current/en-us/object_reference/sforce_[redacted].md",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "not run: no org; server URL https://api.salesforce.com/platform/mcp/v1/platform/sobject-all answers 401 'JWT Token is required'",
   "t": "13:10",
   "capability": "Docs claim: Manage opportunities and sales pipeline",
   "task": "SObject All",
   "route": "mcp",
   "evidence": "not run: no org; server URL https://api.salesforce.com/platform/mcp/v1/platform/sobject-all answers 401 'JWT Token is required'"
  },
  {
   "kind": "claim",
   "cap": "cap-02",
   "surface": "cli",
   "claim": "sf data update record --sobject Opportunity",
   "doc_url": "https://docs.salesforce.com/legacydeveloper/current/en-us/object_reference/sforce_[redacted].md",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "not run: no org; command present in sf CLI 2.154.4 help (installed in run dir); running it needs --target-org",
   "t": "13:10",
   "capability": "Docs claim: Manage opportunities and sales pipeline",
   "task": "sf data update record --sobject Opportunity",
   "route": "cli",
   "evidence": "not run: no org; command present in sf CLI 2.154.4 help (installed in run dir); running it needs --target-org"
  },
  {
   "cap": "cap-03",
   "way": "email_password",
   "capability": "Generate and send sales quotes",
   "task": "Generate and send sales quotes in our own org",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "documented at https://docs.salesforce.com/legacydeveloper/current/en-us/object_reference/sforce_api_objects_quote.md; every route needs a Salesforce org (REST /services/data on the org's My Domain, MCP via External Client App, sf CLI --target-org)",
   "notes": "not reached: no org could be created (Akamai 403 on Developer Edition sign-up and Trailblazer sign-in; phone required on EE trial)",
   "step": "create",
   "t": "13:10"
  },
  {
   "kind": "claim",
   "cap": "cap-03",
   "surface": "api",
   "claim": "POST /services/data/vXX.X/sobjects/Quote",
   "doc_url": "https://docs.salesforce.com/legacydeveloper/current/en-us/object_reference/sforce_api_objects_quote.md",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "not run: no org",
   "t": "13:10",
   "capability": "Docs claim: Generate and send sales quotes",
   "task": "POST /services/data/vXX.X/sobjects/Quote",
   "route": "api",
   "evidence": "not run: no org"
  },
  {
   "cap": "cap-04",
   "way": "email_password",
   "capability": "Forecast revenue and pipeline",
   "task": "Forecast revenue and pipeline in our own org",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "documented at https://docs.salesforce.com/legacydeveloper/current/en-us/object_reference/sforce_[redacted].md; every route needs a Salesforce org (REST /services/data on the org's My Domain, MCP via External Client App, sf CLI --target-org)",
   "notes": "not reached: no org could be created (Akamai 403 on Developer Edition sign-up and Trailblazer sign-in; phone required on EE trial)",
   "step": "create",
   "t": "13:11"
  },
  {
   "kind": "claim",
   "cap": "cap-04",
   "surface": "api",
   "claim": "GET /services/data/vXX.X/sobjects/ForecastingItem",
   "doc_url": "https://docs.salesforce.com/legacydeveloper/current/en-us/object_reference/sforce_[redacted].md",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "not run: no org",
   "t": "13:11",
   "capability": "Docs claim: Forecast revenue and pipeline",
   "task": "GET /services/data/vXX.X/sobjects/ForecastingItem",
   "route": "api",
   "evidence": "not run: no org"
  },
  {
   "cap": "cap-05",
   "way": "email_password",
   "capability": "Create, track and resolve support cases",
   "task": "Create, track and resolve support cases in our own org",
   "route": "mcp",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "documented at https://docs.salesforce.com/legacydeveloper/current/en-us/object_reference/sforce_api_objects_case.md; every route needs a Salesforce org (REST /services/data on the org's My Domain, MCP via External Client App, sf CLI --target-org)",
   "notes": "not reached: no org could be created (Akamai 403 on Developer Edition sign-up and Trailblazer sign-in; phone required on EE trial)",
   "step": "create",
   "t": "13:11"
  },
  {
   "kind": "claim",
   "cap": "cap-05",
   "surface": "api",
   "claim": "POST /services/data/vXX.X/sobjects/Case",
   "doc_url": "https://docs.salesforce.com/legacydeveloper/current/en-us/object_reference/sforce_api_objects_case.md",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "not run: no org",
   "t": "13:11",
   "capability": "Docs claim: Create, track and resolve support cases",
   "task": "POST /services/data/vXX.X/sobjects/Case",
   "route": "api",
   "evidence": "not run: no org"
  },
  {
   "kind": "claim",
   "cap": "cap-05",
   "surface": "mcp",
   "claim": "SObject All",
   "doc_url": "https://docs.salesforce.com/legacydeveloper/current/en-us/object_reference/sforce_api_objects_case.md",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "not run: no org; server URL https://api.salesforce.com/platform/mcp/v1/platform/sobject-all answers 401 'JWT Token is required'",
   "t": "13:11",
   "capability": "Docs claim: Create, track and resolve support cases",
   "task": "SObject All",
   "route": "mcp",
   "evidence": "not run: no org; server URL https://api.salesforce.com/platform/mcp/v1/platform/sobject-all answers 401 'JWT Token is required'"
  },
  {
   "kind": "claim",
   "cap": "cap-05",
   "surface": "cli",
   "claim": "sf data create record --sobject Case",
   "doc_url": "https://docs.salesforce.com/legacydeveloper/current/en-us/object_reference/sforce_api_objects_case.md",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "not run: no org; command present in sf CLI 2.154.4 help (installed in run dir); running it needs --target-org",
   "t": "13:12",
   "capability": "Docs claim: Create, track and resolve support cases",
   "task": "sf data create record --sobject Case",
   "route": "cli",
   "evidence": "not run: no org; command present in sf CLI 2.154.4 help (installed in run dir); running it needs --target-org"
  },
  {
   "cap": "cap-06",
   "way": "email_password",
   "capability": "Route cases across channels with omni-channel",
   "task": "Route cases across channels with omni-channel in our own org",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "documented at https://docs.salesforce.com/legacydeveloper/current/en-us/object_reference/sforce_[redacted].md; every route needs a Salesforce org (REST /services/data on the org's My Domain, MCP via External Client App, sf CLI --target-org)",
   "notes": "not reached: no org could be created (Akamai 403 on Developer Edition sign-up and Trailblazer sign-in; phone required on EE trial)",
   "step": "create",
   "t": "13:12"
  },
  {
   "kind": "claim",
   "cap": "cap-06",
   "surface": "api",
   "claim": "POST /services/data/vXX.X/sobjects/PendingServiceRouting",
   "doc_url": "https://docs.salesforce.com/legacydeveloper/current/en-us/object_reference/sforce_[redacted].md",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "not run: no org",
   "t": "13:12",
   "capability": "Docs claim: Route cases across channels with omni-channel",
   "task": "POST /services/data/vXX.X/sobjects/PendingServiceRouting",
   "route": "api",
   "evidence": "not run: no org"
  },
  {
   "cap": "cap-07",
   "way": "email_password",
   "capability": "Build and configure an autonomous AI agent (topics, actions)",
   "task": "Build and configure an autonomous AI agent (topics, actions) in our own org",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "documented at https://docs.salesforce.com/developer/current/en-us/genai/agentforce/guides/agentforce/agent-dx/agent-dx-manage.md; every route needs a Salesforce org (REST /services/data on the org's My Domain, MCP via External Client App, sf CLI --target-org)",
   "notes": "not reached: no org could be created (Akamai 403 on Developer Edition sign-up and Trailblazer sign-in; phone required on EE trial)",
   "step": "create",
   "t": "13:12"
  },
  {
   "kind": "claim",
   "cap": "cap-07",
   "surface": "api",
   "claim": "developer.salesforce.com Agentforce API/Agent Script",
   "doc_url": "https://docs.salesforce.com/developer/current/en-us/genai/agentforce/guides/agentforce/agent-dx/agent-dx-manage.md",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "not run: no org",
   "t": "13:12",
   "capability": "Docs claim: Build and configure an autonomous AI agent (topics, actions)",
   "task": "developer.salesforce.com Agentforce API/Agent Script",
   "route": "api",
   "evidence": "not run: no org"
  },
  {
   "kind": "claim",
   "cap": "cap-07",
   "surface": "cli",
   "claim": "sf agent generate",
   "doc_url": "https://docs.salesforce.com/developer/current/en-us/genai/agentforce/guides/agentforce/agent-dx/agent-dx-manage.md",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "not run: no org; command present in sf CLI 2.154.4 help (installed in run dir); running it needs --target-org",
   "t": "13:12",
   "capability": "Docs claim: Build and configure an autonomous AI agent (topics, actions)",
   "task": "sf agent generate",
   "route": "cli",
   "evidence": "not run: no org; command present in sf CLI 2.154.4 help (installed in run dir); running it needs --target-org"
  },
  {
   "cap": "cap-08",
   "way": "email_password",
   "capability": "Deploy an AI agent to a channel (web, Slack, WhatsApp, Teams, voice)",
   "task": "Deploy an AI agent to a channel (web, Slack, WhatsApp, Teams, voice) in our own org",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "documented at https://docs.salesforce.com/developer/current/en-us/genai/agentforce/guides/agentforce/agent-dx/deploy-metadata/agent-dx-api-v67-earlier.md; every route needs a Salesforce org (REST /services/data on the org's My Domain, MCP via External Client App, sf CLI --target-org)",
   "notes": "not reached: no org could be created (Akamai 403 on Developer Edition sign-up and Trailblazer sign-in; phone required on EE trial)",
   "step": "create",
   "t": "13:12"
  },
  {
   "cap": "cap-09",
   "way": "email_password",
   "capability": "Build and send email/SMS marketing campaigns",
   "task": "Build and send email/SMS marketing campaigns in our own org",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "documented at https://docs.salesforce.com/developer/current/en-us/marketing-cloud/guides/mc-apis/17000_17999_triggeredsenddefinition_object.md; every route needs a Salesforce org (REST /services/data on the org's My Domain, MCP via External Client App, sf CLI --target-org)",
   "notes": "not reached: no org could be created (Akamai 403 on Developer Edition sign-up and Trailblazer sign-in; phone required on EE trial)",
   "step": "create",
   "t": "13:12"
  },
  {
   "cap": "cap-10",
   "way": "email_password",
   "capability": "Orchestrate multi-step customer journeys (Journey Builder)",
   "task": "Orchestrate multi-step customer journeys (Journey Builder) in our own org",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "documented at https://docs.salesforce.com/developer/current/en-us/marketing-cloud/guides/mc-apis/deleteInteractionById.md; every route needs a Salesforce org (REST /services/data on the org's My Domain, MCP via External Client App, sf CLI --target-org)",
   "notes": "not reached: no org could be created (Akamai 403 on Developer Edition sign-up and Trailblazer sign-in; phone required on EE trial)",
   "step": "create",
   "t": "13:12"
  },
  {
   "cap": "cap-11",
   "way": "email_password",
   "capability": "Automate business processes with Flow (declarative, no-code)",
   "task": "Automate business processes with Flow (declarative, no-code) in our own org",
   "route": "mcp",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "documented at https://docs.salesforce.com/developer/current/en-us/hosted-mcp-servers/hosted-mcp-servers/guides/custom-servers/flows.md; every route needs a Salesforce org (REST /services/data on the org's My Domain, MCP via External Client App, sf CLI --target-org)",
   "notes": "not reached: no org could be created (Akamai 403 on Developer Edition sign-up and Trailblazer sign-in; phone required on EE trial)",
   "t": "13:12"
  },
  {
   "cap": "cap-12",
   "way": "email_password",
   "capability": "Call external APIs from a workflow (HTTP callout)",
   "task": "Call external APIs from a workflow (HTTP callout) in our own org",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "documented at https://docs.salesforce.com/legacydeveloper/current/en-us/apexcode/apex_callouts_http.md; every route needs a Salesforce org (REST /services/data on the org's My Domain, MCP via External Client App, sf CLI --target-org)",
   "notes": "not reached: no org could be created (Akamai 403 on Developer Edition sign-up and Trailblazer sign-in; phone required on EE trial)",
   "t": "13:12"
  },
  {
   "cap": "cap-13",
   "way": "email_password",
   "capability": "Deploy custom code (Apex classes/triggers, LWC)",
   "task": "Deploy custom code (Apex classes/triggers, LWC) in our own org",
   "route": "mcp",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "documented at https://docs.salesforce.com/developer/current/en-us/salesforcedx/sfclireference/guides/project/cli_reference_project_deploy_start.md; every route needs a Salesforce org (REST /services/data on the org's My Domain, MCP via External Client App, sf CLI --target-org)",
   "notes": "not reached: no org could be created (Akamai 403 on Developer Edition sign-up and Trailblazer sign-in; phone required on EE trial)",
   "t": "13:12"
  },
  {
   "cap": "cap-14",
   "way": "email_password",
   "capability": "Query and export records (SOQL)",
   "task": "Query and export records (SOQL) in our own org",
   "route": "mcp",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "documented at https://docs.salesforce.com/developer/current/en-us/salesforcedx/sfclireference/guides/data/cli_reference_data_query.md; every route needs a Salesforce org (REST /services/data on the org's My Domain, MCP via External Client App, sf CLI --target-org)",
   "notes": "not reached: no org could be created (Akamai 403 on Developer Edition sign-up and Trailblazer sign-in; phone required on EE trial)",
   "t": "13:13"
  },
  {
   "cap": "cap-15",
   "way": "email_password",
   "capability": "Bulk insert/update/delete large record sets",
   "task": "Bulk insert/update/delete large record sets in our own org",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "documented at https://docs.salesforce.com/developer/current/en-us/salesforcedx/sfclireference/guides/data/cli_reference_data_delete_bulk.md; every route needs a Salesforce org (REST /services/data on the org's My Domain, MCP via External Client App, sf CLI --target-org)",
   "notes": "not reached: no org could be created (Akamai 403 on Developer Edition sign-up and Trailblazer sign-in; phone required on EE trial)",
   "t": "13:13"
  },
  {
   "cap": "cap-16",
   "way": "email_password",
   "capability": "Unify and segment customer data (Data 360/CDP)",
   "task": "Unify and segment customer data (Data 360/CDP) in our own org",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "documented at https://docs.salesforce.com/legacydeveloper/current/en-us/apexcode/connect[redacted].md; every route needs a Salesforce org (REST /services/data on the org's My Domain, MCP via External Client App, sf CLI --target-org)",
   "notes": "not reached: no org could be created (Akamai 403 on Developer Edition sign-up and Trailblazer sign-in; phone required on EE trial)",
   "t": "13:13"
  },
  {
   "cap": "cap-17",
   "way": "email_password",
   "capability": "Publish and browse self-service knowledge articles",
   "task": "Publish and browse self-service knowledge articles in our own org",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "documented at https://docs.salesforce.com/legacydeveloper/current/en-us/apexref/apex_connect[redacted].md; every route needs a Salesforce org (REST /services/data on the org's My Domain, MCP via External Client App, sf CLI --target-org)",
   "notes": "not reached: no org could be created (Akamai 403 on Developer Edition sign-up and Trailblazer sign-in; phone required on EE trial)",
   "t": "13:13"
  },
  {
   "cap": "cap-18",
   "way": "email_password",
   "capability": "Chat with customers in real time (live chat)",
   "task": "Chat with customers in real time (live chat) in our own org",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "documented at https://docs.salesforce.com/legacydeveloper/current/en-us/api_meta/meta_livechatagentconfig.md; every route needs a Salesforce org (REST /services/data on the org's My Domain, MCP via External Client App, sf CLI --target-org)",
   "notes": "not reached: no org could be created (Akamai 403 on Developer Edition sign-up and Trailblazer sign-in; phone required on EE trial)",
   "t": "13:13"
  },
  {
   "cap": "cap-19",
   "way": "email_password",
   "capability": "Manage service contracts and entitlements",
   "task": "Manage service contracts and entitlements in our own org",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "documented at https://docs.salesforce.com/legacydeveloper/current/en-us/object_reference/sforce_[redacted].md; every route needs a Salesforce org (REST /services/data on the org's My Domain, MCP via External Client App, sf CLI --target-org)",
   "notes": "not reached: no org could be created (Akamai 403 on Developer Edition sign-up and Trailblazer sign-in; phone required on EE trial)",
   "t": "13:13"
  },
  {
   "cap": "cap-20",
   "way": "email_password",
   "capability": "Collaborate on cases in Slack (swarming)",
   "task": "Collaborate on cases in Slack (swarming) in our own org",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "documented at https://docs.salesforce.com/legacydeveloper/current/en-us/object_reference/sforce_api_objects_swarm.md; every route needs a Salesforce org (REST /services/data on the org's My Domain, MCP via External Client App, sf CLI --target-org)",
   "notes": "not reached: no org could be created (Akamai 403 on Developer Edition sign-up and Trailblazer sign-in; phone required on EE trial)",
   "t": "13:13"
  },
  {
   "cap": "cap-21",
   "way": "email_password",
   "capability": "Test AI agent behavior before publishing",
   "task": "Test AI agent behavior before publishing in our own org",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "documented at https://docs.salesforce.com/developer/current/en-us/genai/agentforce/guides/agentforce/agent-dx/agent-dx-test-create.md; every route needs a Salesforce org (REST /services/data on the org's My Domain, MCP via External Client App, sf CLI --target-org)",
   "notes": "not reached: no org could be created (Akamai 403 on Developer Edition sign-up and Trailblazer sign-in; phone required on EE trial)",
   "t": "13:13"
  },
  {
   "cap": "cap-22",
   "way": "email_password",
   "capability": "Monitor deployed agent performance (observability)",
   "task": "Monitor deployed agent performance (observability) in our own org",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "documented at no page found on docs.salesforce.com mirror; every route needs a Salesforce org (REST /services/data on the org's My Domain, MCP via External Client App, sf CLI --target-org)",
   "notes": "not reached: no org could be created (Akamai 403 on Developer Edition sign-up and Trailblazer sign-in; phone required on EE trial)",
   "t": "13:13"
  },
  {
   "cap": "cap-23",
   "way": "email_password",
   "capability": "Write agent logic in code (Agent Script / headless dev)",
   "task": "Write agent logic in code (Agent Script / headless dev) in our own org",
   "route": "cli",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "documented at https://docs.salesforce.com/developer/current/en-us/salesforcedx/sfclireference/guides/agent/cli_reference_agent_generate_authoring-bundle.md; every route needs a Salesforce org (REST /services/data on the org's My Domain, MCP via External Client App, sf CLI --target-org)",
   "notes": "not reached: no org could be created (Akamai 403 on Developer Edition sign-up and Trailblazer sign-in; phone required on EE trial)",
   "t": "13:13"
  },
  {
   "cap": "cap-25",
   "way": "email_password",
   "capability": "Analyze CRM data with Tableau/Momentum insights",
   "task": "Analyze CRM data with Tableau/Momentum insights in our own org",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "documented at https://docs.salesforce.com/developer/current/en-us/analytics/sdk/guides/sdk-access-token.md; every route needs a Salesforce org (REST /services/data on the org's My Domain, MCP via External Client App, sf CLI --target-org)",
   "notes": "not reached: no org could be created (Akamai 403 on Developer Edition sign-up and Trailblazer sign-in; phone required on EE trial)",
   "t": "13:14"
  },
  {
   "cap": "cap-26",
   "way": "email_password",
   "capability": "Authenticate and manage org access (CLI/OAuth login)",
   "task": "Authenticate and manage org access (CLI/OAuth login) in our own org",
   "route": "cli",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "documented at https://docs.salesforce.com/developer/current/en-us/salesforcedx/sfclireference/guides/org/cli_reference_org_login_web.md; every route needs a Salesforce org (REST /services/data on the org's My Domain, MCP via External Client App, sf CLI --target-org)",
   "notes": "not reached: no org could be created (Akamai 403 on Developer Edition sign-up and Trailblazer sign-in; phone required on EE trial); peripheral checked against docs: page exists",
   "t": "13:14"
  },
  {
   "cap": "cap-27",
   "way": "email_password",
   "capability": "Map territories and accounts geographically (Salesforce Maps)",
   "task": "Map territories and accounts geographically (Salesforce Maps) in our own org",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "documented at no page found on docs.salesforce.com mirror; every route needs a Salesforce org (REST /services/data on the org's My Domain, MCP via External Client App, sf CLI --target-org)",
   "notes": "not reached: no org could be created (Akamai 403 on Developer Edition sign-up and Trailblazer sign-in; phone required on EE trial)",
   "t": "13:14"
  },
  {
   "cap": "cap-28",
   "way": "email_password",
   "capability": "Manage sales commission/incentive compensation",
   "task": "Manage sales commission/incentive compensation in our own org",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "documented at https://docs.salesforce.com/developer/current/en-us/sales-cloud/spiff/guides/estimator-api.md; every route needs a Salesforce org (REST /services/data on the org's My Domain, MCP via External Client App, sf CLI --target-org)",
   "notes": "not reached: no org could be created (Akamai 403 on Developer Edition sign-up and Trailblazer sign-in; phone required on EE trial); peripheral checked against docs: page exists",
   "t": "13:14"
  },
  {
   "cap": "cap-29",
   "way": "email_password",
   "capability": "Back up and monitor data security (Security Center, Backup & Recover)",
   "task": "Back up and monitor data security (Security Center, Backup & Recover) in our own org",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "documented at https://docs.salesforce.com/developer/current/en-us/backup-recover-api/BaRN-api/guides/authorization.md; every route needs a Salesforce org (REST /services/data on the org's My Domain, MCP via External Client App, sf CLI --target-org)",
   "notes": "not reached: no org could be created (Akamai 403 on Developer Edition sign-up and Trailblazer sign-in; phone required on EE trial); peripheral checked against docs: page exists",
   "t": "13:14"
  },
  {
   "cap": "pay",
   "step": "probe",
   "capability": "Pay step public probes",
   "task": "402s, registries, checkout, trial card",
   "route": "none",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "pay_probe.json: no 402 challenges, no MPP/Bazaar/Stripe Projects listings, no /.well-known/ucp (302), no x402./mpp./agents. hosts; sales/pricing page: editions at $25-$220 USD/user/month, links only to free-trial forms and 'contactme-sales'; EE trial page: 'No credit card required, no software to install.'",
   "notes": "no public checkout link on the pricing page; purchase happens in the org (not reached) or through sales",
   "t": "13:26"
  },
  {
   "cap": "pay",
   "step": "checkout",
   "capability": "Walk to the last click",
   "task": "Open the cheapest plan's checkout",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "notes": "no account, so no in-app buy page; the public pricing page has no checkout, only trial and contact-sales forms",
   "t": "13:26"
  },
  {
   "cap": "cancel",
   "capability": "Cancel",
   "task": "",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "notes": "nothing started: no account, no plan, no trial",
   "t": "13:27"
  },
  {
   "cap": "delete",
   "capability": "Delete account",
   "task": "",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "notes": "nothing made: no account was created (no trial mail arrived at the agent's inbox)",
   "t": "13:27"
  }
 ],
 "stale": false,
 "icon": "/logos/salesforce.png",
 "monitored": false,
 "verdict": null,
 "page": "https://agentdrives.com/tools/salesforce?via=api"
}