{
 "slug": "hubspot",
 "name": "HubSpot",
 "url": "https://hubspot.com",
 "domain": "hubspot.com",
 "category": "crm",
 "category_name": "CRM",
 "tested_at": "2026-10-16",
 "run": "20261016T061103Z",
 "draft": false,
 "reviewed": true,
 "owner_verified": null,
 "origin": "editorial",
 "history": [
  {
   "run": "20261001T195912Z",
   "date": "2026-10-01",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": null,
    "driver": null,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "start"
   },
   "drives": 2
  },
  {
   "run": "20261006T080114Z",
   "date": "2026-10-06",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 2,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "start"
   }
  },
  {
   "run": "20261016T061103Z",
   "date": "2026-10-16",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 4,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "skip"
   }
  }
 ],
 "level": 1,
 "level_name": "Needs a person",
 "level_selfhost": null,
 "entry": "closed",
 "door": {
  "passed": 0,
  "tries": 3,
  "self_start": false
 },
 "badges": [],
 "stages": [
  {
   "key": "in",
   "label": "Access",
   "state": "no",
   "text": "Can't get in on its own",
   "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": "yes",
   "text": "Docs agents can read: llms.txt, an OpenAPI and an MCP server; a docs page for each core task",
   "have": [
    "llms_txt",
    "openapi",
    "mcp"
   ],
   "docs": "complete"
  },
  {
   "key": "access",
   "label": "Access",
   "state": "no",
   "text": "Can't get in on its own",
   "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": null,
 "scores": {
  "coverage": null,
  "reliability": null,
  "resilience": null,
  "setup": 100,
  "surface_coverage": null,
  "docs_accuracy": null,
  "docs_completeness": null
 },
 "parts": {
  "holds_up": null,
  "docs_match": null,
  "setup": 100,
  "security": null,
  "standards": [
   {
    "standard": "OpenAPI",
    "state": "behind",
    "behind": 2,
    "value": "3.0.1"
   }
  ]
 },
 "reliability_method": null,
 "resilience": null,
 "stress": [],
 "surface_audit": null,
 "coverage_core": null,
 "after_wall": null,
 "coverage_source": "reported",
 "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": 4,
 "drives": 4,
 "works_assisted": null,
 "freshness": "fresh",
 "nothing_to_pay": false,
 "core_gated": false,
 "profiles": {},
 "agent_check": {
  "rung": "signup",
  "vendor": "Google reCAPTCHA v2 checkbox",
  "visible": true,
  "type": "challenge",
  "human": null,
  "how": "Check the Web Bot Auth signature on the sign-up request and skip reCAPTCHA (or lower the score threshold) for signed agents; or offer a documented sign-up API with email verification.",
  "signed": true
 },
 "agent_pass": null,
 "who_gets_in": {
  "server": {
   "state": "captcha"
  },
  "signed": {
   "state": "robots",
   "kind": "signup",
   "at": "2026-10-16"
  },
  "browser": {
   "state": "captcha",
   "measured": false
  },
  "our_key": "pending",
  "robots": "closed",
  "tip": false
 },
 "ladder": {
  "docs": {
   "status": "headless",
   "note": "developers.hubspot.com docs, both llms.txt files and markdown pages (Accept: text/markdown and .md) read headless; the OpenAPI links in the docs llms.txt return 404."
  },
  "signup": {
   "status": "human",
   "cause": "check",
   "note": "Email sign-up shows a visible reCAPTCHA checkbox ('Verify that you're human') before any code is sent, so no account was made."
  },
  "verify": {
   "status": "",
   "note": "Not reached: behind the reCAPTCHA on sign-up.",
   "reached": false
  },
  "credentials": {
   "status": "",
   "note": "Not reached: service keys, MCP connectors and Agent CLI login all need an account.",
   "via": "",
   "reached": false
  },
  "first_call": {
   "status": "",
   "note": "Not reached: every CRM API, MCP and CLI call needs an account.",
   "route": "account",
   "reached": false
  },
  "first_action": {
   "status": "",
   "note": "Not reached: behind the sign-up wall.",
   "reached": false
  },
  "pay": {
   "status": "",
   "grade": "P1",
   "rails": [
    "card checkout behind sign-up (processor not seen)"
   ],
   "rail_ids": [
    "card"
   ],
   "first_party": false,
   "rail_scope": "none",
   "trial_path": "free tier",
   "route": "card_checkout",
   "checkout": {
    "reached": "plan_page",
    "processor": "none",
    "captcha": "visible",
    "three_ds": "not_seen",
    "card_form": false,
    "phone_field": "none",
    "wallets": [],
    "rail_offer": "none",
    "price": "7.00",
    "currency": "EUR",
    "period": "month",
    "plan": "Sales Hub Starter",
    "last_button": ""
   },
   "person": "captcha",
   "ours": null,
   "note": "No 402 or agent rail. Pricing shows Free (€0, no card) and Starter €7/mo/seat; Buy now leads to signup-hubspot/purchase ('Your payment details come next'), the same sign-up with a visible reCAPTCHA, so the card form was not reached.",
   "reached": false
  },
  "cancel": {
   "status": "",
   "grade": "n/a",
   "note": "Nothing to cancel: no plan or trial was started. Cancelling was not seen in the docs we read on this drive.",
   "reached": false
  },
  "delete": {
   "status": "",
   "note": "No account was created, so there was nothing to delete.",
   "account": false,
   "reached": false
  }
 },
 "routes": [
  {
   "route": "claimable",
   "offered": "documented",
   "tried": false,
   "not_tried": "policy",
   "result": null,
   "wall": null,
   "person": "none",
   "brings": "nothing",
   "fresh": null,
   "minutes": null
  },
  {
   "route": "email_code",
   "offered": "seen",
   "tried": true,
   "not_tried": null,
   "result": "walled",
   "wall": {
    "type": "challenge",
    "owner": "product"
   },
   "person": "each",
   "brings": "inbox",
   "fresh": true,
   "minutes": 2.5
  },
  {
   "route": "device_login",
   "offered": "documented",
   "tried": false,
   "not_tried": "same_as",
   "result": null,
   "wall": null,
   "person": "none",
   "brings": "nothing",
   "fresh": null,
   "minutes": null
  },
  {
   "route": "oauth_consent",
   "offered": "documented",
   "tried": false,
   "not_tried": "same_as",
   "result": null,
   "wall": null,
   "person": "none",
   "brings": "nothing",
   "fresh": null,
   "minutes": null
  }
 ],
 "checkout": {
  "reached": "plan_page",
  "processor": "none",
  "captcha": "visible",
  "three_ds": "not_seen",
  "phone_field": "none",
  "rail_offer": "none",
  "period": "month",
  "card_form": false,
  "price": "7.00",
  "currency": "EUR",
  "plan": "Sales Hub Starter"
 },
 "docs": {
  "at": "2026-10-16",
  "read": 519,
  "listed": 1006,
  "sampled": true,
  "overall": "complete",
  "getting_started": "found",
  "auth": "found",
  "errors": "found",
  "examples": "some",
  "freshness": "fresh",
  "newest": "2026-10-16",
  "core_pages": "10 of 10",
  "capabilities": "covered"
 },
 "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": true,
  "cli": true,
  "sdk": true,
  "mcp": "official",
  "llms_txt": true,
  "webhooks": true,
  "sandbox": true
 },
 "surface_notes": {
  "openapi": "llms.txt spec links 404; GitHub spec collection declares 3.0.1",
  "mcp": "official remote server mcp.hubspot.com (OAuth+PKCE) and a local developer MCP",
  "cli": "HubSpot CLI and Agent CLI (beta, 'hubspot auth login')"
 },
 "can_do": [
  "Read HubSpot's developer docs as markdown (Accept: text/markdown or .md) and both llms.txt files"
 ],
 "cannot_do": [
  {
   "what": "Create a HubSpot account",
   "why": "Email sign-up shows a visible reCAPTCHA checkbox; the other sign-in buttons (Microsoft, Apple, ChatGPT) need accounts our agent lacks"
  },
  {
   "what": "Any CRM, marketing or service capability",
   "why": "Every API, MCP and CLI route needs an account"
  },
  {
   "what": "Buy a plan",
   "why": "The checkout sits behind the same sign-up with the reCAPTCHA; no agent payment rail"
  }
 ],
 "blockers": [
  "Visible reCAPTCHA checkbox on the email sign-up (step code_verification)"
 ],
 "tips_for_owner": [
  "Let verified agents sign up without reCAPTCHA",
  "Offer a headless sign-up or device login",
  "Fix the OpenAPI links in llms.txt",
  "Serve MCP discovery and PRM publicly",
  "Accept agent payments on Starter plans"
 ],
 "tips_for_agents": [
  "Docs are agent-friendly: send Accept: text/markdown or append .md; start at developers.hubspot.com/docs/llms.txt.",
  "Sign-up needs a human for the reCAPTCHA; once an account exists, the Agent CLI ('hubspot auth login') or a service key is the best route.",
  "app.hubspot.com, api.hubapi.com and mcp.hubspot.com disallow all user agents in robots.txt: only account steps may go there."
 ],
 "selfhost": null,
 "summary": "HubSpot's docs are agent-friendly (llms.txt, markdown pages, an official MCP server and an Agent CLI), but an agent cannot get in on its own: the email sign-up shows a visible reCAPTCHA checkbox before the code is sent. Every capability, the key, MCP and the checkout sit behind that wall, so nothing in the CRM was driven.",
 "wall": "Visible reCAPTCHA checkbox on email sign-up",
 "plan_scope": "",
 "robots_stop": null,
 "robots": {
  "rule": "star",
  "step": null,
  "seen": "2026-10-16",
  "held": false
 },
 "plain": {
  "summary": "HubSpot is a CRM and marketing platform with good developer docs for AI agents, but an agent cannot sign up on its own: the sign-up form shows a 'prove you're human' checkbox before it will even send a verification code. Because of that, nothing on the CRM, no payment, and no account deletion could be tried.",
  "can_do": [
   "Read HubSpot's help pages and documentation automatically, including a version made for AI readers."
  ],
  "cannot_do": [
   {
    "what": "Create a HubSpot account",
    "why": "A visible 'I'm not a robot' checkbox blocks sign-up before any code is sent"
   },
   {
    "what": "Use the CRM, marketing, sales or service tools",
    "why": "Every one of them needs an account first"
   },
   {
    "what": "Buy a paid plan",
    "why": "Checkout asks for the same sign-up with the same checkbox"
   }
  ]
 },
 "plan_gated": [],
 "reply": null,
 "capabilities": [
  {
   "id": "cap-01",
   "group": "CRM",
   "capability": "Create and manage a contact record",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /crm/objects/2026-09/0-1",
    "mcp": null,
    "cli": null,
    "ui": "CRM > Contacts"
   },
   "check": "GET /crm/objects/2026-09/0-1/{contactId} returns the created/updated properties",
   "source": "https://developers.hubspot.com/docs/api-reference/latest/crm/objects/contacts/guide; https://www.hubspot.com/products/crm/contact-management"
  },
  {
   "id": "cap-02",
   "group": "CRM",
   "capability": "Create and manage a company record",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /crm/objects/2026-09/0-2",
    "mcp": null,
    "cli": null,
    "ui": "CRM > Companies"
   },
   "check": "GET /crm/objects/2026-09/0-2/{companyId} returns the created/updated properties",
   "source": "https://developers.hubspot.com/docs/api-reference/latest/crm/objects/companies/guide"
  },
  {
   "id": "cap-03",
   "group": "Sales",
   "capability": "Create a deal and move it through a pipeline",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /crm/objects/2026-09/0-3; PATCH /crm/objects/2026-09/0-3/{dealId}",
    "mcp": null,
    "cli": null,
    "ui": "Sales > Deals board"
   },
   "check": "GET /crm/objects/2026-09/0-3/{dealId} shows dealstage changed to the target pipeline stage",
   "source": "https://developers.hubspot.com/docs/api-reference/latest/crm/objects/deals/guide; https://www.hubspot.com/products/crm/pipeline-management"
  },
  {
   "id": "cap-04",
   "group": "Service",
   "capability": "Create and track a support ticket through a pipeline",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /crm/objects/2026-09/0-5",
    "mcp": null,
    "cli": null,
    "ui": "Service > Help Desk / Tickets"
   },
   "check": "GET /crm/objects/2026-09/0-5/{ticketId} shows hs_pipeline_stage updated",
   "source": "https://developers.hubspot.com/docs/api-reference/latest/crm/objects/tickets/guide; https://www.hubspot.com/products/service"
  },
  {
   "id": "cap-05",
   "group": "Marketing",
   "capability": "Send a marketing email campaign",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "marketing emails API (Marketing Hub)",
    "mcp": null,
    "cli": null,
    "ui": "Marketing > Email"
   },
   "check": "Email detail page / stats API shows the email in 'sent' state with recipient counts",
   "source": "https://www.hubspot.com/products/marketing/email; https://www.hubspot.com/products/marketing/drag-drop-email-builder"
  },
  {
   "id": "cap-06",
   "group": "Marketing",
   "capability": "Build and publish a landing page",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "CMS Pages API",
    "mcp": null,
    "cli": null,
    "ui": "Marketing > Website > Landing Pages"
   },
   "check": "Published page is reachable at its live URL and CMS Pages API shows state=PUBLISHED",
   "source": "https://www.hubspot.com/products/marketing/landing-pages; https://developers.hubspot.com/docs/api-reference/latest"
  },
  {
   "id": "cap-07",
   "group": "Marketing",
   "capability": "Create a web form to capture leads",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "Forms API",
    "mcp": null,
    "cli": null,
    "ui": "Marketing > Lead Capture > Forms"
   },
   "check": "Submitting the embedded form creates a contact record visible via GET /crm/objects/2026-09/0-1/search",
   "source": "https://www.hubspot.com/products/marketing/forms"
  },
  {
   "id": "cap-08",
   "group": "Marketing",
   "capability": "Build a multi-step marketing automation workflow",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "Automation/Workflows API",
    "mcp": null,
    "cli": null,
    "ui": "Automation > Workflows"
   },
   "check": "Workflow history log shows an enrolled contact progressing through the defined actions",
   "source": "https://www.hubspot.com/products/marketing/marketing-automation"
  },
  {
   "id": "cap-09",
   "group": "Sales/Service",
   "capability": "Chat with website visitors in real time (live chat)",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "Conversations API",
    "mcp": null,
    "cli": null,
    "ui": "Conversations inbox / chat widget"
   },
   "check": "Conversations API thread shows the exchanged messages with timestamps",
   "source": "https://www.hubspot.com/products/crm/live-chat"
  },
  {
   "id": "cap-10",
   "group": "Sales",
   "capability": "Schedule a meeting via booking link",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "Meetings API",
    "mcp": null,
    "cli": null,
    "ui": "Sales > Meetings"
   },
   "check": "GET /crm/objects/2026-09/0-47/{meetingId} shows the booked meeting with time and attendee",
   "source": "https://www.hubspot.com/products/scheduling-software; https://www.hubspot.com/products/sales/schedule-meeting"
  },
  {
   "id": "cap-11",
   "group": "Search",
   "capability": "Search and filter CRM records by property",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /crm/objects/2026-09/{objectTypeId}/search",
    "mcp": null,
    "cli": null,
    "ui": "CRM record list filters"
   },
   "check": "Search response returns only records matching the filter criteria",
   "source": "https://developers.hubspot.com/docs/api-reference/latest/crm/understanding-the-crm#search-api"
  },
  {
   "id": "cap-12",
   "group": "CRM",
   "capability": "Associate records across objects (contact-company-deal etc.)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "/crm/associations/2026-09/{fromObjectType}/{toObjectType}/batch/create",
    "mcp": null,
    "cli": null,
    "ui": "Record detail 'Associated records' panel"
   },
   "check": "GET associations endpoint lists the new association between the two record IDs",
   "source": "https://developers.hubspot.com/docs/api-reference/latest/crm/understanding-the-crm#associations-api"
  },
  {
   "id": "cap-13",
   "group": "CRM",
   "capability": "Log activities (notes, calls, tasks, meetings) on a record",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /crm/objects/2026-09/0-46 (notes), 0-48 (calls), 0-27 (tasks)",
    "mcp": null,
    "cli": null,
    "ui": "Record timeline"
   },
   "check": "Record timeline / activity API shows the logged engagement associated to the record",
   "source": "https://www.hubspot.com/products/task-management; https://www.hubspot.com/products/call-logging-app"
  },
  {
   "id": "cap-14",
   "group": "CRM",
   "capability": "Import records in bulk from a file",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /crm/v3/imports",
    "mcp": null,
    "cli": null,
    "ui": "CRM > Import"
   },
   "check": "GET /crm/v3/imports/{importId} shows status DONE with counts of created/updated records",
   "source": "https://developers.hubspot.com/docs/api-reference/latest/crm/understanding-the-crm#unique-identifiers-and-record-ids"
  },
  {
   "id": "cap-15",
   "group": "CRM",
   "capability": "Create a custom object and custom properties",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /crm-object-schemas/2026-09/schemas; POST /crm/properties/2026-09/{objectTypeId}",
    "mcp": null,
    "cli": null,
    "ui": "Settings > Data Model / Objects"
   },
   "check": "GET /crm-object-schemas/2026-09/schemas lists the new custom object with its property",
   "source": "https://developers.hubspot.com/docs/api-reference/latest/crm/objects/custom-objects/guide"
  },
  {
   "id": "cap-16",
   "group": "Sales",
   "capability": "Create and send a quote to a buyer",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /crm/objects/2026-09/0-14",
    "mcp": null,
    "cli": null,
    "ui": "Sales > Quotes"
   },
   "check": "GET /crm/objects/2026-09/0-14/{quoteId} shows hs_status = PENDING_APPROVAL or SENT",
   "source": "https://developers.hubspot.com/docs/api-reference/latest/crm/objects/quotes/guide; https://www.hubspot.com/products/sales/cpq"
  },
  {
   "id": "cap-17",
   "group": "Sales",
   "capability": "Collect payment through an invoice or payment link",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /crm/objects/2026-09/0-53 (invoices)",
    "mcp": null,
    "cli": null,
    "ui": "Sales > Payments"
   },
   "check": "GET /crm/objects/2026-09/0-101/{paymentId} shows a completed payment against the invoice",
   "source": "https://www.hubspot.com/products/payments"
  },
  {
   "id": "cap-18",
   "group": "Sales",
   "capability": "Enroll contacts in an automated sales email sequence",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "Sequences API",
    "mcp": null,
    "cli": null,
    "ui": "Sales > Sequences"
   },
   "check": "Sequence enrollment history shows the contact progressing through scheduled steps",
   "source": "https://www.hubspot.com/products/sales/sales-automation"
  },
  {
   "id": "cap-19",
   "group": "Marketing",
   "capability": "Schedule and publish social media posts",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Marketing > Social"
   },
   "check": "Social publishing calendar shows the post in 'Published' state at the scheduled time",
   "source": "https://www.hubspot.com/products/marketing/social-inbox"
  },
  {
   "id": "cap-20",
   "group": "Marketing",
   "capability": "Publish blog content",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "CMS Blog Posts API",
    "mcp": null,
    "cli": null,
    "ui": "Marketing > Website > Blog"
   },
   "check": "Blog post is reachable at its live URL and API shows state=PUBLISHED",
   "source": "https://www.hubspot.com/products/marketing/blog"
  },
  {
   "id": "cap-21",
   "group": "Marketing",
   "capability": "Build and run paid ad campaigns (Google/Social)",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "Ads API",
    "mcp": null,
    "cli": null,
    "ui": "Marketing > Ads"
   },
   "check": "Ads dashboard / API shows the campaign in ACTIVE state with connected ad account",
   "source": "https://www.hubspot.com/products/marketing/ads; https://www.hubspot.com/products/marketing/google-ads"
  },
  {
   "id": "cap-22",
   "group": "Marketing",
   "capability": "Segment contacts into active/static lists",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "Lists API",
    "mcp": null,
    "cli": null,
    "ui": "CRM > Lists"
   },
   "check": "GET lists/{listId}/memberships returns contacts matching the list's filter criteria",
   "source": "https://www.hubspot.com/products/list-segmentation"
  },
  {
   "id": "cap-23",
   "group": "Service",
   "capability": "Publish a customer-facing knowledge base article",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Service > Knowledge Base"
   },
   "check": "Article is reachable at its live knowledge-base URL",
   "source": "https://www.hubspot.com/products/service/knowledge-base"
  },
  {
   "id": "cap-24",
   "group": "Service",
   "capability": "Send a customer feedback survey (NPS/CSAT)",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /crm/objects/2026-09/0-19 (feedback submissions, read)",
    "mcp": null,
    "cli": null,
    "ui": "Service > Feedback Surveys"
   },
   "check": "Feedback submissions API / dashboard shows a new response tied to the survey",
   "source": "https://www.hubspot.com/products/service/customer-feedback"
  },
  {
   "id": "cap-25",
   "group": "Service",
   "capability": "Deploy an AI chatbot / customer agent to resolve inquiries",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Service/Marketing > Chatflows / Customer Agent"
   },
   "check": "Conversations inbox shows the bot-handled thread resolved without a human reply",
   "source": "https://www.hubspot.com/products/crm/chatbot-builder; https://www.hubspot.com/products/artificial-intelligence/ai-customer-service-agent"
  },
  {
   "id": "cap-26",
   "group": "Reporting",
   "capability": "Build a custom dashboard/report over CRM data",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "Reporting/Dashboards API",
    "mcp": null,
    "cli": null,
    "ui": "Reports > Dashboards"
   },
   "check": "Dashboard API returns the report with the configured data source and filters",
   "source": "https://www.hubspot.com/products/reporting-dashboards; https://www.hubspot.com/products/marketing/analytics"
  },
  {
   "id": "cap-27",
   "group": "Content",
   "capability": "Generate content with AI writing assistant (email/blog/social)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Content assistant panel in editors"
   },
   "check": "Editor shows AI-generated draft text inserted into the content field",
   "source": "https://www.hubspot.com/products/cms/ai-content-writer; https://www.hubspot.com/products/marketing/ai-email-writer"
  },
  {
   "id": "cap-28",
   "group": "Integration",
   "capability": "Receive real-time events via webhooks",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "Webhooks API (subscriptions)",
    "mcp": null,
    "cli": null,
    "ui": "Developer account > Webhooks settings"
   },
   "check": "Subscribed endpoint receives a POST payload when the target CRM event occurs",
   "source": "https://developers.hubspot.com/docs/api-reference/latest"
  },
  {
   "id": "cap-29",
   "group": "CRM",
   "capability": "Score and prioritize leads automatically",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "lead/contact scoring property",
    "mcp": null,
    "cli": null,
    "ui": "Settings > Lead Scoring"
   },
   "check": "Contact record's hubspotscore property updates based on defined scoring criteria",
   "source": "https://www.hubspot.com/products/lead-scoring"
  },
  {
   "id": "cap-30",
   "group": "Integration",
   "capability": "Connect/sync with Salesforce CRM",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings > Integrations > Salesforce"
   },
   "check": "Integration settings show sync status 'Connected' with record counts synced",
   "source": "https://www.hubspot.com/products/salesforce"
  },
  {
   "id": "cap-31",
   "group": "Admin",
   "capability": "Manage team members and permission sets",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": "Users API",
    "mcp": null,
    "cli": null,
    "ui": "Settings > Users & Teams"
   },
   "check": "GET /crm/objects/2026-09/0-115 lists the added user with assigned permission set",
   "source": "https://www.hubspot.com/products/team-permissions"
  },
  {
   "id": "cap-32",
   "group": "Admin",
   "capability": "Install apps/integrations from the marketplace",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "ecosystem.hubspot.com marketplace / Settings > Connected Apps"
   },
   "check": "Connected apps settings list the installed marketplace app with granted scopes",
   "source": "https://ecosystem.hubspot.com/marketplace/apps"
  },
  {
   "id": "cap-33",
   "group": "Admin",
   "capability": "Manage multiple HubSpot accounts from one place",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Multi-Account Management console"
   },
   "check": "Multi-account dashboard lists all linked child accounts with shared governance settings",
   "source": "https://www.hubspot.com/products/marketing/multi-account-management"
  },
  {
   "id": "cap-34",
   "group": "Admin",
   "capability": "Install and configure a WordPress plugin integration",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "WordPress admin > HubSpot plugin"
   },
   "check": "WordPress site shows HubSpot forms/tracking code active after plugin connection",
   "source": "https://www.hubspot.com/products/wordpress"
  }
 ],
 "attempts": [
  {
   "t": "06:22",
   "cap": "discovery",
   "task": "Read llms.txt (www and developers)",
   "route": "none",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "https://www.hubspot.com/llms.txt 200 text/plain (H1 \"# HubSpot\"); https://developers.hubspot.com/docs/llms.txt 200 text/plain, lists docs .md pages and OpenAPI specs",
   "notes": "Both llms.txt files present.",
   "capability": "Docs"
  },
  {
   "t": "06:22",
   "cap": "discovery",
   "task": "Markdown docs: Accept: text/markdown and .md URL",
   "route": "none",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "GET agent-cli/guide with Accept: text/markdown -> 200 content-type text/markdown; charset=utf-8, vary: rsc, accept-encoding, Accept, User-Agent; agent-cli/guide.md -> 200 text/markdown",
   "notes": "markdown: both",
   "capability": "Docs"
  },
  {
   "t": "06:22",
   "cap": "discovery",
   "task": "OpenAPI specs linked from docs llms.txt",
   "route": "none",
   "documented": true,
   "result": "failed",
   "verified": true,
   "evidence": "GET https://developers.hubspot.com/docs/specs/2026-09/crm-objects-v2026-09.json -> 404 \"Asset not found\" (also account-account-info-v2026-09.json, legacy/v3/crm-objects-v3.json). HubSpot GitHub spec collection PublicApiSpecs/CRM/Objects/Rollouts/424/v3/objects.json -> 200, \"openapi\": \"3.0.1\"",
   "notes": "OpenAPI links in llms.txt are dead (drift); the GitHub collection declares 3.0.1 (behind 3.2.1).",
   "quality": {
    "docs_match": "drift"
   },
   "capability": "Docs"
  },
  {
   "t": "06:23",
   "cap": "discovery",
   "task": "MCP server/discover on https://mcp.hubspot.com",
   "route": "mcp",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "robots.txt at mcp.hubspot.com: \"User-agent: *\" ... \"Disallow: /\" (only /embed/v3/form/, /ctas/, /outpost/, /lead-flows-config/ allowed). Docs (integrate-with-the-remote-hubspot-mcp-server) say clients connect to https://mcp.hubspot.com with an MCP connector client ID/secret, OAuth with PKCE required; links MCP 2026-07-28 intro and 2025-06-18 authorization.",
   "notes": "Unauthenticated probe not allowed by robots.txt for all user agents; an authenticated (account) probe needs an account we could not create. PRM on mcp.hubspot.com not fetched (robots).",
   "capability": "Docs"
  },
  {
   "t": "06:23",
   "cap": "discovery",
   "task": "Cards: ai-catalog, agent-card, agent.json, mcp server-card, ucp on www and developers",
   "route": "none",
   "documented": false,
   "result": "done",
   "verified": true,
   "evidence": "All 404 text/html on www.hubspot.com and developers.hubspot.com",
   "notes": "No agent/MCP cards.",
   "capability": "Docs"
  },
  {
   "t": "06:23",
   "cap": "discovery",
   "task": "AI preferences: robots.txt Content-Usage / Content-signal and Content-Usage header",
   "route": "none",
   "documented": false,
   "result": "done",
   "verified": true,
   "evidence": "No Content-Usage or Content-signal line in www.hubspot.com robots.txt; no Content-Usage header on https://www.hubspot.com/",
   "notes": "aipref: none",
   "capability": "Docs"
  },
  {
   "t": "06:23",
   "cap": "discovery",
   "task": "robots.txt of product hosts",
   "route": "none",
   "documented": false,
   "result": "done",
   "verified": true,
   "evidence": "app.hubspot.com, api.hubspot.com, api.hubapi.com, mcp.hubspot.com: \"User-agent: *\" then \"Disallow: /\" (with a few Allow lines; app allows /login$). www and developers.hubspot.com mostly allowed.",
   "notes": "All rules are for all user agents; none names our agent.",
   "capability": "Docs"
  },
  {
   "t": "06:44",
   "cap": "signup",
   "way": "email_code",
   "task": "Sign up with email at app.hubspot.com/signup-hubspot/crm",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "evidence": "Landing page 'Create your account / 100% free. No credit card needed.' with Continue with Microsoft/Apple/ChatGPT/email. After email submit, step=code_verification shows a visible reCAPTCHA v2 checkbox before any code is sent (no mail arrived at an inbox).",
   "notes": "Visible reCAPTCHA checkbox on sign-up (cause: check).",
   "cause": "check",
   "capability": "Sign up"
  },
  {
   "t": "06:44",
   "cap": "signup",
   "way": "email_code",
   "task": "Sign up via developer intent (app.hubspot.com/signup-hubspot/developers) with a second inbox",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "evidence": "Redirects to signup-hubspot/crm?intent=developer; after email the agent's inbox the same step=code_verification reCAPTCHA checkbox",
   "notes": "Same form and same visible reCAPTCHA; not a separate way.",
   "cause": "check",
   "capability": "Sign up"
  },
  {
   "t": "06:45",
   "cap": "signup",
   "way": "sso_microsoft",
   "task": "Continue with Microsoft: our agent has no Microsoft account",
   "route": "browser",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "not_tried": "no_kit",
   "evidence": "Buttons seen on app.hubspot.com/signup-hubspot/crm",
   "notes": "Continue with Microsoft: our agent has no Microsoft account",
   "capability": "Sign up"
  },
  {
   "t": "06:45",
   "cap": "signup",
   "way": "sso_apple",
   "task": "Continue with Apple: no Apple account",
   "route": "browser",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "not_tried": "no_kit",
   "evidence": "Buttons seen on app.hubspot.com/signup-hubspot/crm",
   "notes": "Continue with Apple: no Apple account",
   "capability": "Sign up"
  },
  {
   "t": "06:45",
   "cap": "signup",
   "way": "sso_chatgpt",
   "task": "Continue with ChatGPT: no ChatGPT account",
   "route": "browser",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "not_tried": "no_kit",
   "evidence": "Buttons seen on app.hubspot.com/signup-hubspot/crm",
   "notes": "Continue with ChatGPT: no ChatGPT account",
   "capability": "Sign up"
  },
  {
   "t": "06:45",
   "cap": "signup",
   "way": "claimable",
   "task": "AEO Grader (llms.txt: no account required)",
   "route": "browser",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "not_tried": "policy",
   "evidence": "https://www.hubspot.com/aeo-grader -> /ai-search-grader form: Company Name, Location, Product or Services, Industry (all required)",
   "notes": "A free marketing grader, not a CRM resource and not in the capability map; it requires a Location our agent does not have, so not submitted.",
   "caps": [],
   "capability": "Sign up"
  },
  {
   "t": "06:45",
   "cap": "signup",
   "way": "pay_per_call",
   "task": "Pay per call",
   "route": "none",
   "documented": false,
   "result": "skipped",
   "verified": false,
   "not_tried": "same_as",
   "evidence": "pay_tx.json: refused, \"no 402 on the product's own endpoint ... asks for USDC\"; pay_probe challenges []",
   "notes": "No per-call payment rail offered.",
   "capability": "Sign up"
  },
  {
   "t": "06:45",
   "cap": "signup",
   "way": "sso_github",
   "task": "Continue with GitHub",
   "route": "none",
   "documented": false,
   "result": "skipped",
   "verified": false,
   "not_tried": "same_as",
   "evidence": "Sign-up page offers only Microsoft, Apple, ChatGPT and email",
   "notes": "Not offered by HubSpot.",
   "capability": "Sign up"
  },
  {
   "t": "06:45",
   "cap": "signup",
   "way": "sso_google",
   "task": "Continue with Google",
   "route": "none",
   "documented": false,
   "result": "skipped",
   "verified": false,
   "not_tried": "same_as",
   "evidence": "Sign-up page offers only Microsoft, Apple, ChatGPT and email",
   "notes": "Not offered by HubSpot.",
   "capability": "Sign up"
  },
  {
   "t": "06:45",
   "cap": "signup",
   "way": "device_login",
   "task": "Agent CLI 'hubspot auth login' / MCP OAuth",
   "route": "cli",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "not_tried": "same_as",
   "evidence": "Agent CLI guide: 'hubspot auth login' opens a browser to authorize with an existing HubSpot account; MCP needs an MCP connector made in an account; installer on api.hubapi.com is robots-disallowed for all user agents",
   "notes": "Both need an existing account; no account could be made.",
   "capability": "Sign up"
  },
  {
   "t": "07:00",
   "cap": "verify",
   "way": "email_code",
   "task": "verify step",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "Not reached: sign-up stopped at a visible reCAPTCHA",
   "notes": "Behind the sign-up wall.",
   "capability": "Verify"
  },
  {
   "t": "07:00",
   "cap": "credentials",
   "way": "email_code",
   "task": "credentials step",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "Not reached: sign-up stopped at a visible reCAPTCHA",
   "notes": "Behind the sign-up wall.",
   "capability": "Key"
  },
  {
   "t": "07:00",
   "cap": "first_call",
   "way": "email_code",
   "task": "",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "Not reached: sign-up stopped at a visible reCAPTCHA",
   "notes": "Behind the sign-up wall.",
   "capability": "First call"
  },
  {
   "t": "07:00",
   "cap": "first_action",
   "way": "email_code",
   "task": "",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "Not reached: sign-up stopped at a visible reCAPTCHA",
   "notes": "Behind the sign-up wall.",
   "capability": "First action"
  },
  {
   "t": "07:00",
   "cap": "credentials",
   "key": "create",
   "way": "email_code",
   "task": "Create a scoped key headless (service key / private app / Agent CLI)",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "Docs: service keys (account-service-keys) and MCP connectors are created in the account UI; Agent CLI 'hubspot auth login' is browser OAuth",
   "notes": "No account, so no key route reachable.",
   "capability": "Key"
  },
  {
   "t": "07:00",
   "cap": "pay",
   "step": "probe",
   "way": "email_code",
   "task": "Public pay probes: 402, registries, well-known",
   "route": "none",
   "documented": false,
   "result": "done",
   "verified": true,
   "evidence": "pay_probe.json: challenges [], mpp/stripe_projects/bazaar []; x402./mpp./agents. subdomains: no such host; api.hubspot.com robots-disallowed; /.well-known/ucp 404; pay_tx.json: refused (no 402 asks for USDC).",
   "notes": "No agent payment rail.",
   "capability": "Pay"
  },
  {
   "t": "07:01",
   "cap": "pay",
   "step": "checkout",
   "way": "email_code",
   "task": "Walk to the last click: Starter plan",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "evidence": "www.hubspot.com/pricing: Free '€0/mo No credit card required'; Sales Hub Starter '€7/mo/seat' (billed annually toggle, 'Switch to monthly billing'), Buy now -> app.hubspot.com/signup-hubspot/purchase?intent=purchase&currency=EUR ('Create your account / Your payment details come next.') -> same email sign-up with the visible reCAPTCHA.",
   "notes": "Checkout is behind account creation; reached the plan choice only (plan_page). Processor not seen.",
   "capability": "Pay"
  },
  {
   "t": "07:30",
   "cap": "cancel",
   "way": "email_code",
   "task": "Cancel what was started",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "evidence": "No plan or trial started (no account).",
   "notes": "Nothing to cancel.",
   "capability": "Cancel"
  },
  {
   "t": "07:30",
   "cap": "delete",
   "way": "email_code",
   "task": "Delete the account",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": true,
   "evidence": "No account was created: sign-up stopped at the reCAPTCHA before a code was sent; inbox an inbox received no mail.",
   "notes": "left: nothing_made",
   "capability": "Delete"
  }
 ],
 "stale": false,
 "icon": "/logos/hubspot.png",
 "monitored": false,
 "verdict": null,
 "page": "https://agentdrives.com/tools/hubspot?via=api"
}