Skip to main content

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 query ≤ 500 chars.
  • Zendesk ticket comment body ≤ 50 000 chars.
  • Intercom body ≤ 10 000 chars.

License

Apache-2.0. See LICENSE in the Concinno monorepo.

Metadata

Release files for concinno-skills-support 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for concinno-skills-support 0.1.0
File Size Uploaded
concinno_skills_support-0.1.0.tar.gz 41.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for concinno-skills-support 0.1.0
File Interpreter ABI Platform
concinno_skills_support-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 57.6 kB

Release files / concinno_skills_support-0.1.0.tar.gz

Download URL concinno_skills_support-0.1.0.tar.gz
Size 41.6 kB
Tags Source
SHA-256 checksum
How to use checksums
4809f27197d63709d4025d6697e3553668cfa1085be7989acfc9ef75a11646f8
BLAKE2b-256 checksum
How to use checksums
4fb4722a7fa7e5a07ce725a4ba50c398ebdb1d8c06aeda4d214d0d81ad071657
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / concinno_skills_support-0.1.0-py3-none-any.whl

Download URL concinno_skills_support-0.1.0-py3-none-any.whl
Size 16.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d6658805e170cbc4cd18bcebb0d7639db08cc476a20b6ae7825288f68185eae3
BLAKE2b-256 checksum
How to use checksums
af5b43304469f8abf6354233079a89aaa7f5b5e82186de2beb1764dcb50c4dda
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page