{
  "schema_version": "1.0",
  "name": "Zyppro Technologies",
  "description": "AI-accessible tools for Zyppro Technologies website. Allows AI agents to submit project requests, subscribe to the blog, and check project status.",
  "base_url": "https://zyppro.com",
  "tools": [
    {
      "id": "submit_project_request",
      "name": "Submit Project Request",
      "description": "Submit a new technology project request or business enquiry to Zyppro Technologies. Used to start a conversation about custom software, Microsoft Dynamics 365, Power Platform, Azure, AI, or any other technology service.",
      "method": "POST",
      "endpoint": "/api/tickets/create",
      "content_type": "application/json",
      "form_selector": "#projectRequestForm",
      "parameters": {
        "type": "object",
        "required": ["client_name", "client_email", "requirement"],
        "properties": {
          "client_name": {
            "type": "string",
            "description": "Full name of the person or company submitting the request.",
            "minLength": 2,
            "maxLength": 100
          },
          "client_email": {
            "type": "string",
            "format": "email",
            "description": "Contact email address for the requester."
          },
          "phone": {
            "type": "string",
            "description": "Contact phone number including international dialling code.",
            "maxLength": 30
          },
          "company": {
            "type": "string",
            "description": "Company or organisation name.",
            "maxLength": 100
          },
          "requirement": {
            "type": "string",
            "description": "Detailed description of the project requirements, goals, or questions.",
            "minLength": 20,
            "maxLength": 5000
          },
          "category": {
            "type": "string",
            "description": "Type of service required.",
            "enum": [
              "Custom Software Development",
              "Microsoft Dynamics 365",
              "Power Platform",
              "Azure Cloud",
              "AI & Automation",
              "Web & Mobile Development",
              "Data & Analytics",
              "Cybersecurity & IT",
              "General Enquiry",
              "Other"
            ]
          },
          "budget": {
            "type": "string",
            "description": "Approximate budget range for the project.",
            "enum": ["Under $5k", "$5k–$15k", "$15k–$50k", "$50k–$100k", "Over $100k", "Not sure"]
          }
        }
      },
      "responses": {
        "200": { "description": "Request submitted successfully. Returns ticket reference code." },
        "400": { "description": "Validation error in provided fields." },
        "429": { "description": "Too many requests. Please wait before trying again." }
      }
    },
    {
      "id": "subscribe_blog",
      "name": "Subscribe to Blog Newsletter",
      "description": "Subscribe a user to the Zyppro Technologies blog newsletter to receive new articles on AI, Microsoft solutions, Power Platform, Azure, and software engineering.",
      "method": "POST",
      "endpoint": "/blog-subscribe",
      "content_type": "application/json",
      "form_selector": "#subPopupForm",
      "parameters": {
        "type": "object",
        "required": ["full_name", "email", "newsletter_consent"],
        "properties": {
          "full_name": {
            "type": "string",
            "description": "Full name of the subscriber.",
            "minLength": 2,
            "maxLength": 100
          },
          "email": {
            "type": "string",
            "format": "email",
            "description": "Email address to subscribe."
          },
          "country": {
            "type": "string",
            "description": "Country of the subscriber.",
            "maxLength": 80
          },
          "phone": {
            "type": "string",
            "description": "Phone number with country code (optional).",
            "maxLength": 30
          },
          "newsletter_consent": {
            "type": "boolean",
            "description": "Must be true. Indicates the user consents to receive newsletter emails.",
            "const": true
          },
          "marketing_contact_consent": {
            "type": "boolean",
            "description": "Optional. Indicates consent to be contacted for business services.",
            "default": false
          }
        }
      },
      "responses": {
        "201": { "description": "Subscription created. Confirmation email sent." },
        "200": { "description": "Already subscribed or verification email resent." },
        "400": { "description": "Validation error." },
        "429": { "description": "Rate limit exceeded." }
      }
    },
    {
      "id": "track_project",
      "name": "Track Project Status",
      "description": "Check the current status and updates for an existing Zyppro project using its ticket code (e.g. ZYPPRO-2026-XXXXXX).",
      "method": "GET",
      "endpoint": "/ticket-status",
      "form_selector": "#ticketStatusForm",
      "parameters": {
        "type": "object",
        "required": ["code"],
        "properties": {
          "code": {
            "type": "string",
            "description": "The project ticket reference code, in format ZYPPRO-YYYY-XXXXXXXX.",
            "pattern": "^[A-Za-z0-9\\-]+$",
            "minLength": 6,
            "maxLength": 40
          }
        }
      },
      "responses": {
        "200": { "description": "Project status and updates returned." },
        "404": { "description": "Ticket not found." }
      }
    },
    {
      "id": "login",
      "name": "Workspace Login",
      "description": "Authenticate as an admin or developer to access the Zyppro workspace dashboard.",
      "method": "POST",
      "endpoint": "/auth/login",
      "content_type": "application/x-www-form-urlencoded",
      "form_selector": "#loginForm",
      "parameters": {
        "type": "object",
        "required": ["email", "password"],
        "properties": {
          "email": {
            "type": "string",
            "format": "email",
            "description": "Registered workspace email address."
          },
          "password": {
            "type": "string",
            "description": "Account password.",
            "minLength": 6
          }
        }
      },
      "responses": {
        "302": { "description": "Successful login, redirects to dashboard." },
        "401": { "description": "Invalid credentials." }
      }
    }
  ]
}
