Ticket System Integration

Connect OTAI Runtime to OTOBO, Znuny, or Zammad via environment variables and the TicketSystemService adapter contract.

Ticket System Integration

OTAI Runtime v3 connects to one ticket system at a time. Select the connector with OTAI_TICKET_SYSTEM_TYPE and set the matching credentials as environment variables.

Environment variables

VariableDefaultDescription
OTAI_TICKET_SYSTEM_TYPEotobootobo, znuny, or zammad
OTAI_OTOBO_BASE_URLlocal GI URLOTOBO Generic Interface base URL
OTAI_OTOBO_USERNAMEopen_ticket_aiOTOBO API user
OTAI_OTOBO_PASSWORDOTOBO API password (required when type=otobo)
OTAI_ZNUNY_BASE_URLlocal GI URLZnuny Generic Interface base URL
OTAI_ZNUNY_USERNAMEopen_ticket_aiZnuny API user
OTAI_ZNUNY_PASSWORDZnuny API password (required when type=znuny)
OTAI_ZAMMAD_BASE_URLZammad instance URL (required when type=zammad)
OTAI_ZAMMAD_ACCESS_TOKENZammad personal access token (required when type=zammad)

OTOBO / Znuny

Use the Generic Interface REST webservice. Create user open_ticket_ai, import the restricted webservice YAML, and grant queue/priority/note permissions. See the OTOBO / Znuny setup guide for step-by-step instructions.

Zammad

Create a personal access token for a dedicated agent account with the permissions your workflows need (read tickets, change queue/priority, update custom fields). Set OTAI_ZAMMAD_BASE_URL to your instance root (for example https://helpdesk.example.com/).

TicketSystemService contract

All connectors implement TicketSystemService and return UnifiedTicket data:

  • find_tickets — search by criteria
  • find_first_ticket — return the first match
  • get_ticket — fetch one ticket by ID
  • create_ticket — create a ticket
  • update_ticket — update queue, priority, fields
  • add_note — add an internal or public note

Implementations live in the runtime package:

  • otobo / znuny — Generic Interface adapter
  • zammad — Zammad REST API adapter

Workflow polling

The runtime polls the configured ticket system every OTAI_RUNNER_INTERVAL seconds (default 30) and runs active workflows (queue_classification, priority_classification, ticket_summary). Activate workflows via OTAI Studio or the REST API at http://localhost:8080/api/workflows/{name}.