← Back to templates

Support Tickets

support

Customer support tickets with response tracking and SLA management.

Collections

Tickets

Support tickets and requests

Schema Fields

subject:stringdescription:stringstatus:stringpriority:stringcategory:stringassignee:stringchannel:stringtags:array

Customers

Customer profiles

Schema Fields

name:stringemail:stringplan:stringcompany:string

Responses

Ticket replies and internal notes

Schema Fields

body:stringtype:stringauthor:stringtimestamp:string

Relationships

tickets
submitted_by
customersTicket submitted by customer
tickets
has_response
responsesTicket has response
tickets
related_to
ticketsRelated tickets

Quick Start

Create the collections using the Rekor CLI:

rekor collections upsert tickets --workspace my-support --schema @tickets.json

Full Schema (JSON)

Copy the complete template definition:

{
  "collections": [
    {
      "id": "tickets",
      "name": "Tickets",
      "description": "Support tickets and requests",
      "icon": "ticket",
      "color": "#ef4444",
      "json_schema": {
        "type": "object",
        "required": [
          "subject",
          "status",
          "priority"
        ],
        "properties": {
          "subject": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "open",
              "in_progress",
              "waiting",
              "resolved",
              "closed"
            ]
          },
          "priority": {
            "type": "string",
            "enum": [
              "low",
              "medium",
              "high",
              "urgent"
            ]
          },
          "category": {
            "type": "string",
            "enum": [
              "bug",
              "feature_request",
              "question",
              "billing",
              "other"
            ]
          },
          "assignee": {
            "type": "string"
          },
          "channel": {
            "type": "string",
            "enum": [
              "email",
              "chat",
              "phone",
              "web"
            ]
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    },
    {
      "id": "customers",
      "name": "Customers",
      "description": "Customer profiles",
      "icon": "user",
      "color": "#3b82f6",
      "json_schema": {
        "type": "object",
        "required": [
          "name",
          "email"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "plan": {
            "type": "string",
            "enum": [
              "free",
              "pro",
              "enterprise"
            ]
          },
          "company": {
            "type": "string"
          }
        }
      }
    },
    {
      "id": "responses",
      "name": "Responses",
      "description": "Ticket replies and internal notes",
      "icon": "message-square",
      "color": "#22c55e",
      "json_schema": {
        "type": "object",
        "required": [
          "body",
          "type"
        ],
        "properties": {
          "body": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "reply",
              "internal_note"
            ]
          },
          "author": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        }
      }
    }
  ],
  "relationships": [
    {
      "type": "submitted_by",
      "source": "tickets",
      "target": "customers",
      "description": "Ticket submitted by customer"
    },
    {
      "type": "has_response",
      "source": "tickets",
      "target": "responses",
      "description": "Ticket has response"
    },
    {
      "type": "related_to",
      "source": "tickets",
      "target": "tickets",
      "description": "Related tickets"
    }
  ]
}