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

# Save test feedback (temperature check) on a sage

> Records the user's subjective assessment of a sage after testing.
Stores comfort level, ease rating, and optional comments in the
sage's post meta (`ss_temperature_*` fields).

**Permission:** `ss_admin_all` or user's `council_id` must match the
sage's council.

Registered as `wp_ajax_sagescreen_save_temperature_check` — **login required**.




## OpenAPI

````yaml /openapi/private/specs/wp/screen.yml post /wp-admin/admin-ajax.php?action=sagescreen_save_temperature_check
openapi: 3.1.0
info:
  title: SageScreen — Screen Module
  description: |
    Screen (interview) lifecycle management. A screen represents a single
    candidate screening session — from invite creation through completion,
    results generation, and PDF download.

    **CPT:** `ss_screen`
    **Custom statuses:** `ss_draft`, `ss_invited`, `ss_accepted`, `ss_started`,
    `ss_completed`, `ss_closed`, `ss_cancelled`, `ss_expired`

    Screens are created when candidates are invited to a sage, progress through
    the interview, and conclude with AI-generated results including category
    scores, a summary, recommendation, and a hire/no-hire determination.
  version: 1.0.0
servers:
  - url: https://{domain}/wp-json/sagescreen/v1
    description: WordPress REST API
    variables:
      domain:
        default: api.sagescreen.app
security: []
tags:
  - name: Screen – Testing
    description: Test invite and temperature check endpoints
  - name: Screen – Results
    description: Results generation, checking, regeneration, feedback, and download
  - name: Screen – Workflow
    description: Workflow progression (skip testing)
paths:
  /wp-admin/admin-ajax.php?action=sagescreen_save_temperature_check:
    post:
      tags:
        - Screen – Testing
      summary: Save test feedback (temperature check) on a sage
      description: >
        Records the user's subjective assessment of a sage after testing.

        Stores comfort level, ease rating, and optional comments in the

        sage's post meta (`ss_temperature_*` fields).


        **Permission:** `ss_admin_all` or user's `council_id` must match the

        sage's council.


        Registered as `wp_ajax_sagescreen_save_temperature_check` — **login
        required**.
      operationId: ajaxSaveTemperatureCheck
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SaveTemperatureCheckRequest'
      responses:
        '200':
          description: Temperature check result
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SaveTemperatureCheckSuccess'
                  - $ref: '#/components/schemas/AjaxErrorResponse'
              examples:
                success:
                  summary: Temperature check saved
                  value:
                    success: true
                    message: Temperature check saved successfully
                    data:
                      sage_id: 1234
                      temperature_data:
                        comfort_level: very_comfortable
                        ease_level: 4
                        comments: The sage handled technical questions well.
                        submitted_at: '2026-02-19 14:30:00'
                        submitted_by: 42
                invalidComfort:
                  summary: Invalid comfort level
                  value:
                    success: false
                    message: Invalid comfort level
                invalidEase:
                  summary: Invalid ease level
                  value:
                    success: false
                    message: Invalid ease level
                permissionDenied:
                  summary: User lacks council access
                  value:
                    success: false
                    message: You do not have permission to access this sage
      security:
        - wpAjaxNonce: []
components:
  schemas:
    SaveTemperatureCheckRequest:
      type: object
      required:
        - action
        - nonce
        - sage_id
        - comfort_level
        - ease_level
      properties:
        action:
          type: string
          const: sagescreen_save_temperature_check
        nonce:
          type: string
          description: WP nonce for `sagescreen_frontend_nonce`
          examples:
            - abc123def456
        sage_id:
          type: integer
          description: Post ID of the `ss_council_sage`
          examples:
            - 1234
        comfort_level:
          $ref: '#/components/schemas/ComfortLevel'
        ease_level:
          type: integer
          minimum: 1
          maximum: 5
          description: Ease of use rating (1 = very difficult, 5 = very easy)
          examples:
            - 4
        comments:
          type: string
          maxLength: 10000
          description: Optional free-text comments about the testing experience
          examples:
            - The sage handled technical questions well.
    SaveTemperatureCheckSuccess:
      type: object
      properties:
        success:
          type: boolean
          const: true
        message:
          type: string
          examples:
            - Temperature check saved successfully
        data:
          type: object
          required:
            - sage_id
            - temperature_data
          properties:
            sage_id:
              type: integer
              examples:
                - 1234
            temperature_data:
              type: object
              description: The saved temperature check data
              properties:
                comfort_level:
                  $ref: '#/components/schemas/ComfortLevel'
                ease_level:
                  type: integer
                  description: Ease rating (1-5)
                  examples:
                    - 4
                comments:
                  type: string
                  examples:
                    - The sage handled technical questions well.
                submitted_at:
                  type: string
                  description: MySQL datetime of submission
                  examples:
                    - '2026-02-19 14:30:00'
                submitted_by:
                  type: integer
                  description: WordPress user ID who submitted
                  examples:
                    - 42
    AjaxErrorResponse:
      type: object
      description: |
        Standard AJAX error. The `data` field is either a plain string
        or an object with a `message` field.
      properties:
        success:
          type: boolean
          const: false
        data:
          oneOf:
            - type: string
              description: Error message as plain string
              examples:
                - Security check failed
            - type: object
              properties:
                message:
                  type: string
                  examples:
                    - Screen ID is required
        message:
          type: string
          description: |
            Present on some endpoints that use `wp_send_json()` directly
            instead of `wp_send_json_error()`.
          examples:
            - Security check failed
    ComfortLevel:
      type: string
      enum:
        - not_comfortable
        - neutral
        - very_comfortable
      description: Subjective comfort level for temperature check
      examples:
        - very_comfortable
  securitySchemes:
    wpAjaxNonce:
      type: apiKey
      in: query
      name: nonce
      description: WordPress AJAX nonce (passed as form field, verified per-action)

````