{
  "service": "freshteam",
  "displayName": "Freshteam",
  "categories": [
    "Productivity",
    "Data"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "FRESHTEAM_API_KEY",
      "description": "Freshteam API key sent as a Bearer token. Copy it from Freshteam API Settings as documented by Freshworks: https://developers.freshteam.com/api/#authentication.",
      "extraFields": [
        {
          "key": "domain",
          "label": "Domain",
          "inputType": "text",
          "required": true,
          "secret": false,
          "placeholder": "your-company",
          "description": "Freshteam account domain used to build https://<domain>.freshteam.com API requests."
        }
      ]
    }
  ],
  "homepageUrl": "https://www.freshworks.com/freshteam/",
  "actions": [
    {
      "id": "freshteam.get_employee",
      "service": "freshteam",
      "name": "get_employee",
      "description": "Get one Freshteam employee by identifier.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "employeeId": {
            "type": "integer",
            "minimum": 1,
            "description": "Freshteam employee identifier."
          },
          "include": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "awards",
                "honors",
                "certificates",
                "licenses",
                "background_verification_details",
                "visas",
                "government_documents",
                "dependents",
                "user_documents",
                "bank_accounts",
                "prev_employments",
                "qualifications",
                "compensation_details",
                "bonuses",
                "stocks",
                "additional_teams",
                "additional_managers",
                "additional_hr_managers",
                "languages",
                "roles",
                "team",
                "branch",
                "business_unit",
                "sub_department",
                "department",
                "reporting_to",
                "hr_incharge",
                "level",
                "shift",
                "user_function",
                "cost_center",
                "user_title",
                "user_suffix_name",
                "user_honorary_suffix",
                "user_professional_suffix",
                "user_academic_suffix",
                "retirement_status",
                "citizenship_status",
                "termination_category",
                "time_off"
              ],
              "description": "A Freshteam employee include token."
            },
            "description": "Freshteam include tokens for employee details.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "required": [
          "employeeId"
        ],
        "description": "Input parameters for reading one Freshteam employee."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "employee": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Freshteam employee object."
          }
        },
        "additionalProperties": false,
        "description": "Freshteam employee response wrapper."
      }
    },
    {
      "id": "freshteam.get_job_posting",
      "service": "freshteam",
      "name": "get_job_posting",
      "description": "Get one Freshteam job posting by identifier.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "jobPostingId": {
            "type": "integer",
            "minimum": 1,
            "description": "Freshteam job posting identifier."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for reading one Freshteam job posting."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "jobPosting": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Freshteam job posting object."
          }
        },
        "additionalProperties": false,
        "description": "Freshteam job posting response wrapper."
      }
    },
    {
      "id": "freshteam.list_applicant_fields",
      "service": "freshteam",
      "name": "list_applicant_fields",
      "description": "List Freshteam applicant fields for one job posting.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "jobPostingId": {
            "type": "integer",
            "minimum": 1,
            "description": "Freshteam job posting identifier."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number for the Freshteam list request."
          }
        },
        "additionalProperties": false,
        "required": [
          "jobPostingId"
        ],
        "description": "Input parameters for listing Freshteam applicant fields for one job posting."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "applicantFields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Freshteam applicant field object."
            },
            "description": "Freshteam applicant fields returned for the current page."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "page": {
                "type": "integer",
                "minimum": 1,
                "description": "Freshteam page requested."
              },
              "hasMore": {
                "type": "boolean",
                "description": "Whether another Freshteam page is available."
              },
              "nextPage": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 1,
                    "description": "Next Freshteam page number when available."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "totalPages": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 1,
                    "description": "Total Freshteam pages reported by the response headers."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "totalObjects": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Total Freshteam objects reported by the response headers."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "link": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Freshteam response Link header, when returned."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Freshteam list pagination details."
          }
        },
        "additionalProperties": false,
        "description": "Freshteam applicant field list response wrapper."
      }
    },
    {
      "id": "freshteam.list_candidate_source_categories",
      "service": "freshteam",
      "name": "list_candidate_source_categories",
      "description": "List Freshteam candidate source categories.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number for the Freshteam list request."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Freshteam candidate source categories."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "candidateSourceCategories": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Freshteam candidate source category object."
            },
            "description": "Freshteam candidate source categories returned for the current page."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "page": {
                "type": "integer",
                "minimum": 1,
                "description": "Freshteam page requested."
              },
              "hasMore": {
                "type": "boolean",
                "description": "Whether another Freshteam page is available."
              },
              "nextPage": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 1,
                    "description": "Next Freshteam page number when available."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "totalPages": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 1,
                    "description": "Total Freshteam pages reported by the response headers."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "totalObjects": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Total Freshteam objects reported by the response headers."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "link": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Freshteam response Link header, when returned."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Freshteam list pagination details."
          }
        },
        "additionalProperties": false,
        "description": "Freshteam candidate source category list response wrapper."
      }
    },
    {
      "id": "freshteam.list_candidate_sources",
      "service": "freshteam",
      "name": "list_candidate_sources",
      "description": "List Freshteam candidate sources.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number for the Freshteam list request."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Freshteam candidate sources."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "candidateSources": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Freshteam candidate source object."
            },
            "description": "Freshteam candidate sources returned for the current page."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "page": {
                "type": "integer",
                "minimum": 1,
                "description": "Freshteam page requested."
              },
              "hasMore": {
                "type": "boolean",
                "description": "Whether another Freshteam page is available."
              },
              "nextPage": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 1,
                    "description": "Next Freshteam page number when available."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "totalPages": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 1,
                    "description": "Total Freshteam pages reported by the response headers."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "totalObjects": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Total Freshteam objects reported by the response headers."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "link": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Freshteam response Link header, when returned."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Freshteam list pagination details."
          }
        },
        "additionalProperties": false,
        "description": "Freshteam candidate source list response wrapper."
      }
    },
    {
      "id": "freshteam.list_employee_fields",
      "service": "freshteam",
      "name": "list_employee_fields",
      "description": "List Freshteam employee form fields.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number for the Freshteam list request."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Freshteam employee fields."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "employeeFields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Freshteam employee field object."
            },
            "description": "Freshteam employee fields returned for the current page."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "page": {
                "type": "integer",
                "minimum": 1,
                "description": "Freshteam page requested."
              },
              "hasMore": {
                "type": "boolean",
                "description": "Whether another Freshteam page is available."
              },
              "nextPage": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 1,
                    "description": "Next Freshteam page number when available."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "totalPages": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 1,
                    "description": "Total Freshteam pages reported by the response headers."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "totalObjects": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Total Freshteam objects reported by the response headers."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "link": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Freshteam response Link header, when returned."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Freshteam list pagination details."
          }
        },
        "additionalProperties": false,
        "description": "Freshteam employee field list response wrapper."
      }
    },
    {
      "id": "freshteam.list_employees",
      "service": "freshteam",
      "name": "list_employees",
      "description": "List Freshteam employees with optional directory filters and pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number for the Freshteam list request."
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "inactive"
            ],
            "description": "Freshteam employee status filter."
          },
          "firstName": {
            "type": "string",
            "minLength": 1,
            "description": "First name used to filter Freshteam employees."
          },
          "lastName": {
            "type": "string",
            "minLength": 1,
            "description": "Last name used to filter Freshteam employees."
          },
          "personalEmail": {
            "type": "string",
            "description": "Personal email address used to filter Freshteam employees.",
            "format": "email"
          },
          "officialEmail": {
            "type": "string",
            "description": "Official email address used to filter Freshteam employees.",
            "format": "email"
          },
          "employeeType": {
            "type": "string",
            "minLength": 1,
            "description": "Freshteam employee type filter."
          },
          "departmentId": {
            "type": "integer",
            "minimum": 1,
            "description": "Freshteam department identifier filter."
          },
          "businessUnitId": {
            "type": "integer",
            "minimum": 1,
            "description": "Freshteam business unit identifier filter."
          },
          "locationIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "One Freshteam location identifier."
            },
            "description": "Freshteam location identifiers used to filter employee results.",
            "minItems": 1
          },
          "reportingManagerId": {
            "type": "integer",
            "minimum": 1,
            "description": "Freshteam employee identifier for the reporting manager filter."
          },
          "updatedSince": {
            "type": "string",
            "description": "ISO 8601 timestamp used as Freshteam's updated_since filter.",
            "format": "date-time"
          },
          "sort": {
            "type": "string",
            "enum": [
              "first_name",
              "last_name",
              "employee_id"
            ],
            "description": "Freshteam employee field used for sorting results."
          },
          "sortType": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "Freshteam sort direction."
          },
          "draft": {
            "type": "boolean",
            "description": "Whether to return Freshteam draft employees."
          },
          "terminated": {
            "type": "boolean",
            "description": "Whether to return Freshteam terminated employees."
          },
          "deleted": {
            "type": "boolean",
            "description": "Whether to return Freshteam deleted employees."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Freshteam employees."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "employees": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Freshteam employee object."
            },
            "description": "Freshteam employees returned for the current page."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "page": {
                "type": "integer",
                "minimum": 1,
                "description": "Freshteam page requested."
              },
              "hasMore": {
                "type": "boolean",
                "description": "Whether another Freshteam page is available."
              },
              "nextPage": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 1,
                    "description": "Next Freshteam page number when available."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "totalPages": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 1,
                    "description": "Total Freshteam pages reported by the response headers."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "totalObjects": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Total Freshteam objects reported by the response headers."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "link": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Freshteam response Link header, when returned."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Freshteam list pagination details."
          }
        },
        "additionalProperties": false,
        "description": "Freshteam employee list response wrapper."
      }
    },
    {
      "id": "freshteam.list_job_posting_fields",
      "service": "freshteam",
      "name": "list_job_posting_fields",
      "description": "List Freshteam job posting fields.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number for the Freshteam list request."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Freshteam job posting fields."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "jobPostingFields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Freshteam job posting field object."
            },
            "description": "Freshteam job posting fields returned for the current page."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "page": {
                "type": "integer",
                "minimum": 1,
                "description": "Freshteam page requested."
              },
              "hasMore": {
                "type": "boolean",
                "description": "Whether another Freshteam page is available."
              },
              "nextPage": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 1,
                    "description": "Next Freshteam page number when available."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "totalPages": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 1,
                    "description": "Total Freshteam pages reported by the response headers."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "totalObjects": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Total Freshteam objects reported by the response headers."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "link": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Freshteam response Link header, when returned."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Freshteam list pagination details."
          }
        },
        "additionalProperties": false,
        "description": "Freshteam job posting field list response wrapper."
      }
    },
    {
      "id": "freshteam.list_job_postings",
      "service": "freshteam",
      "name": "list_job_postings",
      "description": "List Freshteam job postings with optional recruiting filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number for the Freshteam list request."
          },
          "status": {
            "type": "string",
            "enum": [
              "draft",
              "published",
              "internal",
              "private",
              "on_hold",
              "closed"
            ],
            "description": "Freshteam job posting status filter."
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "Freshteam job posting title filter."
          },
          "type": {
            "type": "string",
            "minLength": 1,
            "description": "Freshteam job posting type filter."
          },
          "departmentId": {
            "type": "integer",
            "minimum": 1,
            "description": "Freshteam department identifier filter."
          },
          "locationId": {
            "type": "integer",
            "minimum": 1,
            "description": "Freshteam location identifier filter."
          },
          "remote": {
            "type": "boolean",
            "description": "Whether to filter Freshteam job postings by remote status."
          },
          "locationCity": {
            "type": "string",
            "minLength": 1,
            "description": "Freshteam job posting city filter."
          },
          "locationCountry": {
            "type": "string",
            "minLength": 1,
            "description": "Freshteam job posting country code filter."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Freshteam job postings."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "jobPostings": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Freshteam job posting object."
            },
            "description": "Freshteam job postings returned for the current page."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "page": {
                "type": "integer",
                "minimum": 1,
                "description": "Freshteam page requested."
              },
              "hasMore": {
                "type": "boolean",
                "description": "Whether another Freshteam page is available."
              },
              "nextPage": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 1,
                    "description": "Next Freshteam page number when available."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "totalPages": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 1,
                    "description": "Total Freshteam pages reported by the response headers."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "totalObjects": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 0,
                    "description": "Total Freshteam objects reported by the response headers."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "link": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Freshteam response Link header, when returned."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Freshteam list pagination details."
          }
        },
        "additionalProperties": false,
        "description": "Freshteam job posting list response wrapper."
      }
    }
  ]
}
