{
 "$schema": "https://agentdrives.com/schemas/tool.schema.json",
 "id": "prd_01m57vgtng0apt5xer2z2qzxfb",
 "ids": {
  "org": "org_01m57vgtng8dx14vmqcam4ptg0",
  "surfaces": {
   "web": "srf_01m5vrt1m1ftjy4wxr3sk5gvh1",
   "api": "srf_01m5vrt1m16z0v4n73vs5kw2pb",
   "mcp": "srf_01m5vrt1m1sptdvrrx6cpdg2c1",
   "sdk": "srf_01m5vrt1m1qzx4zrqfd5tvb4jb"
  },
  "slugs": [
   "streak"
  ],
  "domain": "streak.com"
 },
 "slug": "streak",
 "name": "Streak",
 "url": "https://www.streak.com",
 "domain": "streak.com",
 "category": "crm",
 "category_name": "CRM",
 "tested_at": "2026-10-26",
 "run": "20261026T090732Z",
 "draft": false,
 "reviewed": true,
 "owner_verified": null,
 "origin": "editorial",
 "history": [
  {
   "run": "20261026T090732Z",
   "date": "2026-10-26",
   "level": 1,
   "engine": {
    "model": "claude-opus-5-5",
    "driver": 5,
    "signed": true,
    "inbox": null,
    "robots": "skip",
    "version": "2026.10.26",
    "commit": "1b9d89729ae394e8dc39672989afe28a595abf71",
    "prompts": {
     "version": "2026.10.26",
     "commit": "5e69ac26dc0c27c689f5ac7f9c8c50b123dd48dd"
    },
    "rules": {
     "version": "2026.10.26",
     "commit": "580cc307f2b56be53ead9645640b72a937895540"
    }
   },
   "stop": "signup",
   "drives": 2,
   "paid": false,
   "agent_paid": null
  }
 ],
 "level": 1,
 "level_name": "Needs a person",
 "level_selfhost": null,
 "entry": "closed",
 "door": {
  "passed": 0,
  "tries": 2,
  "self_start": false
 },
 "badges": [],
 "not_counted": null,
 "stages": [
  {
   "key": "in",
   "label": "Access",
   "state": "no",
   "text": "Sign-up only through Google",
   "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": "portal"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "unreached",
   "text": "Leaving not reached",
   "how": "no-account"
  }
 ],
 "outcomes": [
  {
   "key": "find",
   "label": "Learn",
   "state": "yes",
   "text": "Docs it can act on: llms.txt, an OpenAPI and an MCP server",
   "have": [
    "llms_txt",
    "openapi",
    "mcp"
   ],
   "docs": "complete"
  },
  {
   "key": "access",
   "label": "Access",
   "state": "no",
   "text": "Sign-up only through Google",
   "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": "portal",
   "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 with its own email address"
 },
 "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": "MCP client registration",
    "state": "behind",
    "behind": null,
    "value": "dcr"
   },
   {
    "standard": "OpenAPI",
    "state": "behind",
    "behind": 1,
    "value": "3.1.0"
   }
  ]
 },
 "reliability_method": null,
 "resilience": null,
 "stress": [],
 "surface_audit": {
  "totals": {
   "items": 143,
   "documented": 139,
   "safe": 139,
   "exercised": 4,
   "passed": 3,
   "skipped": 0,
   "blocked": 135,
   "not_run": 0,
   "match": 3,
   "drift": 1,
   "broken_doc": 0,
   "docs_complete": 72,
   "docs_partial": 19,
   "docs_missing": 48,
   "errors_clear": 0,
   "errors_vague": 0,
   "errors_silent": 0
  }
 },
 "coverage_core": null,
 "coverage_own": null,
 "after_wall": null,
 "coverage_source": "computed",
 "driver": {
  "version": 5,
  "model": "claude-opus-5-5",
  "profile": "full",
  "assisted": false,
  "handoff": false
 },
 "methodology": 42,
 "rules_date": "2026-10-30",
 "engine": {
  "model": "claude-opus-5-5",
  "driver": 5,
  "signed": true,
  "inbox": null,
  "robots": "skip",
  "version": "2026.10.26",
  "commit": "1b9d89729ae394e8dc39672989afe28a595abf71",
  "prompts": {
   "version": "2026.10.26",
   "commit": "5e69ac26dc0c27c689f5ac7f9c8c50b123dd48dd"
  },
  "rules": {
   "version": "2026.10.26",
   "commit": "580cc307f2b56be53ead9645640b72a937895540"
  }
 },
 "same_level_drives": 1,
 "drives": 2,
 "same_stop_drives": 2,
 "works_assisted": null,
 "freshness": "fresh",
 "newer_drives": null,
 "nothing_to_pay": false,
 "core_gated": false,
 "profiles": {},
 "agent_check": null,
 "agent_pass": null,
 "who_gets_in": {
  "server": {
   "state": "closed"
  },
  "signed": {
   "state": "page",
   "kind": "home",
   "at": "2026-10-26"
  },
  "browser": {
   "state": "unknown",
   "measured": false
  },
  "our_key": "verified",
  "robots": null,
  "tip": false
 },
 "ladder": {
  "docs": {
   "status": "headless",
   "note": "API docs at streak.readme.io (89 reference pages, each with an OpenAPI 3.1.0 block, served as Markdown), llms.txt on both hosts, an MCP support article; all read without a browser."
  },
  "signup": {
   "status": "blocked",
   "cause": "other",
   "note": "Sign-up only through Google: no way in for an agent's own account. Streak is a Gmail extension ('download Streak and authenticate your account with Google'), and its MCP OAuth sends straight to Google sign-in; there is no email, API or CLI sign-up."
  },
  "verify": {
   "status": "",
   "note": "Not reached: no account (sign-up only through Google).",
   "reached": false
  },
  "credentials": {
   "status": "",
   "note": "Not reached. The API key is made only in Gmail's Streak sidebar (Integrations > Create New Key); the MCP OAuth client registers without a browser (DCR) but its consent needs a Google sign-in.",
   "via": "",
   "reached": false
  },
  "first_call": {
   "status": "",
   "note": "Not reached: every API call needs a key (401 'Authentication required' without one); the MCP endpoint answers 401 'Missing bearer token'.",
   "route": "account",
   "reached": false
  },
  "first_action": {
   "status": "",
   "note": "Not reached: no account.",
   "reached": false
  },
  "pay": {
   "status": "",
   "grade": "P1",
   "rails": [
    "card checkout inside the Gmail extension"
   ],
   "rail_ids": [
    "card"
   ],
   "first_party": true,
   "rail_scope": "none",
   "trial_path": "no-card trial",
   "route": "portal",
   "checkout": {
    "reached": "no",
    "processor": "other",
    "captcha": "none",
    "three_ds": "not_seen",
    "card_form": true,
    "phone_field": "none",
    "wallets": [],
    "rail_offer": "none",
    "price": "59.00",
    "currency": "USD",
    "period": "month",
    "plan": "Pro",
    "last_button": "Pay"
   },
   "person": "none",
   "ours": "no account",
   "note": "No agent rail: no 402 or MPP challenge, no registry listing, no billing API; no payment went through. Buying happens only in the extension's Billing and Teams page in desktop Chrome ('Subscribe' then 'Enter your card information and select Pay'), behind a Google sign-in, so our agent could not open it. Pro is $59 per user/month monthly. The Pro+ trial runs without a card (support: 'If no payment method is on file ... Streak will automatically downgrade to the free version').",
   "reached": false
  },
  "cancel": {
   "status": "",
   "note": "Nothing to cancel: the drive started no plan. Docs: cancel from the Billing and Teams page in the extension ('Cancel Paid Plan', two questions on why), desktop Chrome only; an immediate cancel goes through support@streak.com.",
   "docs_grade": "",
   "reached": false
  },
  "delete": {
   "status": "",
   "note": "No account was made. The one thing made is a public MCP OAuth client from dynamic registration (no user, no grant); the server offers no endpoint to delete it, so it stays. Docs offer no account-delete API; uninstalling the extension 'will not cancel any subscriptions'.",
   "account": false,
   "reached": false
  }
 },
 "routes": [
  {
   "route": "sso_google",
   "offered": "documented",
   "tried": false,
   "not_tried": "policy",
   "result": null,
   "wall": null,
   "person": null,
   "brings": null,
   "fresh": null,
   "minutes": null,
   "browser": null
  },
  {
   "route": "oauth_consent",
   "offered": "documented",
   "tried": true,
   "not_tried": null,
   "result": "walled",
   "wall": {
    "type": "idp",
    "owner": "product"
   },
   "person": "none",
   "brings": "nothing",
   "fresh": true,
   "minutes": 1,
   "browser": null
  },
  {
   "route": "person_key",
   "offered": "documented",
   "tried": false,
   "not_tried": "assisted_only",
   "result": null,
   "wall": null,
   "person": null,
   "brings": null,
   "fresh": null,
   "minutes": null,
   "browser": null
  }
 ],
 "checkout": {
  "reached": "no",
  "rail_offer": "none",
  "period": "month",
  "price": "59.00",
  "currency": "USD",
  "plan": "Pro"
 },
 "docs": {
  "at": "2026-10-26",
  "read": 134,
  "listed": 143,
  "sampled": false,
  "overall": "complete",
  "getting_started": "found",
  "auth": "found",
  "errors": "found",
  "examples": "good",
  "freshness": "fresh",
  "newest": "2026-08-10",
  "core_pages": "10 of 10",
  "capabilities": "covered",
  "label": "No gaps in what we read"
 },
 "claims": null,
 "pay_options": {
  "checked": "2026-10-26",
  "source": "probe",
  "options": [],
  "agentic": [],
  "paid": null,
  "exercised": null,
  "detected_grade": null,
  "trial": {
   "no_card": null,
   "card_required": null,
   "free_plan": true
  },
  "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)."
   }
  ]
 },
 "surfaces": {
  "api": true,
  "openapi": true,
  "cli": false,
  "sdk": true,
  "mcp": "official",
  "llms_txt": true,
  "webhooks": true,
  "sandbox": false
 },
 "urls": {
  "docs": "https://streak.readme.io/",
  "llms_txt": "https://www.streak.com/llms.txt",
  "mcp": "https://api.streak.com/mcp"
 },
 "surface_notes": {
  "api": "REST v1 and v2 at api.streak.com, HTTP Basic with an API key",
  "openapi": "3.1.0 blocks per reference page, no single spec file",
  "mcp": "official, https://api.streak.com/mcp, OAuth via Google sign-in",
  "sdk": "streakapi 1.3.0 (Node, official wrapper)",
  "llms_txt": "www.streak.com/llms.txt and streak.readme.io/llms.txt",
  "webhooks": "documented in the API reference"
 },
 "surface_sizes": [
  {
   "kind": "api",
   "listed": 81,
   "tested": 0
  },
  {
   "kind": "mcp",
   "listed": 2,
   "tested": 0
  },
  {
   "kind": "sdk",
   "listed": 48,
   "tested": 0
  }
 ],
 "can_do": [
  "Read Streak's API reference as Markdown, with an OpenAPI 3.1.0 block per operation",
  "Find the MCP server's OAuth metadata and register an OAuth client without a browser"
 ],
 "cannot_do": [
  {
   "what": "Make its own Streak account",
   "why": "Sign-up only through a Google account with the Gmail extension"
  },
  {
   "what": "Get an API key",
   "why": "Keys are made only in Gmail's Streak sidebar, after a Google sign-in"
  },
  {
   "what": "Use the MCP server",
   "why": "Its OAuth consent sends to Google sign-in"
  },
  {
   "what": "Pay on its own",
   "why": "No agent rail or billing API; checkout only inside the extension"
  }
 ],
 "blockers": [
  "Sign-up only through Google: no way in for an agent's own account"
 ],
 "tips_for_agents": [
  "Read the API reference as Markdown: append .md to any streak.readme.io page; each has an OpenAPI 3.1.0 block.",
  "Authenticate API calls with HTTP Basic: the API key as the username, empty password, on https://api.streak.com/api/v1 or /api/v2.",
  "Check each operation's version on its page: boxes update and delete are v1, box create, contacts, comments, tasks and webhooks are v2.",
  "v1 create calls (pipelines, stages, fields, snippets) are PUT with a url-encoded body, not JSON.",
  "For MCP, point the client at https://api.streak.com/mcp; it registers by DCR at /oauth2/register and signs in through Google."
 ],
 "selfhost": null,
 "edge_case": "none",
 "summary": "Streak is a CRM inside Gmail; its account is the user's Google account, so our agent couldn't make its own: sign-up is only through Google, the API key is made in Gmail's Streak sidebar, and the MCP server's OAuth sends straight to Google sign-in. The public side is good for agents: Markdown API docs with OpenAPI 3.1.0 per page, llms.txt, an official MCP server with OAuth metadata and dynamic client registration. Nothing could be driven past the door.",
 "wall": "Sign-up only through Google",
 "plan_scope": "",
 "robots_stop": null,
 "robots": null,
 "terms": null,
 "terms_read": "2026-10-26",
 "email_gate": null,
 "plain": {
  "summary": "Streak is a CRM that lives inside Gmail, and its account is the user's Google account. An agent could read the public docs and register an OAuth client on its own, but could not make an account. Sign-up and the MCP sign-in both go through Google.",
  "can_do": [
   "Read the API documentation as Markdown",
   "Find the MCP server's sign-in details and register a client"
  ],
  "cannot_do": [
   {
    "what": "Make its own Streak account",
    "why": "Sign-up only goes through a Google account and the Gmail extension"
   },
   {
    "what": "Get an API key",
    "why": "Keys are made only in the Streak sidebar inside Gmail"
   },
   {
    "what": "Use the MCP server",
    "why": "Its sign-in sends the agent to Google"
   },
   {
    "what": "Pay for a plan",
    "why": "Checkout exists only inside the Gmail extension; no agent payment route"
   }
  ]
 },
 "plan_gated": [],
 "reply": null,
 "capabilities": [
  {
   "id": "cap-01",
   "capability": "Create a box (deal record) in a pipeline",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "POST /api/v2/pipelines/{pipelineKey}/boxes",
    "mcp": "create box",
    "cli": null,
    "ui": "Pipeline view, new box"
   },
   "check": "GET /api/v2/boxes/{boxKey} returns the new box",
   "capability_id": "cap_ety0meew",
   "source": "https://streak.readme.io/reference/create-a-box",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-02",
   "capability": "Update a box's fields and move it between pipeline stages",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "POST /api/v2/boxes/{boxKey}",
    "mcp": "update box / move stage",
    "cli": null,
    "ui": "Pipeline view, box view"
   },
   "check": "GET /api/v2/boxes/{boxKey} shows updated stage/field value",
   "capability_id": "cap_m8f5a2vy",
   "source": "https://streak.readme.io/reference/edit-a-box; https://www.streak.com/integrations/mcp",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-03",
   "capability": "Delete a box",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "DELETE /api/v2/boxes/{boxKey}",
    "mcp": null,
    "cli": null,
    "ui": "Box view, delete"
   },
   "check": "GET /api/v2/boxes/{boxKey} returns 404",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://streak.readme.io/reference/delete-a-box",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-04",
   "capability": "Create a pipeline (custom CRM workflow)",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "POST /api/v1/pipelines",
    "mcp": null,
    "cli": null,
    "ui": "Create pipeline; AI Pipeline Creator describes it in plain language"
   },
   "check": "GET /api/v1/pipelines/{pipelineKey} returns the new pipeline",
   "capability_id": "cap_pw8afps2",
   "source": "https://streak.readme.io/reference/create-a-pipeline; https://www.streak.com/features/ai-pipeline-creator",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-05",
   "capability": "Create a contact and link it to a box",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "POST /api/v2/contacts",
    "mcp": "create contact / link to box",
    "cli": null,
    "ui": "Box view, add contact"
   },
   "check": "GET /api/v2/contacts/{contactKey} shows the contact linked to the box",
   "capability_id": "cap_w95e954c",
   "source": "https://streak.readme.io/reference/create-a-contact; https://www.streak.com/integrations/mcp",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-06",
   "capability": "Log emails and activity to a box timeline automatically from Gmail",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": "add email to box timeline",
    "cli": null,
    "ui": "Gmail inbox, box timeline"
   },
   "check": "Box timeline shows the logged email thread",
   "capability_id": "cap_105mz0vz",
   "source": "https://www.streak.com/llms.txt (Contact timeline); https://www.streak.com/integrations/mcp",
   "result": "blocked",
   "via": "mcp"
  },
  {
   "id": "cap-07",
   "capability": "Assign a box/deal and its follow-up task to a teammate",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Box view, task assignment"
   },
   "check": "Box shows the task assigned to the teammate",
   "capability_id": "cap_76387ph3",
   "source": "https://www.streak.com/features#task-management",
   "result": "blocked",
   "via": "browser"
  },
  {
   "id": "cap-08",
   "capability": "Search across boxes, pipelines, and contacts",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": "search CRM data",
    "cli": null,
    "ui": "Global search"
   },
   "check": "Search results list matching boxes/contacts",
   "capability_id": "cap_j1x1a2f4",
   "source": "https://www.streak.com/integrations/mcp",
   "result": "blocked",
   "via": "mcp"
  },
  {
   "id": "cap-09",
   "capability": "Send a mail merge campaign to a contact list",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Gmail compose, mail merge"
   },
   "check": "Sent folder shows each personalized email; free plan allows 50 sends/day",
   "capability_id": "cap_6w8nc717",
   "source": "https://www.streak.com/features#mail-merge; https://www.streak.com/pricing",
   "result": "blocked",
   "via": "browser"
  },
  {
   "id": "cap-10",
   "capability": "Generate a funnel/pipeline report dashboard",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": "analyze pipeline / generate chart",
    "cli": null,
    "ui": "Reports dashboard"
   },
   "check": "Reports dashboard renders a chart built from pipeline data",
   "capability_id": "cap_t84377te",
   "source": "https://www.streak.com/features#reports; https://www.streak.com/integrations/mcp",
   "result": "blocked",
   "via": "mcp"
  },
  {
   "id": "cap-11",
   "capability": "Add a comment or note to a box",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": "add comment to box",
    "cli": null,
    "ui": "Box view, comments"
   },
   "check": "Box timeline shows the new comment",
   "capability_id": "cap_105mz0vz",
   "source": "https://www.streak.com/integrations/mcp",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-12",
   "capability": "Create a custom field on a pipeline/box type",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": "add custom column option",
    "cli": null,
    "ui": "Pipeline settings, custom columns"
   },
   "check": "Box view shows the new field available to set",
   "capability_id": "cap_pd8aa77r",
   "source": "https://www.streak.com/integrations/mcp",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-13",
   "capability": "Create a saved pipeline view/filter grouped by field",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Pipeline filters"
   },
   "check": "Saved filter reapplies the same sort/group on reload",
   "capability_id": "cap_hkwr9742",
   "source": "https://www.streak.com/features#pipeline-filters",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-14",
   "capability": "Track email opens and link clicks",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Gmail compose/sent mail"
   },
   "check": "Sent email shows an open/click timestamp",
   "capability_id": "cap_nw8j8qcb",
   "source": "https://www.streak.com/features#email-tracking",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-15",
   "capability": "Create and reuse a shared email snippet/template",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Gmail compose, snippets"
   },
   "check": "Snippet inserts the saved text into a new email",
   "capability_id": "cap_ca5sezwx",
   "source": "https://www.streak.com/features#snippets",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-16",
   "capability": "Build a CRM automation that triggers on a stage/field change",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Pipeline settings, automations"
   },
   "check": "Changing the trigger field fires the configured action",
   "capability_id": "cap_74zkjgr2",
   "source": "https://www.streak.com/features#crm-automation",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-17",
   "capability": "Autofill a CRM field from email activity or web research with AI",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Box view, AI autofill"
   },
   "check": "Field value populates without manual entry, citing the source",
   "capability_id": "cap_sz8j6z79",
   "source": "https://www.streak.com/features/ai-autofill",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-18",
   "capability": "Ask a natural-language question about a deal and get an AI answer",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Box view/Gmail sidebar, AI deal Q&A"
   },
   "check": "Response answers the question using the box's own history",
   "capability_id": "cap_9qpyn3bj",
   "source": "https://www.streak.com/ai#ai-deal-qna",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-19",
   "capability": "Get an AI summary of a deal's history",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Box view, AI summaries"
   },
   "check": "Summary panel shows key history and next steps for the box",
   "capability_id": "cap_86eg48k6",
   "source": "https://www.streak.com/features/ai-summaries",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-20",
   "capability": "Generate a meeting agenda from a deal's history with AI",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Box view, AI meeting agenda"
   },
   "check": "Generated agenda references prior conversation content from the box",
   "capability_id": "cap_86eg48k6",
   "source": "https://www.streak.com/ai#ai-meeting-agenda-creator",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-21",
   "capability": "Scan a Gmail inbox to extract contacts and add them as leads",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Inbox data scraping"
   },
   "check": "New box/contact appears populated from the scanned inbox thread",
   "capability_id": "cap_0504r89v",
   "source": "https://www.streak.com/features#inbox-data-scraping",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-22",
   "capability": "Place and log a phone call from a box (native dialer)",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Box view, dialer"
   },
   "check": "Box timeline shows a logged call entry with notes",
   "capability_id": "cap_68rwkkz4",
   "source": "https://www.streak.com/features#dialers",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-23",
   "capability": "Register a webhook for pipeline/box events",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /api/v2/pipelines/{pipelineKey}/webhooks",
    "mcp": null,
    "cli": null,
    "ui": "Pipeline settings, webhooks"
   },
   "check": "GET /api/v2/pipelines/{pipelineKey}/webhooks lists the registered webhook",
   "capability_id": "cap_977hxacb",
   "source": "https://streak.readme.io/reference/create-a-webhook; https://streak.readme.io/reference/get-all-webhooks-by-pipeline",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-24",
   "capability": "Read the pipeline newsfeed of historical changes",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "GET /api/v2/pipelines/{pipelineKey}/newsfeed",
    "mcp": null,
    "cli": null,
    "ui": "Pipeline activity feed"
   },
   "check": "Response lists prior box/field change events for the pipeline",
   "capability_id": "cap_s4z0sem6",
   "source": "https://streak.readme.io/reference/newsfeed-for-pipelines",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-25",
   "capability": "Export pipeline data to Google Sheets on a schedule",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Pipeline settings, scheduled exports"
   },
   "check": "Linked Google Sheet updates with current pipeline rows on schedule",
   "capability_id": "cap_8zwmj5wn",
   "source": "https://www.streak.com/features (featureList: Scheduled exports to Google Sheets)",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-26",
   "capability": "Import data into a pipeline from CSV or Google Sheets",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Pipeline import"
   },
   "check": "Imported rows appear as new boxes with mapped fields",
   "capability_id": "cap_a8damn1w",
   "source": "https://www.streak.com/features (featureList: Data import from CSV and Google Sheets)",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-27",
   "capability": "Capture a lead from a web form (Typeform/Calendly) into a pipeline",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Integrations, lead capture from forms"
   },
   "check": "A form submission creates a new box in the target pipeline",
   "capability_id": "cap_0504r89v",
   "source": "https://www.streak.com/features (featureList: Lead capture from forms; integrationsWith: Typeform, Calendly)",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-28",
   "capability": "Enrich a contact from a LinkedIn profile",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "LinkedIn integration"
   },
   "check": "Contact record shows profile details and verified email pulled from LinkedIn",
   "capability_id": "cap_rp7bxy1f",
   "source": "https://www.streak.com/integrations/linkedin",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-29",
   "capability": "Work from the Streak mobile app (iOS/Android)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "iOS/Android app"
   },
   "check": "Mobile app shows the same pipeline/box data as web",
   "capability_id": "cap_p675qb2x",
   "source": "https://www.streak.com/features#mobile-apps",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-30",
   "capability": "Create a signup form / public share link for a thread via Streak Share",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Streak Share"
   },
   "check": "Public link opens the shared email content without login",
   "capability_id": "cap_s5xdd6q5",
   "source": "https://www.streak.com/pricing (FAQ: Streak Share for creating public viewing links for emails)",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-31",
   "capability": "Split a long email thread into a new thread",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Gmail, thread splitter"
   },
   "check": "A new separate thread appears containing the split messages",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://www.streak.com/pricing (FAQ: thread splitter)",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-32",
   "capability": "Update a contact or organization custom field value via the API",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /api/v2/contacts/{contactKey}/fields/{fieldKey}",
    "mcp": null,
    "cli": null,
    "ui": "Contact/organization profile"
   },
   "check": "GET contact field shows the updated value",
   "capability_id": "cap_5w1hq959",
   "source": "https://streak.readme.io/reference/update-contact-field-value; https://streak.readme.io/reference/update-organization-field-value",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-33",
   "capability": "Set a custom role with restricted permissions for a pipeline",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Pipeline settings, custom roles"
   },
   "check": "A user with the restricted role cannot perform the blocked action",
   "capability_id": "cap_bs3hvrpm",
   "source": "https://www.streak.com/pricing (Enterprise: custom roles)",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-34",
   "capability": "Set a data validation rule to keep fields uniform",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Pipeline settings, data validation"
   },
   "check": "Saving an invalid field value is rejected with a validation error",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://www.streak.com/pricing (Enterprise: data validation); https://www.streak.com/features#automated-data-entry",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-35",
   "capability": "Connect Streak to Slack for pipeline notifications",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Integrations, Slack"
   },
   "check": "A configured pipeline event posts a message to the linked Slack channel",
   "capability_id": "cap_x4n6bnwy",
   "source": "https://www.streak.com/features (integrationsWith: Slack)",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-37",
   "capability": "Archive a user without losing their pipeline history",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Team settings, archived users"
   },
   "check": "Archived user's past box activity remains visible while they lose access",
   "capability_id": "cap_bs3hvrpm",
   "source": "https://www.streak.com/pricing (Pro+: archived users)",
   "result": "blocked",
   "via": null
  }
 ],
 "stale": false,
 "unreachable_since": null,
 "not_driven_since": null,
 "icon": "/logos/streak.png",
 "agent_kinds": {
  "browser": {
   "who": "An assistant in a browser",
   "passed": [],
   "stop": "signup",
   "why": "sign-up only through Google",
   "tone": "wall",
   "text": "Stops at sign-up: sign-up only through Google."
  },
  "direct": {
   "who": "An agent talking to it directly",
   "passed": [],
   "stop": "signup",
   "why": "sign-up only through Google",
   "tone": "wall",
   "text": "Stops at sign-up: sign-up only through Google."
  }
 },
 "sdk": null,
 "surface_reach": {
  "surfaces": {
   "api": true,
   "mcp": true
  },
  "read_at": "2026-10-31T01:47:03Z"
 },
 "connect": {
  "mcp": {
   "url": "https://api.streak.com/mcp",
   "transport": "streamable-http",
   "state": "documented",
   "sign_in": "2026-11-01"
  },
  "docs": {
   "url": "https://streak.readme.io/",
   "state": "tested"
  }
 },
 "surface_sources": {
  "mcp": "https://api.streak.com/mcp",
  "docs": "https://streak.readme.io/",
  "llms_txt": "https://www.streak.com/llms.txt",
  "api": "https://streak.readme.io/reference/add-files",
  "sdk": "https://github.com/StreakYC/node-api-wrapper",
  "openapi": "https://www.streak.com/api/openapi.json"
 },
 "copilot_connector": null,
 "stripe_directory": null,
 "in_stripe_directory": null,
 "stripe_projects": null,
 "pay_rails": [],
 "stop_evidence": {
  "at": "signup",
  "date": "2026-10-26",
  "line": "Sign-up only through Google: no way in for an agent's own account. Streak is a Gmail extension ('download Streak and authenticate your account with Google'), and its MCP OAuth sends straight to Google sign-in; there is no email, API or CLI sign-up."
 },
 "wall_vendor": null,
 "mcp_sign_in": null,
 "safety_issues": 3,
 "fix_counts": {
  "small": 5,
  "medium": 2,
  "large": 2,
  "total": 9
 },
 "evidence_sha256": "2b31f24be7c6655d6d79722e8ff2e1d19825757e0842b71d7ff4ea742b0a4e32",
 "first_seen": "2026-10-26",
 "license": {
  "name": "CC BY 4.0",
  "url": "https://creativecommons.org/licenses/by/4.0/"
 },
 "correction": {
  "status": "none",
  "open": 0,
  "since": null,
  "reply_by": null
 },
 "attribution": null,
 "confirmation": {
  "state": "awaiting",
  "drives": 2,
  "agree": 2,
  "review": null,
  "text": "2 drives on one day, awaiting confirmation"
 },
 "stop_shot": null,
 "stop_shot_hash": null,
 "attempts_count": 81,
 "detail": {
  "public": false,
  "in": [
   "report",
   "api"
  ],
  "since": "2026-10-17"
 },
 "what_it_does": "Streak is a CRM that lives inside Gmail.",
 "kind": "product",
 "rules_version": "rules-2026-10-30-42",
 "rules_url": "https://agentdrives.com/method/changelog#rules-2026-10-30-42",
 "category_median": null,
 "peers": {
  "DOCS-08": {
   "basis": "category",
   "n": 10,
   "below": 6,
   "above": 0,
   "quartile": 4
  },
  "DOCS-10": {
   "basis": "category",
   "n": 10,
   "below": 4,
   "above": 2,
   "quartile": 3
  },
  "DOCS-11": {
   "basis": "category",
   "n": 10,
   "below": 1,
   "above": 3,
   "quartile": 2
  },
  "ERR-01": {
   "basis": "category",
   "n": 7,
   "below": 0,
   "above": 0
  },
  "ERR-02": {
   "basis": "category",
   "n": 7,
   "below": 0,
   "above": 4
  },
  "ERR-03": {
   "basis": "category",
   "n": 7,
   "below": 5,
   "above": 0
  },
  "ERR-07": {
   "basis": "category",
   "n": 6,
   "below": 4,
   "above": 1
  },
  "FIND-06": {
   "basis": "category",
   "n": 8,
   "below": 3,
   "above": 0
  },
  "IN-03": {
   "basis": "category",
   "n": 6,
   "below": 1,
   "above": 0
  },
  "IN-08": {
   "basis": "category",
   "n": 11,
   "below": 0,
   "above": 4,
   "quartile": 2
  },
  "IN-11": {
   "basis": "category",
   "n": 11,
   "below": 0,
   "above": 4,
   "quartile": 2
  },
  "IN-12": {
   "basis": "category",
   "n": 11,
   "below": 0,
   "above": 4,
   "quartile": 2
  },
  "LEAVE-03": {
   "basis": "category",
   "n": 10,
   "below": 5,
   "above": 0,
   "quartile": 4
  },
  "PROTO-02": {
   "basis": "category",
   "n": 8,
   "below": 0,
   "above": 1
  }
 },
 "probe": {
  "checked": "2026-11-01",
  "status": "ok",
  "sign_up_page": "page",
  "wall": "none",
  "llms_txt": true,
  "mcp": "none",
  "openapi": false,
  "payment_402": null,
  "payment_rails": [],
  "files": {
   "openapi": {
    "url": null,
    "found": false
   },
   "llms_txt": {
    "url": "https://www.streak.com/llms.txt",
    "found": true
   },
   "llms_full": {
    "url": null,
    "found": false
   }
  }
 },
 "probe_history": [
  {
   "checked": "2026-11-01",
   "status": "ok",
   "sign_up_page": "page",
   "wall": "none",
   "llms_txt": true,
   "mcp": "none",
   "openapi": false,
   "payment_402": null,
   "payment_rails": []
  },
  {
   "checked": "2026-10-31",
   "status": "ok",
   "sign_up_page": "page",
   "wall": "none",
   "llms_txt": true,
   "mcp": "none",
   "openapi": false,
   "payment_402": null,
   "payment_rails": []
  },
  {
   "checked": "2026-10-30",
   "status": "ok",
   "sign_up_page": "page",
   "wall": "none",
   "llms_txt": true,
   "mcp": "none",
   "openapi": false,
   "payment_402": null,
   "payment_rails": []
  },
  {
   "checked": "2026-10-29",
   "status": "ok",
   "sign_up_page": "page",
   "wall": "none",
   "llms_txt": true,
   "mcp": "none",
   "openapi": false,
   "payment_402": null,
   "payment_rails": []
  },
  {
   "checked": "2026-10-28",
   "status": "ok",
   "sign_up_page": "page",
   "wall": "none",
   "llms_txt": true,
   "mcp": "none",
   "openapi": false,
   "payment_402": null,
   "payment_rails": []
  }
 ],
 "surface_changes": [],
 "agent_reports": null,
 "verdict": "L1 · Needs a person: our agent did not get in on its own. It stopped at sign-up, where Streak offers only Google sign-in, so our agent couldn't make its own account. The API key is made in the Streak sidebar inside Gmail, and the MCP server's OAuth sends straight to Google sign-in. API calls without a key got a 401, and the MCP endpoint answered 401 \"Missing bearer token\". No work was reached. The public side reads well for agents: Markdown API docs with an OpenAPI block on each page, llms.txt and an official MCP server. Buying happens only inside the extension, behind Google sign-in, so our agent did not reach the checkout.",
 "changes": {
  "source": "store",
  "drives": [
   {
    "run": "20261026T015507Z",
    "date": "2026-10-26",
    "level": 1,
    "stop": "signup",
    "entry": "closed",
    "driver": 5,
    "listed": true,
    "paid": false,
    "agent_paid": null
   },
   {
    "run": "20261026T090732Z",
    "date": "2026-10-26",
    "level": 1,
    "stop": "signup",
    "entry": "closed",
    "driver": 5,
    "listed": true,
    "paid": false,
    "agent_paid": null
   }
  ],
  "events": [],
  "feed": "https://agentdrives.com/api/tools/streak/changes.json"
 },
 "agreement": {
  "drives": 2,
  "agree": 2
 },
 "method_release": "2026-Q4.27",
 "found": {
  "agent_blockers": 1,
  "surface_issues": 49
 },
 "agent_surfaces": {
  "api": {
   "state": "documented",
   "reachable": true,
   "documented": 81,
   "tested": 0,
   "source": "https://streak.readme.io/reference/add-files"
  },
  "mcp": {
   "state": "documented",
   "reachable": true,
   "documented": 2,
   "tested": 0,
   "source": "https://api.streak.com/mcp"
  },
  "cli": {
   "state": "none_found",
   "reachable": null,
   "documented": null,
   "tested": null,
   "source": null
  },
  "sdk": {
   "state": "documented",
   "documented": 48,
   "tested": 0,
   "source": "https://github.com/StreakYC/node-api-wrapper"
  },
  "docs": {
   "state": "tested",
   "documented": 143,
   "tested": 134,
   "source": "https://streak.readme.io/"
  },
  "payment": {
   "state": "none_found",
   "documented": null,
   "tested": null,
   "source": null
  }
 },
 "issues_found": 50,
 "rank": null,
 "rank_of": 4,
 "rank_change": null,
 "rank_since": null,
 "links": {
  "category": [
   {
    "label": "Sales and customers",
    "href": "https://agentdrives.com/categories/sales"
   },
   {
    "label": "CRM",
    "href": "https://agentdrives.com/categories/crm"
   }
  ],
  "tasks": [],
  "walls": [
   {
    "label": "Sign-up or key only in a browser",
    "href": "https://agentdrives.com/access/get-in/sign-up",
    "note": "kept our agent out"
   },
   {
    "label": "Let AI agents sign up and get an API key",
    "href": "https://agentdrives.com/guides/let-agents-sign-up-and-get-a-key",
    "note": "fix guide"
   }
  ],
  "vendors": [],
  "standards": [
   {
    "label": "MCP",
    "href": "https://agentdrives.com/standards/mcp",
    "note": "tools an agent can call"
   },
   {
    "label": "OpenAPI",
    "href": "https://agentdrives.com/standards/openapi",
    "note": "its API, described"
   },
   {
    "label": "llms.txt",
    "href": "https://agentdrives.com/standards/llms-txt",
    "note": "its docs, listed for agents"
   }
  ],
  "steps": [
   {
    "label": "Find",
    "href": "https://agentdrives.com/access/find"
   },
   {
    "label": "Get in",
    "href": "https://agentdrives.com/access/get-in",
    "note": "stopped here"
   },
   {
    "label": "Use",
    "href": "https://agentdrives.com/access/use"
   },
   {
    "label": "Pay",
    "href": "https://agentdrives.com/access/pay"
   },
   {
    "label": "Leave",
    "href": "https://agentdrives.com/access/leave"
   }
  ],
  "rivals": [
   {
    "label": "Close",
    "href": "https://agentdrives.com/tools/close",
    "slug": "close",
    "level": 1
   },
   {
    "label": "Copper",
    "href": "https://agentdrives.com/tools/copper",
    "slug": "copper",
    "level": 1
   },
   {
    "label": "folk",
    "href": "https://agentdrives.com/tools/folk",
    "slug": "folk",
    "level": 1
   }
  ],
  "compare": [],
  "rail": [
   {
    "label": "Watch this product",
    "href": "https://agentdrives.com/watch"
   },
   {
    "label": "Get the data",
    "href": "https://agentdrives.com/data#plans"
   }
  ]
 },
 "capability_matrix": [
  {
   "id": "cap-01",
   "name": "Create a box (deal record) in a pipeline",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-02",
   "name": "Update a box's fields and move it between pipeline stages",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-03",
   "name": "Delete a box",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-04",
   "name": "Create a pipeline (custom CRM workflow)",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-05",
   "name": "Create a contact and link it to a box",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-06",
   "name": "Log emails and activity to a box timeline automatically from Gmail",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "blocked",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-07",
   "name": "Assign a box/deal and its follow-up task to a teammate",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "blocked"
   }
  },
  {
   "id": "cap-08",
   "name": "Search across boxes, pipelines, and contacts",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "blocked",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-09",
   "name": "Send a mail merge campaign to a contact list",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "blocked"
   }
  },
  {
   "id": "cap-10",
   "name": "Generate a funnel/pipeline report dashboard",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "blocked",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-11",
   "name": "Add a comment or note to a box",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-12",
   "name": "Create a custom field on a pipeline/box type",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-13",
   "name": "Create a saved pipeline view/filter grouped by field",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-14",
   "name": "Track email opens and link clicks",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-15",
   "name": "Create and reuse a shared email snippet/template",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-16",
   "name": "Build a CRM automation that triggers on a stage/field change",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-17",
   "name": "Autofill a CRM field from email activity or web research with AI",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-18",
   "name": "Ask a natural-language question about a deal and get an AI answer",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-19",
   "name": "Get an AI summary of a deal's history",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-20",
   "name": "Generate a meeting agenda from a deal's history with AI",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-21",
   "name": "Scan a Gmail inbox to extract contacts and add them as leads",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-22",
   "name": "Place and log a phone call from a box (native dialer)",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-23",
   "name": "Register a webhook for pipeline/box events",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-24",
   "name": "Read the pipeline newsfeed of historical changes",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-25",
   "name": "Export pipeline data to Google Sheets on a schedule",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-26",
   "name": "Import data into a pipeline from CSV or Google Sheets",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-27",
   "name": "Capture a lead from a web form (Typeform/Calendly) into a pipeline",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-28",
   "name": "Enrich a contact from a LinkedIn profile",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-29",
   "name": "Work from the Streak mobile app (iOS/Android)",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-30",
   "name": "Create a signup form / public share link for a thread via Streak Share",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-31",
   "name": "Split a long email thread into a new thread",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-32",
   "name": "Update a contact or organization custom field value via the API",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-33",
   "name": "Set a custom role with restricted permissions for a pipeline",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-34",
   "name": "Set a data validation rule to keep fields uniform",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-35",
   "name": "Connect Streak to Slack for pipeline notifications",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-37",
   "name": "Archive a user without losing their pipeline history",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  }
 ],
 "category_place": {
  "category": "crm",
  "products": 13,
  "higher": 4,
  "same_level": 8,
  "as_of": "2026-10-31",
  "stop": "signup",
  "rivals_by": "stop",
  "rivals": [
   "close",
   "copper",
   "hubspot",
   "insightly",
   "nutshell",
   "salesforce",
   "zoho"
  ]
 },
 "page": "https://agentdrives.com/tools/streak?via=api"
}