---
title: "Create Ticket"
method: POST
path: "/v2/tickets"
tags: ["Ticket API"]
---

# Create Ticket

`POST /v2/tickets`

Create a new ticket.

## Request body

- SvhelpPublicapiCreateTicketRequest
  - `teamId` string
  - `name` string
  - `description` string
  - `createdByUserId` string
  - `createdAt` string, date-time — A timestamp in RFC 3339 format (e.g., "2025-01-15T01:30:15Z").
  - `assignedToUserId` string, nullable
  - `parentTicketId` string, nullable — Optional. The ID of the parent ticket (this is a special relationship type)
  - `channelSyncTargets` SvhelpPubapimodelsChannelSyncTarget[] — Note that these are ADDITIONAL sync targets. There may be some "default" sync targets for the team (e.g. ServiceNow, JSM etc).
    - union
      - object
        - `email` SvhelpPubapimodelsEmailTarget, required
          - `targetUserType` 'CHANNEL_SYNC_USER_TYPE_UNSPECIFIED' | 'CHANNEL_SYNC_TARGET_USER_TICKET_ASSIGNEE' | 'CHANNEL_SYNC_TARGET_USER_TICKET_REQUESTOR'
      - object
        - `microsoftTeamsDm` SvhelpPubapimodelsMicrosoftTeamsDMTarget, required
          - `targetUserType` 'CHANNEL_SYNC_USER_TYPE_UNSPECIFIED' | 'CHANNEL_SYNC_TARGET_USER_TICKET_ASSIGNEE' | 'CHANNEL_SYNC_TARGET_USER_TICKET_REQUESTOR'
      - object
        - `slackDm` SvhelpPubapimodelsSlackDMTarget, required
          - `targetUserType` 'CHANNEL_SYNC_USER_TYPE_UNSPECIFIED' | 'CHANNEL_SYNC_TARGET_USER_TICKET_ASSIGNEE' | 'CHANNEL_SYNC_TARGET_USER_TICKET_REQUESTOR'
  - `aiActive` boolean, nullable — Optional. Whether AI is active for this ticket. Defaults to false. When true, Serval's AI will respond to messages on this ticket. When false, AI will not respond even if the ticket is at the AI escalation level.
  - `type` 'TICKET_TYPE_UNSPECIFIED' | 'TICKET_TYPE_REQUEST' | 'TICKET_TYPE_TASK' | 'TICKET_TYPE_MAJOR_INCIDENT' | 'TICKET_TYPE_CONVERSATION' | 'TICKET_TYPE_JOURNEY' | 'TICKET_TYPE_JOURNEY_CONVERSATION' | 'TICKET_TYPE_INCIDENT' | 'TICKET_TYPE_CHANGE' | 'TICKET_TYPE_CUSTOM'
  - `workflowRelationship` SvhelpPubapimodelsWorkflowRelationship — Represents a workflow relationship on a ticket.
    - `workflowId` string — The workflow ID.
    - `relationshipType` 'WORKFLOW_RELATIONSHIP_TYPE_UNSPECIFIED' | 'WORKFLOW_RELATIONSHIP_TYPE_REQUIRED' | 'WORKFLOW_RELATIONSHIP_TYPE_STATUS_CHECK' — The type of relationship between a ticket and a workflow.
    - `initialInputData` object — Optional initial input data to pre-populate workflow form fields. Keys are parameter names, values describe how to resolve the initial value. These become the workflow call's arguments (default values for the form).
    - `allowAssigneeRetry` boolean — Whether the journey-assigned user is allowed to retry this workflow if it fails. Defaults to false (only team members can retry).
    - `pollingIntervalMs` union — Required when relationship_type is STATUS_CHECK. Interval in milliseconds between polls.
      - integer
      - string, int64
    - `timeoutMs` union — Optional deadline in milliseconds from the first poll. The status check auto-fails after this time.
      - integer
      - string, int64
    - `autoSubmitInputs` boolean — When true, the workflow runs automatically once dependencies are met instead of waiting for a person. Only valid for REQUIRED relationships whose initial_input_data covers every required parameter.
  - `ticketRelationships` SvhelpPublicapiCreateTicketRelationshipInput[] — Optional. Relationships to create with other tickets. For example, to indicate this ticket depends on another ticket.
    - `ticketId` string — The ID of the related ticket (must already exist).
    - `relationshipType` 'TICKET_RELATIONSHIP_TYPE_UNSPECIFIED' | 'TICKET_RELATIONSHIP_TYPE_DUPLICATE' | 'TICKET_RELATIONSHIP_TYPE_LINKED' | 'TICKET_RELATIONSHIP_TYPE_PARENT' | 'TICKET_RELATIONSHIP_TYPE_DEPENDS_ON' | 'TICKET_RELATIONSHIP_TYPE_CONVERSATION_THREAD' — TicketRelationshipType represents the type of relationship between two tickets
  - `requesterUserId` string, nullable — Optional. The ID of the user this ticket is created on behalf of (the requester). Defaults to created_by_user_id if not provided. Use this when creating a ticket on behalf of someone else, e.g., when creating child tasks in a journey where the requester should be the journey's requester.
  - `dueDate` GoogleTypeDate — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * [google.type.TimeOfDay][google.type.TimeOfDay] * [google.type.DateTime][google.type.DateTime] * [google.protobuf.Timestamp][google.protobuf.Timestamp]
    - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
    - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
    - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
  - `waitUntil` string, date-time — A timestamp in RFC 3339 format (e.g., "2025-01-15T01:30:15Z").
  - `nameTranslations` object — Per-language translations. Key = BCP 47 language code, value = translated string.
  - `descriptionTranslations` object
  - `ticketSubtype` string, nullable — Optional. The subtype of the ticket (e.g. "normal", "standard", "emergency" for CHANGE tickets). Must correspond to a configured ticket model for the given team and type.

