Skip to main content

Customer support agent skills (Zendesk + Intercom) for Concinno — Databricks 2026 #1 enterprise landing use case.

Project description

concinno-skills-support

Customer-support agent skills for Concinno. Targets the Databricks 2026 #1 enterprise landing use case (customer service: finance 23% / retail 27%). Native Python REST wrappers, Apache-2.0 / MIT SDKs only — we deliberately avoid zenpy (GPL-3.0) to keep the Concinno ecosystem copy-left-free.

Status

MVP (0.1.0) — three one-shot tools:

Tool class Platform Underlying transport Licence
ZendeskTicket Zendesk httpx (REST v2) Apache-2.0
ZendeskSearch Zendesk httpx (REST v2) Apache-2.0
IntercomMessage Intercom httpx (REST) Apache-2.0

Both platforms are reached via Concinno's existing httpx main dependency; this package therefore adds zero additional runtime dependencies beyond Concinno itself.

Install

pip install concinno-skills-support

Credentials

Each platform's credentials live under well-known keys in the Concinno CredentialStore, which reads (in order):

  1. Process runtime overrides via CredentialStore.set(...).
  2. Env var CONCINNO_CRED_<UPPER_KEY>.
  3. ~/.concinno/credentials.json.

Zendesk

Two supported auth shapes (OAuth is tried first):

Key Env var
zendesk_subdomain CONCINNO_CRED_ZENDESK_SUBDOMAIN
zendesk_email CONCINNO_CRED_ZENDESK_EMAIL
zendesk_api_token CONCINNO_CRED_ZENDESK_API_TOKEN
zendesk_oauth_token CONCINNO_CRED_ZENDESK_OAUTH_TOKEN

API-token auth uses the official {email}/token:{api_token} Basic-auth format documented by Zendesk.

Intercom

Key Env var
intercom_access_token CONCINNO_CRED_INTERCOM_ACCESS_TOKEN

Example ~/.concinno/credentials.json:

{
  "zendesk_subdomain": "acme",
  "zendesk_email": "agent@acme.com",
  "zendesk_api_token": "…",
  "intercom_access_token": "dG9rZW4="
}

If a token is missing the tool returns {"error": "no <service> credentials — set via CredentialStore / env"} rather than crashing.

Usage via Concinno ToolRegistry

When the consumer sets CONCINNO_LOAD_PLUGINS=1, the default registry auto-mounts every support tool:

import os
os.environ["CONCINNO_LOAD_PLUGINS"] = "1"

from concinno.tools.registry import get_default_registry

reg = get_default_registry()
assert {"ZendeskTicket", "ZendeskSearch", "IntercomMessage"} <= set(
    reg.list_deferred()
)

ticket = reg.get("ZendeskTicket")
ticket.call(action="list", status="open", limit=20)

Direct Python usage

from concinno_skills_support import (
    ZendeskTicket,
    ZendeskSearch,
    IntercomMessage,
)

ZendeskTicket().call(action="list", status="open", limit=50)
ZendeskTicket().call(
    action="create",
    subject="Login broken",
    comment="Customer reports 401 on sign-in",
    requester_email="user@example.com",
    priority="urgent",
)
ZendeskSearch().call(
    action="search", query="status:open priority:urgent", limit=25
)
IntercomMessage().call(
    action="send",
    conversation_id="conv-42",
    body="We're on it — thanks for flagging.",
    admin_id="admin-7",
)

All tools return {"ok": True, ...} or a structured payload on success, or {"error": "..."} on failure — same shape as the other Concinno built-in tools. No exceptions escape the call() surface.

Concurrency

All three tools set is_concurrency_safe = False. Both Zendesk and Intercom enforce tenant-scoped rate limits, and ticket/conversation mutation is order-sensitive. The Concinno scheduler will honour this automatically.

Safety caps

  • Zendesk search query500 chars.
  • Zendesk ticket comment body ≤ 50 000 chars.
  • Intercom body10 000 chars.

License

Apache-2.0. See LICENSE in the Concinno monorepo.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

concinno_skills_support-0.1.0.tar.gz (41.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

concinno_skills_support-0.1.0-py3-none-any.whl (16.1 kB view details)

Uploaded Python 3

File details

Details for the file concinno_skills_support-0.1.0.tar.gz.

File metadata

  • Download URL: concinno_skills_support-0.1.0.tar.gz
  • Upload date:
  • Size: 41.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for concinno_skills_support-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4809f27197d63709d4025d6697e3553668cfa1085be7989acfc9ef75a11646f8
MD5 adce02fed8e84be9f87d967360d18ce0
BLAKE2b-256 4fb4722a7fa7e5a07ce725a4ba50c398ebdb1d8c06aeda4d214d0d81ad071657

See more details on using hashes here.

File details

Details for the file concinno_skills_support-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for concinno_skills_support-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d6658805e170cbc4cd18bcebb0d7639db08cc476a20b6ae7825288f68185eae3
MD5 948c5b67b710997ebc914f928095375a
BLAKE2b-256 af5b43304469f8abf6354233079a89aaa7f5b5e82186de2beb1764dcb50c4dda

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page