{
 "slug": "crisp",
 "name": "Crisp",
 "url": "https://crisp.chat",
 "domain": "crisp.chat",
 "category": "customer-support",
 "category_name": "Customer support",
 "tested_at": "2026-10-06",
 "run": "20261006T063013Z",
 "draft": false,
 "reviewed": true,
 "owner_verified": null,
 "origin": "editorial",
 "history": [
  {
   "run": "20261001T224956Z",
   "date": "2026-10-01",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": null,
    "driver": null,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "start"
   }
  },
  {
   "run": "20261006T063013Z",
   "date": "2026-10-06",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 2,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "start"
   }
  }
 ],
 "level": 1,
 "level_name": "Needs a person",
 "level_selfhost": null,
 "entry": "closed",
 "door": {
  "passed": 0,
  "tries": 2,
  "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": "part",
   "text": "Some docs agents can read: an MCP server",
   "have": [
    "mcp"
   ]
  },
  {
   "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": "0/10",
 "scores": {
  "coverage": null,
  "reliability": null,
  "resilience": null,
  "setup": 55,
  "surface_coverage": null,
  "docs_accuracy": null,
  "docs_completeness": null
 },
 "parts": {
  "holds_up": null,
  "docs_match": null,
  "setup": 55,
  "security": null,
  "standards": [
   {
    "standard": "MCP",
    "state": "behind",
    "behind": 1,
    "value": "2025-11-25"
   },
   {
    "standard": "MCP discovery",
    "state": "behind",
    "behind": null,
    "value": "legacy"
   }
  ]
 },
 "reliability_method": null,
 "resilience": null,
 "stress": [],
 "surface_audit": null,
 "coverage_core": null,
 "after_wall": null,
 "coverage_source": "computed",
 "driver": {
  "version": 2,
  "model": "claude-opus-5-5",
  "profile": "full",
  "assisted": false,
  "handoff": null,
  "prompt_sha": "f3d0adeeb256",
  "kb_version": "2+overlay-9e43028a2c",
  "identity": null
 },
 "methodology": 15,
 "rules_date": "2026-10-15",
 "engine": {
  "runner": "omp",
  "model": "claude-opus-5-5",
  "driver": 2,
  "signed": true,
  "inbox": [
   "agentdrives.com"
  ],
  "robots": "start"
 },
 "same_level_drives": 2,
 "drives": 2,
 "works_assisted": null,
 "freshness": "fresh",
 "nothing_to_pay": false,
 "core_gated": false,
 "profiles": {},
 "agent_check": {
  "rung": "signup",
  "vendor": "hCaptcha",
  "visible": true,
  "type": "challenge",
  "human": null,
  "how": "Check the Web Bot Auth signature on the sign-up request (the agent's key directory is public) and skip hCaptcha 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": "page",
   "kind": "signup",
   "at": "2026-10-13"
  },
  "browser": {
   "state": "captcha",
   "measured": false
  },
  "our_key": "pending",
  "robots": null,
  "tip": false
 },
 "ladder": {
  "docs": {
   "status": "headless",
   "note": "docs.crisp.chat: REST API v1 reference, website/plugin token guides, MCP server quickstart, five official API libraries; fetched without login."
  },
  "signup": {
   "status": "human",
   "note": "Workspace sign-up exists only as a web form (app.crisp.chat/initiate/signup); on submit it shows a visible hCaptcha image puzzle. The documented API has no account-creation route. (A separate Marketplace developer account signed up in the browser without a CAPTCHA, but it cannot log in to the Crisp app.)"
  },
  "verify": {
   "status": "",
   "note": "Never reached: no workspace account was created.",
   "reached": false
  },
  "credentials": {
   "status": "",
   "note": "Website Token and MCP Server token are generated in the Crisp app (Settings > Workspace Settings > Advanced configuration), which needs a workspace. A Marketplace plugin development token was obtained in the browser, but it 'will not be usable until you link a trusted workspace' (a Website ID).",
   "via": "",
   "reached": false
  },
  "first_call": {
   "status": "headless",
   "note": "GET /v1/plugin/connect/websites/all/1 with the plugin dev token (the token itself was obtained via a browser Marketplace flow) -> 200 {error:false, reason:listed, data:[]}. The call itself was made through the documented API, not a browser. No workspace data reachable."
  },
  "first_action": {
   "status": "",
   "note": "Nothing can be created without a workspace token.",
   "reached": false
  },
  "pay": {
   "status": "",
   "grade": "P1",
   "rails": [],
   "rail_ids": [],
   "first_party": false,
   "rail_scope": "none",
   "trial_path": "free tier",
   "note": "No x402/MPP/L402/UCP/ACP anywhere (subdomains do not resolve, well-knowns 404, not in x402 Bazaar, mpp.dev or projects.dev). Free plan plus a 14-day trial 'No card required'. Billing routes in the API (POST/DELETE /v1/plans/subscription/{website_id}) are 'user' tier only, which documented token types cannot use. Checkout not observed; a human is needed before any purchase because sign-up is behind hCaptcha.",
   "reached": false
  },
  "cancel": {
   "status": "",
   "grade": "n/a",
   "note": "No plan was started. The API's DELETE /v1/plans/subscription/{website_id} is 'user' tier only.",
   "reached": false
  },
  "delete": {
   "status": "",
   "note": "No Crisp workspace was ever created, so there was no product account/workspace to delete. Only the separate Marketplace developer account and its plugin (not the Crisp product itself) were deleted in the browser (typed name + password); the dev token then returned 401 invalid_session. Workspace deletion in the API (DELETE /v1/website/{website_id}) is 'user' tier only and was never reachable.",
   "account": false,
   "reached": false
  }
 },
 "routes": [],
 "checkout": null,
 "docs": null,
 "claims": null,
 "pay_options": {
  "checked": "2026-10-06",
  "source": "drive",
  "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": false,
  "cli": false,
  "sdk": true,
  "mcp": "official",
  "llms_txt": false,
  "webhooks": true,
  "sandbox": false
 },
 "surface_notes": {
  "api": "REST v1, ~227 documented method+path pairs; website (10k req/day) and plugin tokens",
  "mcp": "official, 27 tools, the older 25 Nov 2025 spec",
  "sdk": "node, go, php, python, ruby",
  "webhooks": "plugin web hooks (Marketplace)"
 },
 "can_do": [
  "Read the full REST API reference and MCP docs without an account",
  "List the Crisp MCP server's tools without a token",
  "Create a Marketplace developer account, a private plugin and a development token in the browser, then delete them"
 ],
 "cannot_do": [
  {
   "what": "Create a Crisp workspace account",
   "why": "Sign-up form shows a visible hCaptcha image puzzle; no API route for sign-up"
  },
  {
   "what": "Get a working workspace token (Website, MCP or plugin dev token)",
   "why": "All need a Crisp workspace, created only through the CAPTCHA-gated sign-up"
  },
  {
   "what": "Any core capability (inbox, messages, states, contacts, helpdesk)",
   "why": "No workspace token"
  }
 ],
 "blockers": [
  "Visible hCaptcha on the Crisp app sign-up form"
 ],
 "tips_for_owner": [
  "Let verified signed agents skip the sign-up hCaptcha",
  "Add a headless way to create a workspace token",
  "Support MCP (the 28 Jul 2026 spec) server/discover",
  "Publish OpenAPI and llms.txt for the REST API"
 ],
 "tips_for_agents": [
  "You need a human to create the Crisp workspace (hCaptcha) and generate the Website/MCP token under Settings > Workspace Settings > Advanced configuration; after that everything is headless.",
  "MCP at https://api.crisp.chat/mcp/ speaks 2025-11-25 only: use initialize, Bearer token. No send-message tool: use REST POST /v1/website/{id}/conversation/{session}/message for replies.",
  "REST auth: Basic token_id:token_key plus X-Crisp-Tier: website (or plugin). Errors are JSON {error, reason, data.message} and name the problem (e.g. restricted_route_tier).",
  "A Marketplace account is separate from a Crisp account; its dev token only works on a trusted workspace you already own."
 ],
 "selfhost": null,
 "summary": "Crisp has a broad REST API, official SDKs and an official MCP server, but an agent cannot get in on its own: the workspace sign-up shows a visible hCaptcha puzzle and every working token is issued inside the workspace dashboard. Without a human we reached only docs, the MCP tool list and an empty plugin dev-token call; no core capability could be driven.",
 "wall": "hCaptcha puzzle on the workspace sign-up form",
 "plan_scope": "",
 "robots_stop": null,
 "robots": null,
 "plain": {
  "summary": "Crisp is a live-chat and helpdesk tool with a public API and docs. Its sign-up shows an image puzzle (CAPTCHA); the agent does not solve these, so no workspace was made. The agent could read the documentation and list some tool names, but none of the real features (chat inbox, messages, contacts, help articles) could be tested.",
  "can_do": [
   "Read all the product's documentation and API reference without logging in",
   "See the list of available automation tools without a workspace",
   "Sign up for a separate 'developer' account (for building plugins) and later delete it, but this account cannot use the actual chat product"
  ],
  "cannot_do": [
   {
    "what": "Create a usable Crisp account/workspace",
    "why": "The sign-up form shows an image puzzle (CAPTCHA) only a person can solve"
   },
   {
    "what": "Get a working access key for the chat product",
    "why": "Keys are only issued inside the workspace, which could not be created"
   },
   {
    "what": "Use any real feature: chatting, replying, managing contacts, publishing help articles",
    "why": "All of these need a workspace, which the sign-up puzzle blocked"
   }
  ]
 },
 "plan_gated": [],
 "reply": null,
 "capabilities": [
  {
   "id": "cap-01",
   "group": "Inbox",
   "capability": "Chat with visitors/customers in a shared omnichannel inbox",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "GET/POST /v1/website/{website_id}/conversations/{page_number}",
    "mcp": null,
    "cli": null,
    "ui": "Inbox"
   },
   "check": "GET /v1/website/{website_id}/conversations/{page_number} returns the conversation with new messages",
   "source": "https://crisp.chat/en/; https://docs.crisp.chat/references/rest-api/v1/"
  },
  {
   "id": "cap-02",
   "group": "Inbox",
   "capability": "Send a message in a conversation (text, file, note, etc.)",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/website/{website_id}/conversation/{session_id}/message",
    "mcp": null,
    "cli": null,
    "ui": "Inbox > conversation composer"
   },
   "check": "GET conversation messages shows the new message with matching fingerprint",
   "source": "https://docs.crisp.chat/references/rest-api/v1/; https://crisp.chat/en/chatbot/ (CrispClient.website.sendMessageInConversation example)"
  },
  {
   "id": "cap-03",
   "group": "Inbox",
   "capability": "Resolve / change state of a conversation (pending, unresolved, resolved)",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "PATCH /v1/website/{website_id}/conversation/{session_id}/state",
    "mcp": null,
    "cli": null,
    "ui": "Inbox conversation header"
   },
   "check": "GET conversation shows state: resolved",
   "source": "https://docs.crisp.chat/references/rest-api/v1/"
  },
  {
   "id": "cap-04",
   "group": "Inbox",
   "capability": "Assign a conversation to a teammate / route via rules",
   "weight": "core",
   "plan": "essentials",
   "surfaces": {
    "api": "PATCH /v1/website/{website_id}/conversation/{session_id}/assign",
    "mcp": null,
    "cli": null,
    "ui": "Inbox > conversation assignment panel"
   },
   "check": "GET conversation shows assigned.user_id matching the chosen operator",
   "source": "https://crisp.chat/en/pricing/ (Routing rules & Assignment); https://docs.crisp.chat/references/rest-api/v1/"
  },
  {
   "id": "cap-05",
   "group": "Widget",
   "capability": "Install a website/app chat widget to talk to visitors in real time",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings > Website Settings > Setup instructions"
   },
   "check": "Visiting the website with the installed JS SDK shows the chat bubble and a new conversation appears in the inbox",
   "source": "https://crisp.chat/en/livechat/; https://crisp.chat/en/"
  },
  {
   "id": "cap-06",
   "group": "Chatbot/AI Agent",
   "capability": "Build and publish a no-code chatbot/AI Agent workflow across channels",
   "weight": "core",
   "plan": "essentials",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Chatbot > Scenario builder"
   },
   "check": "A new scenario shows as published and triggers automated replies in a test conversation",
   "source": "https://crisp.chat/en/chatbot/; https://crisp.chat/en/pricing/ (Omnichannel AI Chatbot)"
  },
  {
   "id": "cap-07",
   "group": "AI",
   "capability": "Train the AI agent on data sources (website crawl, Knowledge Base, file import, Q&A snippets, conversation history)",
   "weight": "core",
   "plan": "essentials",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "AI > Train"
   },
   "check": "Uploaded data source appears as indexed in the AI training sources list and is referenced in an AI-generated answer",
   "source": "https://crisp.chat/en/ai/ (Train section)"
  },
  {
   "id": "cap-09",
   "group": "AI",
   "capability": "Get AI co-pilot suggested replies / predict, transcribe, translate, summarize, categorize, rephrase during a conversation",
   "weight": "core",
   "plan": "essentials",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Inbox > AI copilot panel"
   },
   "check": "Triggering the copilot on a conversation returns a generated suggestion visible in the conversation panel",
   "source": "https://crisp.chat/en/ai/ (Augment / Unbridled internal artificial intelligence)"
  },
  {
   "id": "cap-10",
   "group": "Contacts/CRM",
   "capability": "View and edit a unified customer profile (contact data, custom data, segments)",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "GET/PATCH /v1/website/{website_id}/people/profile/{people_id}",
    "mcp": null,
    "cli": null,
    "ui": "CRM > Contact profile"
   },
   "check": "GET /v1/website/{website_id}/people/profile/{people_id} reflects the edited field",
   "source": "https://crisp.chat/en/crm/; https://docs.crisp.chat/references/rest-api/v1/"
  },
  {
   "id": "cap-11",
   "group": "Knowledge Base",
   "capability": "Create, edit and publish a help center article",
   "weight": "core",
   "plan": "essentials",
   "surfaces": {
    "api": "POST/PUT /v1/website/{website_id}/helpdesk/locale/{locale}/article",
    "mcp": null,
    "cli": null,
    "ui": "Knowledge Base editor"
   },
   "check": "GET the article endpoint or the public help center URL shows the published content",
   "source": "https://crisp.chat/en/knowledge/; https://docs.crisp.chat/references/rest-api/v1/"
  },
  {
   "id": "cap-08",
   "group": "AI",
   "capability": "Connect the AI agent to third-party tools via MCP",
   "weight": "secondary",
   "plan": "plus",
   "surfaces": {
    "api": null,
    "mcp": "Crisp-hosted MCP connections (configured in UI)",
    "cli": null,
    "ui": "Chatbot > MCP connection"
   },
   "check": "A connected MCP tool call result (e.g. order lookup) is shown surfaced inside a chatbot reply",
   "source": "https://crisp.chat/en/chatbot/ (MCP connection section)"
  },
  {
   "id": "cap-12",
   "group": "Inbox",
   "capability": "Search conversations with text, segment, or filter queries",
   "weight": "secondary",
   "plan": "mini",
   "surfaces": {
    "api": "GET /v1/website/{website_id}/conversations/{page_number}?search_query=&search_type=",
    "mcp": null,
    "cli": null,
    "ui": "Inbox search bar"
   },
   "check": "Search query response data array contains only conversations matching the filter",
   "source": "https://docs.crisp.chat/references/rest-api/v1/; https://crisp.chat/en/pricing/"
  },
  {
   "id": "cap-13",
   "group": "Inbox",
   "capability": "Use canned response shortcuts in replies",
   "weight": "secondary",
   "plan": "mini",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Inbox composer > shortcuts"
   },
   "check": "Typing a shortcut trigger inserts the saved canned message text into the composer",
   "source": "https://crisp.chat/en/pricing/ (Shortcuts)"
  },
  {
   "id": "cap-14",
   "group": "Inbox",
   "capability": "Add private internal notes on a conversation",
   "weight": "secondary",
   "plan": "mini",
   "surfaces": {
    "api": "POST /v1/website/{website_id}/conversation/{session_id}/message (type: note)",
    "mcp": null,
    "cli": null,
    "ui": "Inbox composer > note mode"
   },
   "check": "GET conversation messages shows a message with type note visible only to operators",
   "source": "https://crisp.chat/en/pricing/ (Private notes); https://docs.crisp.chat/references/rest-api/v1/"
  },
  {
   "id": "cap-15",
   "group": "Email",
   "capability": "Manage a shared email inbox (receive and reply to customer emails)",
   "weight": "secondary",
   "plan": "mini",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Inbox > Email channel"
   },
   "check": "An inbound email appears as a conversation and the reply is delivered to the sender's mailbox",
   "source": "https://crisp.chat/en/pricing/ (Shared email inbox)"
  },
  {
   "id": "cap-16",
   "group": "Channels",
   "capability": "Connect additional messaging channels (WhatsApp, Instagram DMs, SMS, Line, Viber, Messenger, Telegram)",
   "weight": "secondary",
   "plan": "essentials",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings > Integrations > Channels"
   },
   "check": "A connected channel shows status 'connected' and an inbound message from that channel creates a conversation",
   "source": "https://crisp.chat/en/pricing/ (Omnichannel inbox); https://crisp.chat/en/chatbot/ (channel list)"
  },
  {
   "id": "cap-17",
   "group": "Engagement",
   "capability": "Set up proactive chat triggers / targeted messages based on visitor behavior",
   "weight": "secondary",
   "plan": "mini",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Chatbot > Triggers"
   },
   "check": "A matching visitor action fires the configured proactive message within the widget",
   "source": "https://crisp.chat/en/pricing/ (Chat triggers); https://crisp.chat/en/chatbot/ (Engage section)"
  },
  {
   "id": "cap-18",
   "group": "Engagement",
   "capability": "Collect CSAT satisfaction surveys after a conversation",
   "weight": "secondary",
   "plan": "mini",
   "surfaces": {
    "api": "GET /v1/website/{website_id}/conversation/{session_id}/rating",
    "mcp": null,
    "cli": null,
    "ui": "Inbox / widget post-chat survey"
   },
   "check": "GET conversation rating endpoint shows the submitted score after a test survey submission",
   "source": "https://crisp.chat/en/chatbot/ (CSAT surveys); https://docs.crisp.chat/references/rest-api/v1/"
  },
  {
   "id": "cap-19",
   "group": "Knowledge Base/AI",
   "capability": "Offer a website search widget (Overlay) backed by the AI data hub",
   "weight": "secondary",
   "plan": "plus",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "AI > Overlay"
   },
   "check": "Triggering the Overlay SDK call opens the search pop-up and returns a result from indexed content",
   "source": "https://crisp.chat/en/ai/ (Unleash / Overlay section)"
  },
  {
   "id": "cap-20",
   "group": "Data",
   "capability": "Push custom events/data to a customer profile via SDK or API (user data enrichment)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "PATCH /v1/website/{website_id}/people/data/{people_id}",
    "mcp": null,
    "cli": null,
    "ui": "Crisp JS SDK (Crisp.session.setData)"
   },
   "check": "GET people/data endpoint reflects the pushed custom key/value",
   "source": "https://crisp.chat/en/crm/ (CrmSdk code sample); https://docs.crisp.chat/references/rest-api/v1/"
  },
  {
   "id": "cap-21",
   "group": "Data",
   "capability": "Segment customers with custom filters for targeting",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET /v1/website/{website_id}/people/list/{page_number}?filter=",
    "mcp": null,
    "cli": null,
    "ui": "CRM > People > Filters"
   },
   "check": "People list response only contains profiles matching the applied filter segment",
   "source": "https://crisp.chat/en/crm/ (customer-segmentation); https://docs.crisp.chat/references/rest-api/v1/"
  },
  {
   "id": "cap-22",
   "group": "Chatbot",
   "capability": "Collect customer data through chatbot input fields and pickers",
   "weight": "secondary",
   "plan": "essentials",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Chatbot builder > message block types"
   },
   "check": "Completing an input-field bot block updates the corresponding people/profile field",
   "source": "https://crisp.chat/en/chatbot/ (Input Field / Message types section)"
  },
  {
   "id": "cap-23",
   "group": "Ticketing",
   "capability": "Offer a customer self-service portal to open and follow tickets",
   "weight": "secondary",
   "plan": "plus",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings > Ticketing portal"
   },
   "check": "A visitor opens a new ticket from the portal and it appears as a new conversation in the inbox",
   "source": "https://crisp.chat/en/pricing/ (Ticketing system)"
  },
  {
   "id": "cap-24",
   "group": "Analytics",
   "capability": "View analytics on conversations, satisfaction, topics and operator activity",
   "weight": "secondary",
   "plan": "essentials",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Analytics dashboard"
   },
   "check": "Dashboard chart updates to reflect a newly resolved/rated conversation in the selected date range",
   "source": "https://crisp.chat/en/ai/ (Analyze section); https://crisp.chat/en/pricing/ (Analytics)"
  },
  {
   "id": "cap-25",
   "group": "Automations",
   "capability": "Build internal/no-code automated workflows (not customer-facing)",
   "weight": "secondary",
   "plan": "essentials",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Automations builder"
   },
   "check": "A configured automation rule fires the defined internal action (e.g. tag/assign) on a matching conversation",
   "source": "https://crisp.chat/en/ (Automations feature card)"
  },
  {
   "id": "cap-26",
   "group": "Integrations",
   "capability": "Sync Crisp conversations with e-commerce platforms (Shopify, WooCommerce, Magento, Prestashop)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings > Integrations > E-commerce"
   },
   "check": "Order data from the connected store appears in the conversation sidebar for a matched customer",
   "source": "https://crisp.chat/en/pricing/ (E-Commerce integrations)"
  },
  {
   "id": "cap-27",
   "group": "Integrations",
   "capability": "Connect third-party data sources (HubSpot, Segment, Zapier, Klaviyo, n8n, Make, Pipedrive) via native connectors",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "REST API (used by third-party connectors)",
    "mcp": null,
    "cli": null,
    "ui": "Settings > Integrations"
   },
   "check": "A configured integration connection shows status connected and syncs a test record",
   "source": "https://crisp.chat/en/crm/ (Connect section)"
  },
  {
   "id": "cap-28",
   "group": "Contact form",
   "capability": "Centralize answers from customizable contact forms into the inbox",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings > Contact form"
   },
   "check": "A submitted contact form appears as a new conversation in the inbox",
   "source": "https://crisp.chat/en/pricing/ (Contact form)"
  },
  {
   "id": "cap-29",
   "group": "Mobile",
   "capability": "Use Crisp mobile apps to manage conversations on the go",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "iOS / Android app"
   },
   "check": "A new message sent from the mobile app appears in the web inbox conversation thread",
   "source": "https://crisp.chat/en/pricing/ (Mobile applications)"
  },
  {
   "id": "cap-30",
   "group": "Workspace admin",
   "capability": "Create and manage sub-inboxes to organize conversations",
   "weight": "peripheral",
   "plan": "essentials",
   "surfaces": {
    "api": "POST /v1/website/{website_id}/inbox",
    "mcp": null,
    "cli": null,
    "ui": "Settings > Inboxes"
   },
   "check": "GET /v1/website/{website_id}/inboxes includes the newly created sub-inbox",
   "source": "https://crisp.chat/en/pricing/ (Sub-inboxes comparison table); https://docs.crisp.chat/references/rest-api/v1/"
  },
  {
   "id": "cap-31",
   "group": "Workspace admin",
   "capability": "Invite and manage teammates/seats on a workspace",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/website/{website_id}/operators/batch",
    "mcp": null,
    "cli": null,
    "ui": "Settings > Operators"
   },
   "check": "GET operators list shows the newly invited teammate with pending/active status",
   "source": "https://docs.crisp.chat/references/rest-api/v1/; https://crisp.chat/en/pricing/ (seats included)"
  },
  {
   "id": "cap-32",
   "group": "Workspace admin",
   "capability": "Set a custom email sending domain to improve deliverability",
   "weight": "peripheral",
   "plan": "mini",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings > Email domain"
   },
   "check": "Custom domain verification status shows verified and outbound emails use that domain",
   "source": "https://crisp.chat/en/pricing/ (Custom email domain)"
  },
  {
   "id": "cap-33",
   "group": "Workspace admin",
   "capability": "Remove the 'We run on Crisp' white-label watermark and apply white labelling",
   "weight": "peripheral",
   "plan": "plus",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings > Branding"
   },
   "check": "The chat widget/help center no longer displays the Crisp watermark after toggling the setting",
   "source": "https://crisp.chat/en/pricing/ (White labelling)"
  },
  {
   "id": "cap-34",
   "group": "Workspace admin",
   "capability": "Create a new website/workspace and verify domain ownership",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/website; HEAD /v1/website",
    "mcp": null,
    "cli": null,
    "ui": "Account > Create workspace"
   },
   "check": "GET /v1/website/{website_id} returns the created workspace with matching domain",
   "source": "https://docs.crisp.chat/references/rest-api/v1/"
  },
  {
   "id": "cap-35",
   "group": "Marketplace",
   "capability": "Install plugins/integrations from the Crisp Marketplace",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings > Marketplace apps"
   },
   "check": "Installed plugin appears in the workspace's active plugins list and exposes its configured feature",
   "source": "https://marketplace.crisp.chat/ (linked from docs.crisp.chat)"
  },
  {
   "id": "cap-36",
   "group": "Data retention",
   "capability": "Retain conversation and customer data without time limit (unlimited data retention)",
   "weight": "peripheral",
   "plan": "mini",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings > Data retention"
   },
   "check": "A conversation older than the default retention window remains accessible via the inbox/API",
   "source": "https://crisp.chat/en/pricing/ (Unlimited data retention)"
  }
 ],
 "attempts": [
  {
   "t": "01:19",
   "cap": "discovery",
   "capability": "MCP server/discover",
   "task": "POST server/discover to https://api.crisp.chat/mcp/ with 2026-07-28",
   "route": "mcp",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "HTTP 400 application/json, JSON-RPC -32000 'Unsupported protocol version: 2026-07-28 (supported versions: 2025-11-25, 2025-06-18, 2025-03-26, 2024-11-05, 2024-10-07)' -> legacy server",
   "notes": "Not the -32022 shape; falls back to initialize"
  },
  {
   "t": "01:19",
   "cap": "discovery",
   "capability": "Agent cards / well-known",
   "task": "Probe ai-catalog, agent-card, agent.json, mcp server-card, oauth-protected-resource, oauth-authorization-server, ucp, auth.md, SKILL.md on crisp.chat, api.crisp.chat, docs.crisp.chat; /mcp/server-card",
   "route": "none",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "All absent: api.crisp.chat 404 JSON; crisp.chat 301 -> /en/... 404 HTML; docs.crisp.chat 403/404 HTML; api.crisp.chat/mcp/server-card 406 'Client must accept text/event-stream'",
   "notes": ""
  },
  {
   "t": "01:19",
   "cap": "discovery",
   "capability": "llms.txt / markdown / aipref",
   "task": "crisp.chat/llms.txt, docs.crisp.chat/llms.txt, Accept: text/markdown on docs page, .md URL, robots.txt Content-Usage",
   "route": "none",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "llms.txt 404 on both hosts; Accept text/markdown -> text/html, Vary: Accept-Encoding only; .md URL 404; robots.txt 'User-agent: * Allow: /' + Disallows, no Content-Usage/Content-signal; no Content-Usage header",
   "notes": ""
  },
  {
   "t": "01:28",
   "cap": "discovery",
   "capability": "MCP initialize fallback + tools/list",
   "task": "initialize offering 2026-07-28, then tools/list (no auth)",
   "route": "mcp",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "initialize -> protocolVersion 2025-11-25, serverInfo crisp-mcp/api 2.0.0 'Crisp MCP', SSE reply, no Mcp-Session-Id; tools/list without auth -> 27 tools",
   "notes": "Tool listing open without a token; calls need the token"
  },
  {
   "t": "03:04",
   "cap": "signup",
   "capability": "Sign up",
   "task": "Create Crisp account: documented REST API has no account-creation route (POST /v1/website is user tier, needs an existing user); web form at app.crisp.chat/initiate/signup/",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "Filled first/last name, email the agent's inbox, password, accepted Terms, clicked Continue -> hCaptcha image puzzle 'Click the flower the bee never lands on' (screenshot browser/shots/004.png, visible_challenge true)",
   "notes": "Visible hCaptcha on sign-up. Not solved by agent; asking a human via live handoff.",
   "quality": {
    "error_legibility": "n/a"
   }
  },
  {
   "t": "03:14",
   "cap": "signup",
   "capability": "Sign up",
   "task": "Ask a human to solve the hCaptcha (live handoff)",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "",
   "notes": "HCaptcha image puzzle on sign-up."
  },
  {
   "t": "05:15",
   "cap": "credentials",
   "capability": "Sign up (Marketplace developer account)",
   "task": "Sign up at marketplace.crisp.chat (the documented route to plugin tokens)",
   "route": "browser",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "Form first/last name, email, password, company, terms -> 'Welcome on Crisp Marketplace, AgentDrives. Go to your dashboard now!' (shots/010.png); no CAPTCHA shown",
   "notes": "Marketplace account is separate from a Crisp workspace account; plugin tokens only reach workspaces that install the plugin (logged under credentials: this is the developer account for plugin tokens, not a Crisp workspace account)"
  },
  {
   "t": "05:49",
   "cap": "credentials",
   "capability": "Log in to Crisp app with the Marketplace account",
   "task": "Login at app.crisp.chat/initiate/login with the Marketplace credentials",
   "route": "browser",
   "documented": true,
   "result": "failed",
   "verified": true,
   "evidence": "Both fields marked red, stays on /initiate/login/ (shots/012.png): Marketplace and Crisp app accounts are separate",
   "notes": "Workspace account still needed",
   "quality": {
    "error_legibility": "vague"
   }
  },
  {
   "t": "08:10",
   "cap": "credentials",
   "capability": "Get API credentials (plugin development token)",
   "task": "Marketplace > New Plugin (private) > Tokens: development token keypair",
   "route": "browser",
   "documented": true,
   "result": "partial",
   "verified": true,
   "evidence": "Plugin 8d7d30b7-… created; Tokens page shows Identifier/Key/Signing Secret (saved to secrets.env) and 'The development token will not be usable until you link a trusted workspace.' Limit 500 req/24h.",
   "notes": "Token exists but can only reach workspaces linked/installing the plugin; we have no Crisp workspace (sign-up behind hCaptcha). Website Token / MCP token need a workspace (Settings > Workspace Settings > Advanced configuration)."
  },
  {
   "t": "08:10",
   "cap": "first_call",
   "capability": "First authenticated API call",
   "task": "GET https://api.crisp.chat/v1/plugin/connect/websites/all/1 with plugin dev token (Basic, X-Crisp-Tier: plugin)",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "HTTP 200 application/json {\"error\":false,\"reason\":\"listed\",\"data\":[]} (no workspaces connected)",
   "notes": "Also GET /v1/plugins/subscription/{id} -> 401 {reason: restricted_route_tier, message: \"'plugin' authentication tiers can never access this route\"}: clear error.",
   "quality": {
    "verify_route": "yes",
    "error_legibility": "clear",
    "docs_match": "match"
   }
  },
  {
   "t": "08:27",
   "cap": "credentials",
   "capability": "Link a trusted workspace for the dev token",
   "task": "Marketplace Settings > Add Trusted Workspace",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "evidence": "Dialog: 'Please fill your Website ID. You can find it in the Crisp app: Settings > Workspace Settings > Setup & Integrations > Website ID.' We have no workspace: Crisp app sign-up is behind a visible hCaptcha.",
   "notes": "Every credential that reaches workspace data (Website Token, MCP Server token, plugin dev token via trusted workspace) needs a Crisp workspace account."
  },
  {
   "t": "08:27",
   "cap": "cap-01",
   "capability": "Chat with visitors/customers in a shared omnichannel inbox",
   "task": "Drive via mcp (GET/POST /v1/website/{website_id}/conversations/{page_number})",
   "route": "mcp",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No Crisp workspace: app sign-up stopped at a visible hCaptcha image puzzle; plugin dev token returns only an empty website list",
   "notes": "Not attempted against data; needs a workspace token"
  },
  {
   "t": "08:27",
   "cap": "cap-02",
   "capability": "Send a message in a conversation (text, file, note, etc.)",
   "task": "Drive via api (POST /v1/website/{website_id}/conversation/{session_id}/message)",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No Crisp workspace: app sign-up stopped at a visible hCaptcha image puzzle; plugin dev token returns only an empty website list",
   "notes": "Not attempted against data; needs a workspace token"
  },
  {
   "t": "08:27",
   "cap": "cap-03",
   "capability": "Resolve / change state of a conversation (pending, unresolved, resolved)",
   "task": "Drive via mcp (PATCH /v1/website/{website_id}/conversation/{session_id}/state)",
   "route": "mcp",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No Crisp workspace: app sign-up stopped at a visible hCaptcha image puzzle; plugin dev token returns only an empty website list",
   "notes": "Not attempted against data; needs a workspace token"
  },
  {
   "t": "08:27",
   "cap": "cap-04",
   "capability": "Assign a conversation to a teammate / route via rules",
   "task": "Drive via api (PATCH /v1/website/{website_id}/conversation/{session_id}/assign)",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No Crisp workspace: app sign-up stopped at a visible hCaptcha image puzzle; plugin dev token returns only an empty website list",
   "notes": "Not attempted against data; needs a workspace token"
  },
  {
   "t": "08:27",
   "cap": "cap-05",
   "capability": "Install a website/app chat widget to talk to visitors in real time",
   "task": "Drive via none (UI only)",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No Crisp workspace: app sign-up stopped at a visible hCaptcha image puzzle; plugin dev token returns only an empty website list",
   "notes": "Not attempted against data; needs a workspace token"
  },
  {
   "t": "08:27",
   "cap": "cap-06",
   "capability": "Build and publish a no-code chatbot/AI Agent workflow across channels",
   "task": "Drive via none (UI only)",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No Crisp workspace: app sign-up stopped at a visible hCaptcha image puzzle; plugin dev token returns only an empty website list",
   "notes": "Not attempted against data; needs a workspace token"
  },
  {
   "t": "08:27",
   "cap": "cap-07",
   "capability": "Train the AI agent on data sources (website crawl, Knowledge Base, file import, Q&A snippets, conversation history)",
   "task": "Drive via none (UI only)",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No Crisp workspace: app sign-up stopped at a visible hCaptcha image puzzle; plugin dev token returns only an empty website list",
   "notes": "Not attempted against data; needs a workspace token"
  },
  {
   "t": "08:27",
   "cap": "cap-09",
   "capability": "Get AI co-pilot suggested replies / predict, transcribe, translate, summarize, categorize, rephrase during a conversation",
   "task": "Drive via none (UI only)",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No Crisp workspace: app sign-up stopped at a visible hCaptcha image puzzle; plugin dev token returns only an empty website list",
   "notes": "Not attempted against data; needs a workspace token"
  },
  {
   "t": "08:27",
   "cap": "cap-10",
   "capability": "View and edit a unified customer profile (contact data, custom data, segments)",
   "task": "Drive via mcp (GET/PATCH /v1/website/{website_id}/people/profile/{people_id})",
   "route": "mcp",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No Crisp workspace: app sign-up stopped at a visible hCaptcha image puzzle; plugin dev token returns only an empty website list",
   "notes": "Not attempted against data; needs a workspace token"
  },
  {
   "t": "08:27",
   "cap": "cap-11",
   "capability": "Create, edit and publish a help center article",
   "task": "Drive via mcp (POST/PUT /v1/website/{website_id}/helpdesk/locale/{locale}/article)",
   "route": "mcp",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No Crisp workspace: app sign-up stopped at a visible hCaptcha image puzzle; plugin dev token returns only an empty website list",
   "notes": "Not attempted against data; needs a workspace token"
  },
  {
   "t": "12:59",
   "cap": "delete",
   "capability": "Delete created resources (Marketplace plugin)",
   "task": "Marketplace plugin Settings > Danger Zone > Delete Plugin (type name + password)",
   "route": "browser",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "'Plugin deleted', dashboard shows 0 plugins; dev token now 401 {reason: invalid_session}",
   "notes": "Web-only; no documented API to delete plugins"
  },
  {
   "t": "14:17",
   "cap": "delete",
   "capability": "Delete the Marketplace account",
   "task": "Marketplace Account > Danger Zone > Delete My Account (confirm + password)",
   "route": "browser",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "Toast 'Your user account has been successfully removed.' (shots/045.png); re-login -> 'Your credentials are invalid. Please retry.'",
   "notes": "Web only. Crisp workspace deletion in the API (DELETE /v1/website/{website_id}) is tier 'user' only, not reachable with documented website/plugin tokens; never created a workspace."
  },
  {
   "t": "14:17",
   "cap": "pay",
   "capability": "Agent purchase rails",
   "task": "Probe x402./mpp./agents.crisp.chat, /.well-known/ucp, oauth metadata, auth.md, x402 Bazaar, mpp.dev services, projects.dev, pricing page, API billing routes",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "x402/mpp/agents subdomains: no DNS answer (curl 000); /.well-known/ucp 404 on all hosts; Bazaar, mpp.dev, projects.dev: no 'crisp' entry; pricing page: Free plan 'Free Forever', Mini $45, Essentials $95 /month per workspace, 'Start my trial for free', '14 days free trial, All Crisp features, No card required'; no x402/402/MPP/agentic text. API reference has POST/DELETE /v1/plans/subscription/{website_id} with 'Tiers user' only.",
   "notes": "No agent payment rail. Billing routes exist but only for the 'user' tier, which the documented token types (website, plugin) cannot use. Checkout not observed (no workspace)."
  },
  {
   "t": "14:27",
   "cap": "docs",
   "capability": "Find API docs",
   "task": "Fetch docs.crisp.chat REST API v1 reference, auth guides, MCP server guides",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "REST API v1 reference (HTML, ~227 documented method+path pairs), auth guide (website token, plugin token), MCP quickstart: https://api.crisp.chat/mcp/ Streamable HTTP, Bearer token from Settings > Workspace Settings > Advanced configuration; SDKs node/go/php/python/ruby; no OpenAPI file found, no llms.txt",
   "notes": "",
   "quality": {
    "docs_match": "match"
   }
  }
 ],
 "stale": false,
 "icon": "/logos/crisp.png",
 "monitored": false,
 "verdict": "Needs a person to sign up: L1 · Needs a person. Our agent stopped at workspace sign-up, where a visible hCaptcha puzzle blocks the only form for creating an account. The documented API has no account-creation route. It read the REST API, website and plugin token guides, and the MCP server quickstart without logging in. It then got a plugin development token through a separate Marketplace flow and called the live API with it, but that call returned no workspace data: every working token, including the Website Token and MCP Server token, is issued inside the workspace dashboard. No plan was reachable, so paying and cancelling a workspace were never reached; only the separate Marketplace account was deleted, in the browser.",
 "page": "https://agentdrives.com/tools/crisp?via=api"
}