## Response `200`

Success

- SvhelpPublicapiCreateTicketResponse
  - `data` SvhelpPubapimodelsTicket
    - `id` string — The ID of the Serval ticket.
    - `friendlyIdentifier` string — A friendly identifier for the ticket. This is a unique identifier for the ticket that is displayed to the user. It is a combination of the team prefix (configured in Settings > Organization Settings > Teams) and the ticket number. Example: For the Acme team's 10th ticket, the friendly identifier is "ACM-10".
    - `teamId` string — The ID of the team that the ticket belongs to.
    - `name` string — A name or title for the ticket.
    - `description` string — A description of the ticket.
    - `createdAt` string, date-time — A timestamp in RFC 3339 format (e.g., "2025-01-15T01:30:15Z").
    - `completedAt` string, date-time — A timestamp in RFC 3339 format (e.g., "2025-01-15T01:30:15Z").
    - `escalatedAt` string, date-time — A timestamp in RFC 3339 format (e.g., "2025-01-15T01:30:15Z").
    - `createdByUserId` string — The ID of the user who created the ticket.
    - `assignedToUserId` string, nullable — The ID of the user who is assigned to the ticket. Optional if the ticket is not assigned to a user.
    - `requesterUserId` string — The ID of the user this ticket was created on behalf of (the requester).
    - `statusId` string — The ID of the status option for the ticket.
    - `escalationLevel` 'AI' | 'HUMAN'
    - `priorityId` string — The ID of the priority option for the ticket.
    - `slaStartedAt` string, date-time — A timestamp in RFC 3339 format (e.g., "2025-01-15T01:30:15Z").
    - `slaBreachesAt` string, date-time — A timestamp in RFC 3339 format (e.g., "2025-01-15T01:30:15Z").
    - `labelIds` string[] — List of label IDs for the ticket.
    - `type` 'TICKET_TYPE_UNSPECIFIED' | 'TICKET_TYPE_REQUEST' | 'TICKET_TYPE_TASK' | 'TICKET_TYPE_MAJOR_INCIDENT' | 'TICKET_TYPE_CONVERSATION' | 'TICKET_TYPE_JOURNEY' | 'TICKET_TYPE_JOURNEY_CONVERSATION' | 'TICKET_TYPE_INCIDENT' | 'TICKET_TYPE_CHANGE' | 'TICKET_TYPE_CUSTOM'
    - `dueDate` GoogleTypeDate — Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * [google.type.TimeOfDay][google.type.TimeOfDay] * [google.type.DateTime][google.type.DateTime] * [google.protobuf.Timestamp][google.protobuf.Timestamp]
      - `year` integer — Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
      - `month` integer — Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
      - `day` integer — Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
    - `isOverdue` boolean — True if the due date has passed (computed server-side).
    - `childTicketIds` string[] — IDs of child (task) tickets under this ticket.
    - `linkedTicketIds` string[] — IDs of tickets linked to this ticket.
    - `duplicateTicketIds` string[] — IDs of tickets marked as duplicates of this ticket.
    - `dependsOnTicketIds` string[] — IDs of tickets that this ticket depends on.
    - `parentTicketId` string, nullable — The ID of this ticket's parent ticket. Only set for task tickets that have a parent.
    - `conversationThreadTicketIds` string[] — IDs of conversation thread tickets on this ticket.
    - `conversationThreadParentTicketId` string, nullable — The ID of the main ticket this thread belongs to. Only set for conversation thread tickets.
    - `nameTranslations` object — Per-language translations for the ticket name. Key = BCP 47 language code.
    - `descriptionTranslations` object — Per-language translations for the ticket description. Key = BCP 47 language code.
    - `categoryOptionId` string, nullable — The ID of the category option currently set on the ticket. May be a top-level category or a nested subcategory. Absent when the ticket has no category.

## Other responses

- `default` — Error

---

[API](https://skmtc.net/serval/apis/serval-public-api.md) · [All operations](https://skmtc.net/serval/apis/serval-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/serval/serval-public-api/versions/0549515e9384/schema)
