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):
- Process runtime overrides via
CredentialStore.set(...). - Env var
CONCINNO_CRED_<UPPER_KEY>. ~/.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
commentbody ≤ 50 000 chars. - Intercom
body≤ 10 000 chars.
License
Apache-2.0. See LICENSE in the Concinno monorepo.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4809f27197d63709d4025d6697e3553668cfa1085be7989acfc9ef75a11646f8
|
|
| MD5 |
adce02fed8e84be9f87d967360d18ce0
|
|
| BLAKE2b-256 |
4fb4722a7fa7e5a07ce725a4ba50c398ebdb1d8c06aeda4d214d0d81ad071657
|
File details
Details for the file concinno_skills_support-0.1.0-py3-none-any.whl.
File metadata
- Download URL: concinno_skills_support-0.1.0-py3-none-any.whl
- Upload date:
- Size: 16.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6658805e170cbc4cd18bcebb0d7639db08cc476a20b6ae7825288f68185eae3
|
|
| MD5 |
948c5b67b710997ebc914f928095375a
|
|
| BLAKE2b-256 |
af5b43304469f8abf6354233079a89aaa7f5b5e82186de2beb1764dcb50c4dda
|