> ## Documentation Index
> Fetch the complete documentation index at: https://docs.neoagent.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Turn the Neo panel on ServiceNow ticket forms on or off

> `{"enabled": true}` installs Neo's panel records in the tenant's ServiceNow, or sets them right, and puts the panel on the form of every supported ticket type. It is safe to repeat and keeps the signing secret. `{"enabled": false}` deletes the records and the signing secret; enabling again makes a new one. Neo makes the signing secret; no request carries one. Needs a tenant admin, and Neo's ServiceNow account needs the `admin` role. Returns the new state. `400` on any other body; `403` without an admin; `404 integration_not_connected` when the tenant's connected PSA is not ServiceNow; `409 servicenow_neo_panel_refused` with `details.reason` `PERMISSION` (Neo's ServiceNow account lacks the admin role; the message says how to add it), `OTHER_TENANT` (another Neo account owns the panel in this ServiceNow), `CUSTOM_DOMAIN` (the ServiceNow address does not end in .service-now.com), `SECRET_NOT_APPLIED` (Neo could not make every server use a new or revoked secret and changed nothing in ServiceNow; try again in a minute) or `SERVICENOW_REFUSED`. Writes are limited per tenant (`429` over the limit).



## OpenAPI

````yaml https://api.neoagent.io/public-api/openapi.json put /public-api/integrations/servicenow-neo-panel
openapi: 3.1.0
info:
  description: >-
    Neo's public contract for the dashboard ChatAgent, partner integrations, and
    MSP automation. Every response is wrapped in a `{data, meta}` envelope;
    errors use `{error: {code, message, details?}, meta: {request_id}}`.
    Authenticate with a `Bearer neo_sk_<env>_<secret>` API key (service account)
    or a Microsoft Entra ID JWT (dashboard user). Signed-URL endpoints (end-user
    feedback links) take a `signature` query parameter instead.
  title: Neo Public API
  version: 1.0.0
servers:
  - url: https://api.neoagent.io
security: []
tags:
  - description: Service metadata — health, OpenAPI.
    name: Meta
  - description: Agents and workflows — read, version history, delete, stats.
    name: Agents
  - description: Agent/workflow execution history, sub-resources, retry/cancel.
    name: Executions
  - description: >-
      Every tool call the tenant's agents made in the last 30 days, within the
      caller's workflow access.
    name: Audit Log
  - description: PSA webhook events and their workflow-match results.
    name: Callbacks
  - description: Technician-in-the-loop approval requests.
    name: TIL requests
  - description: RMM script executions triggered by agents.
    name: RMM scripts
  - description: Dispatch-agent field-update decisions.
    name: Dispatch
  - description: The authenticated tenant.
    name: Tenant
  - description: Agent-builder schema catalogs (raw JSON payloads).
    name: Schemas
  - description: Escalate to the Neo team (HubSpot ticket).
    name: Escalation
  - description: Tenant settings.
    name: Settings
  - description: Tenant API-key management (dashboard JWT only).
    name: API keys
  - description: End-user feedback links (signed-URL auth).
    name: Feedback
  - description: End-client companies (CRUD + bulk-update).
    name: End companies
  - description: Channels — bind a CONVERSATIONAL agent to a transport (Teams or Slack).
    name: Channels
  - description: PSA/RMM/M365 integration status and connection management.
    name: Integrations
  - description: Technician roster (controls TIL routing and paging).
    name: Technicians
  - description: Future runs queued for TRIGGERED agents.
    name: Scheduled work
  - description: Subscription state and customer-facing credit usage (no provider $).
    name: Billing
  - description: Inbox messages and announcements.
    name: Inbox & Comms
  - description: Tenant-authored agent skills (CRUD) and the built-in skill catalog.
    name: Skills
paths:
  /public-api/integrations/servicenow-neo-panel:
    put:
      tags:
        - Integrations
      summary: Turn the Neo panel on ServiceNow ticket forms on or off
      description: >-
        `{"enabled": true}` installs Neo's panel records in the tenant's
        ServiceNow, or sets them right, and puts the panel on the form of every
        supported ticket type. It is safe to repeat and keeps the signing
        secret. `{"enabled": false}` deletes the records and the signing secret;
        enabling again makes a new one. Neo makes the signing secret; no request
        carries one. Needs a tenant admin, and Neo's ServiceNow account needs
        the `admin` role. Returns the new state. `400` on any other body; `403`
        without an admin; `404 integration_not_connected` when the tenant's
        connected PSA is not ServiceNow; `409 servicenow_neo_panel_refused` with
        `details.reason` `PERMISSION` (Neo's ServiceNow account lacks the admin
        role; the message says how to add it), `OTHER_TENANT` (another Neo
        account owns the panel in this ServiceNow), `CUSTOM_DOMAIN` (the
        ServiceNow address does not end in .service-now.com),
        `SECRET_NOT_APPLIED` (Neo could not make every server use a new or
        revoked secret and changed nothing in ServiceNow; try again in a minute)
        or `SERVICENOW_REFUSED`. Writes are limited per tenant (`429` over the
        limit).
      operationId: public_api.servicenow_neo_panel_update_put
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicServiceNowNeoPanelUpdate'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/PublicServiceNowNeoPanel'
                  meta:
                    $ref: '#/components/schemas/SuccessMeta'
                required:
                  - data
                  - meta
                type: object
          description: Success.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Bad request — malformed input.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Unauthenticated — missing or invalid credentials.
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Forbidden — authenticated but not allowed.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Not found.
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Conflict — the resource is in a state that blocks this operation.
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Request validation failed.
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Rate limited — see Retry-After.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
          description: Internal server error.
      security:
        - bearerAuth: []
components:
  schemas:
    PublicServiceNowNeoPanelUpdate:
      properties:
        enabled:
          title: Enabled
          type: boolean
      required:
        - enabled
      title: PublicServiceNowNeoPanelUpdate
      type: object
    PublicServiceNowNeoPanel:
      properties:
        checkable:
          title: Checkable
          type: boolean
        enabled:
          title: Enabled
          type: boolean
        installed:
          title: Installed
          type: boolean
        no_form:
          items:
            type: string
          title: No Form
          type: array
        shown_on:
          items:
            type: string
          title: Shown On
          type: array
        up_to_date:
          title: Up To Date
          type: boolean
      required:
        - enabled
        - installed
        - up_to_date
        - shown_on
        - no_form
        - checkable
      title: PublicServiceNowNeoPanel
      type: object
    SuccessMeta:
      properties:
        pagination:
          $ref: '#/components/schemas/Pagination'
        request_id:
          format: uuid
          type: string
        timings_ms:
          additionalProperties:
            type: number
          type: object
        warnings:
          description: >-
            Non-fatal warnings about the created/updated resource (e.g. an
            unhealthy PSA callback).
          items:
            type: string
          type: array
      required:
        - request_id
        - timings_ms
      type: object
    ErrorEnvelope:
      properties:
        error:
          properties:
            code:
              description: Stable machine-readable error code.
              type: string
            details:
              additionalProperties: true
              type: object
            message:
              type: string
          required:
            - code
            - message
          type: object
        meta:
          properties:
            request_id:
              format: uuid
              type:
                - string
                - 'null'
          type: object
      required:
        - error
        - meta
      type: object
    Pagination:
      properties:
        has_more:
          type: boolean
        next_cursor:
          type:
            - string
            - 'null'
      required:
        - next_cursor
        - has_more
      type: object
  securitySchemes:
    bearerAuth:
      description: >-
        `Authorization: Bearer <token>` where `<token>` is either a
        `neo_sk_<env>_<secret>` API key (service account) or a Microsoft Entra
        ID access token (dashboard user).
      scheme: bearer
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.