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 query500 chars.
  • Zendesk ticket comment body ≤ 50 000 chars.
  • Intercom body10 000 chars.

License

Apache-2.0. See LICENSE in the Concinno monorepo.

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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

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