Einstieg

Znuny Python SDK installieren und das erste Ticket über die GenericInterface REST API erstellen.

Einstieg — Znuny Python SDK

Webservice erforderlich. pip install znuny allein reicht nicht. Zuerst GenericInterface REST auf dem Znuny-Server einrichten — siehe Webservice einrichten.

pip install znuny
from znuny import ZnunyClient, BasicAuth, ClientConfig, TicketCreate, TicketOperation

Voraussetzungen

  • Znuny mit aktivem GenericInterface und REST-Webservice
  • Agent-Login mit Webservice-Berechtigung
  • Python 3.11+

Ohne Webservice: Webservice einrichtenznuny-cli setup-system auf dem Znuny-Server.

Znuny-Begriffe

Znuny-BegriffBedeutung für dieses SDK
WebserviceBenannte REST-Schnittstelle; ClientConfig.webservice_name muss übereinstimmen
OperationEine Ticket-Aktion (Create, Get, Search, Update); Eintrag in operation_url_map
Agent-LoginBenutzer für BasicAuth — benötigt Webservice-Berechtigung
QueueTicket-Eingang; z. B. IdName(name="Raw") in Modellen
Dynamic FieldBenutzerdefiniertes Ticketfeld; als dict[str, str] übergeben

Webservices konfigurieren Sie unter Admin → Web Services in Znuny, oder znuny-cli setup-system legt einen an.

Konfiguration

config = ClientConfig(
    base_url="https://your-znuny-server",
    webservice_name="PythonClientWebService",
    operation_url_map={
        TicketOperation.CREATE: "ticket-create",
        TicketOperation.GET: "ticket-get",
        TicketOperation.SEARCH: "ticket-search",
        TicketOperation.UPDATE: "ticket-update",
    },
)

client = ZnunyClient(config)
client.login(BasicAuth(user_login="agent1", password="secret"))

URLs folgen dem Znuny/OTRS-Muster: {base_url}/Webservice/{name}/{operation}

Ticket anlegen

import asyncio
from znuny import Article, IdName, TicketCreate

async def main() -> None:
    ticket = TicketCreate(
        title="Neue Anfrage",
        queue=IdName(name="Raw"),
        article=Article(subject="Hallo", body="Tickettext"),
    )
    async with client:
        created = await client.create_ticket(ticket)
        print(created.id)

asyncio.run(main())

CLI-Setup

znuny-cli setup-system

Verwendet standardmäßig otrs.Console.pl.

Weiterführend