crisp

crisp

crisp.

Crisp customer messaging, read-only: the workspace's conversations across its

ajouter à otoauth : —prefix : crisp_*

setup & usage

⚠ a crisp website token and the website id

a workspace owner in Crisp generates a website token in Settings → Workspace Settings → Advanced configuration → *API Token*, and pastes its identifier and its key into oto, with the website ID read in Settings → Workspace Settings → Setup Instructions. Reference: Crisp REST API authentication.

  • ⚠️ the key is shown only ONCE, when the token is generated; rolling the token revokes the previous one
  • a token reaches only the workspace it was generated for: the website ID must be that workspace's
  • byo-only: no shared oto key — these are your customers' conversations, each organization sets its own
  • read-only: the connector never sends a message or a note, never changes a conversation or a contact
  • the "test connection" button reads the workspace: no side effect
  • ▸ conversations, messages, contacts, knowledge base
  • "the conversations updated since Monday" → crisp(op="conversations", date_start="2026-11-02T00:00:00Z", order="updated", per_page=50)
  • "the unresolved conversations of this inbox" → crisp(op="inboxes"), then crisp(op="conversations", inbox_id="…", resolved=false)
  • "what was said in this conversation" → crisp(op="messages", session_id="session_…"), then timestamp_before=<oldest timestamp received> for older messages
  • "the conversations about a delivery delay" → crisp(op="search_conversations", query="delivery delay")
  • "this contact and its conversations" → crisp(op="person", people_id="<id or email>"), crisp(op="person_conversations", people_id="…")
  • "the help article on refunds" → crisp(op="helpdesk_tree", locale="en", content_type="articles", search_title="refund"), then crisp(op="helpdesk_content", locale="en", content_type="articles", tree_path="…")
  • · personal data, channels, limits
  • ⚠️ conversations, messages and contacts may carry personal or health data: read only what the task needs, and do not look a person up by name or phone number unless the task requires it
  • the channel of a conversation is meta.origin (chat, email or a urn): the list has no channel filter, an inbox whose conditions gather a channel does the job
  • no field says whether a channel's messaging window (such as WhatsApp's 24 hours) is open: the contact's last message is the latest one with from user
  • lists give neither a total nor a next page: page until a page comes back shorter than per_page
  • a website token is limited to 10,000 requests per day; a plan that does not include a resource answers 402
  • ⚙ multiple comptes

    this connector accepts multiple comptes: each stored credential becomes a named account (one name per compte), at your level, your team's or your org's.

  • the first one doesn't need a name; from the second on, each one carries its own (the first then takes the name "principal", renamable)
  • without specification, the agent takes the only stored compte, otherwise the one marked as default; otherwise the call is refused, naming the available comptes — never a random choice
  • target a compte for a call: _account="<name>" on the tool; list them: oto_identity(op='list', connector='crisp') (scope='org' or scope='group' for the org's or team's)
  • set the default: oto_identity(op='set', connector='crisp', identity_id='<name>'); rename: op='rename' with new_name
  • ⚠️ no tool walks through the comptes on its own: a total across several comptes is obtained by calling each one (_account) and adding up
  • outils

    chargement…

    utilisation

    claude code — installe le plugin oto — claude plugin marketplace add otomata-tech/oto-plugin — mcp + skill configurés.
    claude.ai — branche mcp.oto.cx/mcp en connecteur custom (guide)
    cli — pipx install oto-cli puis oto crisp …