{
  "service": "gleap",
  "displayName": "Gleap",
  "categories": [
    "Communication",
    "Productivity"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "gleap_api_key",
      "description": "Gleap API key sent with the Authorization Bearer header. Create or view it in Project Settings > Security > API Key: https://docs.gleap.io/documentation/server/api-overview.",
      "extraFields": [
        {
          "key": "projectId",
          "label": "Project ID",
          "inputType": "text",
          "required": true,
          "secret": false,
          "placeholder": "gleap_project_id",
          "description": "Gleap project ID sent with the Project header. It is displayed next to the API key in Project Settings > Security > API Key: https://docs.gleap.io/documentation/server/api-overview."
        }
      ]
    }
  ],
  "homepageUrl": "https://www.gleap.io",
  "actions": [
    {
      "id": "gleap.create_contact",
      "service": "gleap",
      "name": "create_contact",
      "description": "Create a Gleap contact session in the connected project.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "minLength": 1,
            "description": "External user ID for the contact."
          },
          "email": {
            "type": "string",
            "description": "Contact email address.",
            "format": "email"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Contact display name."
          },
          "phone": {
            "type": "string",
            "minLength": 1,
            "description": "Contact phone number."
          },
          "avatar": {
            "type": "string",
            "description": "Contact avatar URL.",
            "format": "uri"
          },
          "companyId": {
            "type": "string",
            "minLength": 1,
            "description": "Company ID associated with the contact."
          },
          "companyName": {
            "type": "string",
            "minLength": 1,
            "description": "Company name associated with the contact."
          },
          "plan": {
            "type": "string",
            "minLength": 1,
            "description": "Plan name associated with the contact."
          },
          "value": {
            "type": "number",
            "description": "Numeric customer value associated with the contact."
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Tag name."
            },
            "description": "Tags associated with the Gleap resource.",
            "minItems": 1
          },
          "blocked": {
            "type": "boolean",
            "description": "Whether the contact is blocked."
          },
          "unsubscribed": {
            "type": "boolean",
            "description": "Whether the contact is unsubscribed."
          },
          "customData": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Custom data object accepted by Gleap."
          },
          "eventData": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Custom data object accepted by Gleap."
          }
        },
        "additionalProperties": false,
        "description": "Input for creating a Gleap contact session. Either userId or email is required.",
        "anyOf": [
          {
            "required": [
              "userId"
            ]
          },
          {
            "required": [
              "email"
            ]
          }
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "properties": {
              "_id": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Gleap document ID string."
                  },
                  {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "ObjectId-like value returned by Gleap."
                  }
                ],
                "description": "Gleap document ID as a string or ObjectId-like object."
              },
              "id": {
                "type": "string",
                "description": "Gleap session ID."
              },
              "userId": {
                "type": "string",
                "description": "External user ID associated with the contact."
              },
              "email": {
                "type": "string",
                "description": "Contact email address."
              },
              "name": {
                "type": "string",
                "description": "Contact display name."
              },
              "phone": {
                "type": "string",
                "description": "Contact phone number."
              },
              "avatar": {
                "type": "string",
                "description": "Contact avatar URL."
              },
              "companyId": {
                "type": "string",
                "description": "Company ID associated with the contact."
              },
              "companyName": {
                "type": "string",
                "description": "Company name associated with the contact."
              },
              "customData": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Custom data object accepted by Gleap."
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Tag name."
                },
                "description": "Tags associated with the Gleap resource."
              },
              "blocked": {
                "type": "boolean",
                "description": "Whether the contact is blocked."
              },
              "unsubscribed": {
                "type": "boolean",
                "description": "Whether the contact is unsubscribed."
              },
              "createdAt": {
                "type": "string",
                "description": "Timestamp when the contact was created."
              },
              "updatedAt": {
                "type": "string",
                "description": "Timestamp when the contact was last updated."
              },
              "lastActivity": {
                "type": "string",
                "description": "Timestamp of the contact's latest activity."
              }
            },
            "additionalProperties": true,
            "description": "Gleap contact session returned by the API."
          },
          "raw": {
            "description": "Raw payload returned by the official Gleap API."
          }
        },
        "additionalProperties": false,
        "required": [
          "contact",
          "raw"
        ],
        "description": "Created Gleap contact session response."
      }
    },
    {
      "id": "gleap.create_ticket",
      "service": "gleap",
      "name": "create_ticket",
      "description": "Create a Gleap ticket with native ticket fields.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "Ticket title."
          },
          "type": {
            "type": "string",
            "minLength": 1,
            "description": "Ticket type accepted by Gleap."
          },
          "status": {
            "type": "string",
            "minLength": 1,
            "description": "Ticket status accepted by Gleap."
          },
          "priority": {
            "type": "string",
            "enum": [
              "LOW",
              "MEDIUM",
              "HIGH"
            ],
            "description": "Ticket priority accepted by Gleap."
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "description": "Ticket description."
          },
          "plainContent": {
            "type": "string",
            "minLength": 1,
            "description": "Plain text ticket content."
          },
          "session": {
            "type": "string",
            "minLength": 1,
            "description": "Gleap session ID linked to the ticket."
          },
          "processingUser": {
            "type": "string",
            "minLength": 1,
            "description": "Gleap user ID assigned to the ticket."
          },
          "processingTeam": {
            "type": "string",
            "minLength": 1,
            "description": "Gleap team ID assigned to the ticket."
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Tag name."
            },
            "description": "Tags associated with the Gleap resource.",
            "minItems": 1
          },
          "formData": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Form data object accepted by Gleap."
          },
          "customData": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Custom data object accepted by Gleap."
          },
          "attributes": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Ticket attributes object accepted by Gleap."
          },
          "attachments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Attachment display name."
                },
                "url": {
                  "type": "string",
                  "description": "Publicly reachable attachment URL for Gleap to reference.",
                  "format": "uri"
                },
                "type": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Attachment MIME type or type label."
                }
              },
              "additionalProperties": false,
              "required": [
                "name",
                "url"
              ],
              "description": "Attachment object accepted by Gleap."
            },
            "description": "Ticket attachments accepted by Gleap.",
            "minItems": 1
          },
          "archived": {
            "type": "boolean",
            "description": "Whether the ticket is archived."
          },
          "isSpam": {
            "type": "boolean",
            "description": "Whether the ticket is marked as spam."
          },
          "preventAutoReply": {
            "type": "boolean",
            "description": "Whether Gleap should prevent automatic replies."
          }
        },
        "additionalProperties": false,
        "required": [
          "title"
        ],
        "description": "Input for creating a Gleap ticket."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "ticket": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Gleap ticket returned by the API."
          },
          "raw": {
            "description": "Raw payload returned by the official Gleap API."
          }
        },
        "additionalProperties": false,
        "required": [
          "ticket",
          "raw"
        ],
        "description": "Created Gleap ticket response."
      }
    },
    {
      "id": "gleap.create_ticket_with_message",
      "service": "gleap",
      "name": "create_ticket_with_message",
      "description": "Create a Gleap ticket with an optional initial message.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "minLength": 1,
            "description": "Ticket type accepted by Gleap."
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "Ticket title."
          },
          "message": {
            "type": "string",
            "minLength": 1,
            "description": "Initial ticket message."
          },
          "priority": {
            "type": "string",
            "minLength": 1,
            "description": "Ticket priority accepted by Gleap."
          },
          "status": {
            "type": "string",
            "minLength": 1,
            "description": "Ticket status accepted by Gleap."
          },
          "processingUser": {
            "type": "string",
            "minLength": 1,
            "description": "Gleap user ID assigned to the ticket."
          },
          "processingTeam": {
            "type": "string",
            "minLength": 1,
            "description": "Gleap team ID assigned to the ticket."
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Tag name."
            },
            "description": "Tags associated with the Gleap resource.",
            "minItems": 1
          },
          "session": {
            "type": "string",
            "minLength": 1,
            "description": "Gleap session ID linked to the ticket."
          },
          "email": {
            "type": "string",
            "description": "Email address used when composing the ticket.",
            "format": "email"
          },
          "formData": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Form data object accepted by Gleap."
          },
          "preventAutoReply": {
            "type": "boolean",
            "description": "Whether Gleap should prevent automatic replies."
          }
        },
        "additionalProperties": false,
        "required": [
          "type",
          "title"
        ],
        "description": "Input for creating a Gleap ticket with an optional initial message."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "ticket": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Gleap ticket returned by the API."
          },
          "raw": {
            "description": "Raw payload returned by the official Gleap API."
          }
        },
        "additionalProperties": false,
        "required": [
          "ticket",
          "raw"
        ],
        "description": "Created Gleap ticket response."
      }
    },
    {
      "id": "gleap.delete_ticket",
      "service": "gleap",
      "name": "delete_ticket",
      "description": "Delete a Gleap ticket by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ticketId": {
            "type": "string",
            "minLength": 1,
            "description": "Gleap ticket ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "ticketId"
        ],
        "description": "Input for deleting a Gleap ticket."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "deleted": {
            "type": "boolean",
            "description": "Whether the ticket deletion request completed successfully."
          },
          "raw": {
            "description": "Raw payload returned by the official Gleap API."
          }
        },
        "additionalProperties": false,
        "required": [
          "deleted",
          "raw"
        ],
        "description": "Gleap ticket deletion response."
      }
    },
    {
      "id": "gleap.get_contact_by_user_id",
      "service": "gleap",
      "name": "get_contact_by_user_id",
      "description": "Get a Gleap contact session by external user ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "minLength": 1,
            "description": "External user ID associated with the contact."
          }
        },
        "additionalProperties": false,
        "required": [
          "userId"
        ],
        "description": "Input for retrieving a Gleap contact by user ID."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "properties": {
              "_id": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Gleap document ID string."
                  },
                  {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "ObjectId-like value returned by Gleap."
                  }
                ],
                "description": "Gleap document ID as a string or ObjectId-like object."
              },
              "id": {
                "type": "string",
                "description": "Gleap session ID."
              },
              "userId": {
                "type": "string",
                "description": "External user ID associated with the contact."
              },
              "email": {
                "type": "string",
                "description": "Contact email address."
              },
              "name": {
                "type": "string",
                "description": "Contact display name."
              },
              "phone": {
                "type": "string",
                "description": "Contact phone number."
              },
              "avatar": {
                "type": "string",
                "description": "Contact avatar URL."
              },
              "companyId": {
                "type": "string",
                "description": "Company ID associated with the contact."
              },
              "companyName": {
                "type": "string",
                "description": "Company name associated with the contact."
              },
              "customData": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Custom data object accepted by Gleap."
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Tag name."
                },
                "description": "Tags associated with the Gleap resource."
              },
              "blocked": {
                "type": "boolean",
                "description": "Whether the contact is blocked."
              },
              "unsubscribed": {
                "type": "boolean",
                "description": "Whether the contact is unsubscribed."
              },
              "createdAt": {
                "type": "string",
                "description": "Timestamp when the contact was created."
              },
              "updatedAt": {
                "type": "string",
                "description": "Timestamp when the contact was last updated."
              },
              "lastActivity": {
                "type": "string",
                "description": "Timestamp of the contact's latest activity."
              }
            },
            "additionalProperties": true,
            "description": "Gleap contact session returned by the API."
          },
          "raw": {
            "description": "Raw payload returned by the official Gleap API."
          }
        },
        "additionalProperties": false,
        "required": [
          "contact",
          "raw"
        ],
        "description": "Gleap contact session response."
      }
    },
    {
      "id": "gleap.get_current_user",
      "service": "gleap",
      "name": "get_current_user",
      "description": "Get the current Gleap user for the connected API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input is required for this Gleap action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "user": {
            "type": "object",
            "properties": {
              "_id": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Gleap document ID string."
                  },
                  {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "ObjectId-like value returned by Gleap."
                  }
                ],
                "description": "Gleap document ID as a string or ObjectId-like object."
              },
              "id": {
                "type": "string",
                "description": "Gleap user ID."
              },
              "email": {
                "type": "string",
                "description": "Gleap user email address."
              },
              "firstName": {
                "type": "string",
                "description": "Gleap user first name."
              },
              "lastName": {
                "type": "string",
                "description": "Gleap user last name."
              },
              "userType": {
                "type": "string",
                "description": "Gleap user type."
              },
              "profileImageUrl": {
                "type": "string",
                "description": "Gleap user profile image URL."
              },
              "createdAt": {
                "type": "string",
                "description": "Timestamp when the user was created."
              },
              "updatedAt": {
                "type": "string",
                "description": "Timestamp when the user was last updated."
              }
            },
            "additionalProperties": true,
            "description": "Current Gleap user returned by the API."
          },
          "raw": {
            "description": "Raw payload returned by the official Gleap API."
          }
        },
        "additionalProperties": false,
        "required": [
          "user",
          "raw"
        ],
        "description": "Current Gleap user response."
      }
    },
    {
      "id": "gleap.get_ticket",
      "service": "gleap",
      "name": "get_ticket",
      "description": "Get a Gleap ticket by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ticketId": {
            "type": "string",
            "minLength": 1,
            "description": "Gleap ticket ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "ticketId"
        ],
        "description": "Input for retrieving a Gleap ticket."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "ticket": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Gleap ticket returned by the API."
          },
          "raw": {
            "description": "Raw payload returned by the official Gleap API."
          }
        },
        "additionalProperties": false,
        "required": [
          "ticket",
          "raw"
        ],
        "description": "Gleap ticket response."
      }
    },
    {
      "id": "gleap.list_contacts",
      "service": "gleap",
      "name": "list_contacts",
      "description": "List Gleap contact sessions for the connected project.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input is required for this Gleap action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contacts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "_id": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Gleap document ID string."
                    },
                    {
                      "type": "object",
                      "properties": {},
                      "additionalProperties": true,
                      "description": "ObjectId-like value returned by Gleap."
                    }
                  ],
                  "description": "Gleap document ID as a string or ObjectId-like object."
                },
                "id": {
                  "type": "string",
                  "description": "Gleap session ID."
                },
                "userId": {
                  "type": "string",
                  "description": "External user ID associated with the contact."
                },
                "email": {
                  "type": "string",
                  "description": "Contact email address."
                },
                "name": {
                  "type": "string",
                  "description": "Contact display name."
                },
                "phone": {
                  "type": "string",
                  "description": "Contact phone number."
                },
                "avatar": {
                  "type": "string",
                  "description": "Contact avatar URL."
                },
                "companyId": {
                  "type": "string",
                  "description": "Company ID associated with the contact."
                },
                "companyName": {
                  "type": "string",
                  "description": "Company name associated with the contact."
                },
                "customData": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "Custom data object accepted by Gleap."
                },
                "tags": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "Tag name."
                  },
                  "description": "Tags associated with the Gleap resource."
                },
                "blocked": {
                  "type": "boolean",
                  "description": "Whether the contact is blocked."
                },
                "unsubscribed": {
                  "type": "boolean",
                  "description": "Whether the contact is unsubscribed."
                },
                "createdAt": {
                  "type": "string",
                  "description": "Timestamp when the contact was created."
                },
                "updatedAt": {
                  "type": "string",
                  "description": "Timestamp when the contact was last updated."
                },
                "lastActivity": {
                  "type": "string",
                  "description": "Timestamp of the contact's latest activity."
                }
              },
              "additionalProperties": true,
              "description": "Gleap contact session returned by the API."
            },
            "description": "Contact sessions returned by Gleap."
          },
          "raw": {
            "description": "Raw payload returned by the official Gleap API."
          }
        },
        "additionalProperties": false,
        "required": [
          "contacts",
          "raw"
        ],
        "description": "Gleap contact session list response."
      }
    },
    {
      "id": "gleap.list_tickets",
      "service": "gleap",
      "name": "list_tickets",
      "description": "List Gleap tickets with documented filters, sorting, and pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "minLength": 1,
            "description": "Ticket type filter, such as BUG or comma-separated types."
          },
          "status": {
            "type": "string",
            "minLength": 1,
            "description": "Ticket status filter, such as OPEN."
          },
          "priority": {
            "type": "string",
            "minLength": 1,
            "description": "Ticket priority filter, such as HIGH or comma-separated priorities."
          },
          "archived": {
            "type": "boolean",
            "description": "Whether to include only archived or non-archived tickets."
          },
          "ignoreArchived": {
            "type": "boolean",
            "description": "Whether Gleap should ignore archived tickets."
          },
          "isSpam": {
            "type": "boolean",
            "description": "Whether to include only spam or non-spam tickets."
          },
          "sort": {
            "type": "string",
            "enum": [
              "createdAt",
              "-createdAt",
              "priority",
              "-priority",
              "-updatedAt"
            ],
            "description": "Sort order accepted by Gleap."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000,
            "description": "Maximum number of tickets to return."
          },
          "skip": {
            "type": "integer",
            "minimum": 0,
            "description": "Number of tickets to skip for offset pagination."
          },
          "filters": {
            "type": "object",
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string",
                  "description": "String filter value."
                },
                {
                  "type": "number",
                  "description": "Numeric filter value."
                },
                {
                  "type": "boolean",
                  "description": "Boolean filter value."
                }
              ],
              "description": "A scalar Gleap query filter value."
            },
            "description": "Additional Gleap document filters forwarded as query parameters."
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for listing Gleap tickets."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "tickets": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Gleap ticket returned by the API."
            },
            "description": "Tickets returned by Gleap."
          },
          "count": {
            "anyOf": [
              {
                "type": "integer",
                "description": "Number of tickets returned in this response."
              },
              {
                "type": "null"
              }
            ]
          },
          "totalCount": {
            "anyOf": [
              {
                "type": "integer",
                "description": "Total matching ticket count returned by Gleap."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "description": "Raw payload returned by the official Gleap API."
          }
        },
        "additionalProperties": false,
        "required": [
          "tickets",
          "count",
          "totalCount",
          "raw"
        ],
        "description": "Gleap ticket list response."
      }
    },
    {
      "id": "gleap.update_contact",
      "service": "gleap",
      "name": "update_contact",
      "description": "Update a Gleap contact session by session ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "description": "Gleap session ID to update."
          },
          "userId": {
            "type": "string",
            "minLength": 1,
            "description": "Updated external user ID."
          },
          "email": {
            "type": "string",
            "description": "Updated contact email address.",
            "format": "email"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Updated contact display name."
          },
          "phone": {
            "type": "string",
            "minLength": 1,
            "description": "Updated contact phone number."
          },
          "avatar": {
            "type": "string",
            "description": "Updated contact avatar URL.",
            "format": "uri"
          },
          "companyId": {
            "type": "string",
            "minLength": 1,
            "description": "Updated company ID."
          },
          "companyName": {
            "type": "string",
            "minLength": 1,
            "description": "Updated company name."
          },
          "plan": {
            "type": "string",
            "minLength": 1,
            "description": "Updated plan name."
          },
          "value": {
            "type": "number",
            "description": "Updated numeric customer value."
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Tag name."
            },
            "description": "Tags associated with the Gleap resource.",
            "minItems": 1
          },
          "blocked": {
            "type": "boolean",
            "description": "Updated blocked state."
          },
          "unsubscribed": {
            "type": "boolean",
            "description": "Updated unsubscribe state."
          },
          "customData": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Custom data object accepted by Gleap."
          },
          "eventData": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Custom data object accepted by Gleap."
          }
        },
        "additionalProperties": false,
        "required": [
          "sessionId"
        ],
        "description": "Input for updating a Gleap contact session. At least one contact field is required.",
        "anyOf": [
          {
            "required": [
              "userId"
            ]
          },
          {
            "required": [
              "email"
            ]
          },
          {
            "required": [
              "name"
            ]
          },
          {
            "required": [
              "phone"
            ]
          },
          {
            "required": [
              "avatar"
            ]
          },
          {
            "required": [
              "companyId"
            ]
          },
          {
            "required": [
              "companyName"
            ]
          },
          {
            "required": [
              "plan"
            ]
          },
          {
            "required": [
              "value"
            ]
          },
          {
            "required": [
              "tags"
            ]
          },
          {
            "required": [
              "blocked"
            ]
          },
          {
            "required": [
              "unsubscribed"
            ]
          },
          {
            "required": [
              "customData"
            ]
          },
          {
            "required": [
              "eventData"
            ]
          }
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "properties": {
              "_id": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Gleap document ID string."
                  },
                  {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "ObjectId-like value returned by Gleap."
                  }
                ],
                "description": "Gleap document ID as a string or ObjectId-like object."
              },
              "id": {
                "type": "string",
                "description": "Gleap session ID."
              },
              "userId": {
                "type": "string",
                "description": "External user ID associated with the contact."
              },
              "email": {
                "type": "string",
                "description": "Contact email address."
              },
              "name": {
                "type": "string",
                "description": "Contact display name."
              },
              "phone": {
                "type": "string",
                "description": "Contact phone number."
              },
              "avatar": {
                "type": "string",
                "description": "Contact avatar URL."
              },
              "companyId": {
                "type": "string",
                "description": "Company ID associated with the contact."
              },
              "companyName": {
                "type": "string",
                "description": "Company name associated with the contact."
              },
              "customData": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Custom data object accepted by Gleap."
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Tag name."
                },
                "description": "Tags associated with the Gleap resource."
              },
              "blocked": {
                "type": "boolean",
                "description": "Whether the contact is blocked."
              },
              "unsubscribed": {
                "type": "boolean",
                "description": "Whether the contact is unsubscribed."
              },
              "createdAt": {
                "type": "string",
                "description": "Timestamp when the contact was created."
              },
              "updatedAt": {
                "type": "string",
                "description": "Timestamp when the contact was last updated."
              },
              "lastActivity": {
                "type": "string",
                "description": "Timestamp of the contact's latest activity."
              }
            },
            "additionalProperties": true,
            "description": "Gleap contact session returned by the API."
          },
          "raw": {
            "description": "Raw payload returned by the official Gleap API."
          }
        },
        "additionalProperties": false,
        "required": [
          "contact",
          "raw"
        ],
        "description": "Updated Gleap contact session response."
      }
    },
    {
      "id": "gleap.update_ticket",
      "service": "gleap",
      "name": "update_ticket",
      "description": "Update a Gleap ticket by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ticketId": {
            "type": "string",
            "minLength": 1,
            "description": "Gleap ticket ID to update."
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "Ticket title."
          },
          "type": {
            "type": "string",
            "minLength": 1,
            "description": "Ticket type accepted by Gleap."
          },
          "status": {
            "type": "string",
            "minLength": 1,
            "description": "Ticket status accepted by Gleap."
          },
          "priority": {
            "type": "string",
            "enum": [
              "LOW",
              "MEDIUM",
              "HIGH"
            ],
            "description": "Ticket priority accepted by Gleap."
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "description": "Ticket description."
          },
          "plainContent": {
            "type": "string",
            "minLength": 1,
            "description": "Plain text ticket content."
          },
          "session": {
            "type": "string",
            "minLength": 1,
            "description": "Gleap session ID linked to the ticket."
          },
          "processingUser": {
            "type": "string",
            "minLength": 1,
            "description": "Gleap user ID assigned to the ticket."
          },
          "processingTeam": {
            "type": "string",
            "minLength": 1,
            "description": "Gleap team ID assigned to the ticket."
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Tag name."
            },
            "description": "Tags associated with the Gleap resource.",
            "minItems": 1
          },
          "formData": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Form data object accepted by Gleap."
          },
          "customData": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Custom data object accepted by Gleap."
          },
          "attributes": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Ticket attributes object accepted by Gleap."
          },
          "attachments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Attachment display name."
                },
                "url": {
                  "type": "string",
                  "description": "Publicly reachable attachment URL for Gleap to reference.",
                  "format": "uri"
                },
                "type": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Attachment MIME type or type label."
                }
              },
              "additionalProperties": false,
              "required": [
                "name",
                "url"
              ],
              "description": "Attachment object accepted by Gleap."
            },
            "description": "Ticket attachments accepted by Gleap.",
            "minItems": 1
          },
          "archived": {
            "type": "boolean",
            "description": "Whether the ticket is archived."
          },
          "isSpam": {
            "type": "boolean",
            "description": "Whether the ticket is marked as spam."
          },
          "preventAutoReply": {
            "type": "boolean",
            "description": "Whether Gleap should prevent automatic replies."
          },
          "forceCloseOverride": {
            "type": "boolean",
            "description": "Whether Gleap should force close behavior overrides."
          }
        },
        "additionalProperties": false,
        "required": [
          "ticketId"
        ],
        "description": "Input for updating a Gleap ticket. At least one ticket field is required.",
        "anyOf": [
          {
            "required": [
              "title"
            ]
          },
          {
            "required": [
              "type"
            ]
          },
          {
            "required": [
              "status"
            ]
          },
          {
            "required": [
              "priority"
            ]
          },
          {
            "required": [
              "description"
            ]
          },
          {
            "required": [
              "plainContent"
            ]
          },
          {
            "required": [
              "session"
            ]
          },
          {
            "required": [
              "processingUser"
            ]
          },
          {
            "required": [
              "processingTeam"
            ]
          },
          {
            "required": [
              "tags"
            ]
          },
          {
            "required": [
              "formData"
            ]
          },
          {
            "required": [
              "customData"
            ]
          },
          {
            "required": [
              "attributes"
            ]
          },
          {
            "required": [
              "attachments"
            ]
          },
          {
            "required": [
              "archived"
            ]
          },
          {
            "required": [
              "isSpam"
            ]
          },
          {
            "required": [
              "preventAutoReply"
            ]
          },
          {
            "required": [
              "forceCloseOverride"
            ]
          }
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "ticket": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Gleap ticket returned by the API."
          },
          "raw": {
            "description": "Raw payload returned by the official Gleap API."
          }
        },
        "additionalProperties": false,
        "required": [
          "ticket",
          "raw"
        ],
        "description": "Updated Gleap ticket response."
      }
    }
  ]
}
