{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/frontapp/main/json-schema/frontapp-application-message-template-schema.json",
  "title": "ApplicationMessageTemplate",
  "x-generated": "2026-10-14",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/frontapp-channel-api-openapi.yml#/components/schemas/ApplicationMessageTemplate",
  "required": [
    "external_id",
    "name",
    "blurb",
    "is_disabled",
    "status_name",
    "variable_mappings",
    "template_preview"
  ],
  "allOf": [
    {
      "$ref": "#/$defs/ApplicationMessageTemplateEditBlob"
    },
    {
      "type": "object",
      "properties": {
        "external_id": {
          "type": "string"
        }
      }
    }
  ],
  "$defs": {
    "ApplicationMessageTemplateEditBlob": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the message template."
        },
        "blurb": {
          "type": "string",
          "description": "A limited preview of the message template content."
        },
        "is_disabled": {
          "type": "boolean",
          "description": "Whether the message template is enabled for use in the external service."
        },
        "status_name": {
          "type": "string",
          "description": "Either \"PENDING\", \"APPROVED\", or \"REJECTED\". This value helps admins understand why a template may be enabled or disabled in the external service."
        },
        "variable_mappings": {
          "type": "array",
          "description": "List of variable mappings",
          "items": {
            "type": "object",
            "required": [
              "uid",
              "type",
              "name"
            ],
            "properties": {
              "uid": {
                "type": "string",
                "description": "Value of the variable"
              },
              "name": {
                "type": "string",
                "description": "Name of the variable"
              },
              "type": {
                "type": "string",
                "description": "Type of the variable"
              }
            }
          }
        },
        "template_preview": {
          "type": "string",
          "description": "Preview of the template"
        }
      }
    }
  }
}