Overview

The Zscaler connector enables your AI Colleagues to integrate with your organization's Zscaler Internet Access (ZIA) platform, facilitating automated user lifecycle management, directory administration, and security policy workflows.

Zscaler is a cloud-native security platform that provides secure internet and SaaS access, zero trust network access, and digital experience monitoring. The Zscaler connector allows Leena AI to automate user provisioning, manage groups and departments, and streamline identity management workflows seamlessly.

API Details

Leena AI integrates with Zscaler via REST APIs.

Documentation link: https://help.zscaler.com/zia/getting-started-zia-api

Setup

The Zscaler connector uses API Key authentication with session-based token exchange. The connector authenticates using a username, password, and API key to obtain a temporary session token (JSESSIONID) for subsequent API calls.


Prerequisites

Before setting up the Zscaler connector, ensure you have:

  • Administrator access to your Zscaler Internet Access (ZIA) Admin Portal
  • Access to Administration > Cloud Service API Key Security section
  • Ability to create API keys in Zscaler ZIA
  • Access to your Leena AI workspace with connector management permissions

Get credentials

Here is how to obtain API credentials from Zscaler ZIA Admin Portal:

  1. Log in to your ZIA Admin Portal (Ensure you're signed in as an admin).
  2. Navigate to API Key Management:
    1. Click on Administration in the sidebar
    2. Select Cloud Service API Key Security (or API Key Management)
  3. Create or Copy API Key:
    1. If an API key exists, copy it for later use
    2. If no API key is present, click Add API Key to create one
    3. Note down the API key securely (it may only be displayed once)
  4. Ensure Administrator Account:
    1. Navigate to Administration > Administrator Management
    2. Ensure you have an administrator account with appropriate permissions
    3. Note down the administrator username and password
  5. Note Your Zscaler Cloud URL:
    1. Identify your Zscaler cloud instance base URL (e.g., zsapi.zscaler.net, zsapi.zscalerbeta.net)
    2. This URL is specific to your organization's Zscaler deployment

Add connection

Here is how to add a connection on Leena AI:

  1. Log in to your Leena AI workspace
  2. Navigate to Settings > Integrations
  3. Search for "Zscaler" and select it from the list to add its new connector
  4. Start configuring the connector
    1. Base URL: The base URL of your Zscaler API endpoint (e.g., https://zsapi.zscaler.net)
    2. Username: Your Zscaler administrator username
    3. Password: Your Zscaler administrator password
    4. API Key: The API key obtained from Zscaler Admin Portal
  5. Test and Save Connection
    1. Click Connect in Leena AI for Zscaler connector setup
    2. The system will authenticate with Zscaler and obtain a session token
    3. Upon successful authentication, the connector will be saved

Actions

The following actions are supported for the Zscaler connector:

Create User

Creates a new user in Zscaler. The Agent can leverage the skill (workflow), which has been designed to create a new user account in Zscaler, once the user raises a query to do so.


Input Parameters

Here are the input parameters required to set up this action:

Mandatory

NameDescription
NameThe full name of the user
EmailThe email address of the user
GroupsList of groups to assign the user to
Department NameThe name of the department the user belongs to
PasswordThe initial password for the user account

Optional

NameDescription
Department IDThe unique identifier of the department
Department IdP IDThe Identity Provider ID for the department
Department CommentsAdditional comments about the department
Department DeletedFlag indicating if department is marked as deleted
CommentsAdditional information about this user
Temporary Authentication EmailEmail address for temporary authentication purposes
Group IDThe unique identifier of each group (within Groups array)
Group IdP IDThe Identity Provider ID for the group
Group CommentsAdditional comments about the group
Is System DefinedFlag indicating if the group is system-defined

Here is a sample JSON input:

{
  "name": "John Smith",
  "email": "[email protected]",
  "groups": [
    {
      "id": 12345,
      "name": "Engineering Team"
    }
  ],
  "department": {
    "id": 67890,
    "name": "Engineering"
  },
  "comments": "New hire - Software Engineer",
  "password": "SecurePassword123!"
}

Response

Upon successful creation, the action returns the created user details including:

  • User ID
  • User name and email
  • Assigned groups
  • Department information
  • Creation timestamp

Get Users

Retrieves a list of users from Zscaler. This action can be leveraged by Leena AI Orchestrator/Agent to list down all the users or filter users based on specific criteria. Here are some common use cases:

  • User Directory: Get all users in the organization
  • Department Lookup: Find users by department
  • Group Members: List users belonging to a specific group
  • User Search: Find specific users by name

Input Parameters

Here are the input parameters required to set up this action:

Mandatory

None - All parameters are optional for this action.

Optional

NameDescription
NameFilters by user name
DeptFilters by department name
GroupFilters by group name
PageSpecifies the page offset
Page SizeSpecifies the page size. The default size is 100 and the maximum size is 10,000

Here is a sample JSON input:

{
  "name": "John",
  "dept": "Engineering",
  "page": 1,
  "pageSize": 50
}

Response

The action returns a list of users, each containing:

  • User ID
  • Name and email
  • Department information
  • Group memberships
  • User status

Get Individual User

Retrieves details of a specific user from Zscaler by their ID. The Agent can leverage this action to get complete information about a single user.


Input Parameters

Here are the input parameters required to set up this action:

Mandatory

NameDescription
UserThe unique identifier of the user to retrieve

Optional

None - No optional parameters for this action.

Here is a sample JSON input:

{
  "userId": "12345678"
}

Response

Upon successful retrieval, the action returns the user details including:

  • User ID
  • Full name and email
  • Department information
  • Group memberships
  • User comments
  • Account status

Update User

Updates an existing user in Zscaler. The Agent can leverage the skill (workflow), which has been designed to modify an existing user account in Zscaler, once the user provides the details to be updated. Here are some common use cases:

  • Role Changes: Update user's group assignments
  • Department Transfer: Move user to a different department
  • Profile Updates: Modify user name or email
  • Password Reset: Update user password
  • Access Modification: Change user permissions via groups

Input Parameters

Here are the input parameters required to set up this action:

Mandatory

NameDescription
UserThe unique identifier of the user to be updated
NameThe updated full name of the user
EmailThe updated email address of the user
GroupsUpdated list of groups for the user
Department NameThe updated department name
PasswordThe updated password for the user

Optional

NameDescription
Department IDThe unique identifier of the department
Department IdP IDThe Identity Provider ID for the department
Department CommentsAdditional comments about the department
Department DeletedFlag indicating if department is marked as deleted
CommentsAdditional information about this user
Temporary Authentication EmailEmail address for temporary authentication purposes
Group IDThe unique identifier of each group
Group IdP IDThe Identity Provider ID for the group
Group CommentsAdditional comments about the group
Is System DefinedFlag indicating if the group is system-defined

Here is a sample JSON input:

//Update User Department

{
  "userId": "12345678",
  "name": "John Smith",
  "email": "[email protected]",
  "groups": [
    {
      "id": 12345,
      "name": "Engineering Team"
    }
  ],
  "department": {
    "id": 99999,
    "name": "Product Development"
  },
  "password": "SecurePassword123!"
}

//Update User Groups

{
  "userId": "12345678",
  "name": "John Smith",
  "email": "[email protected]",
  "groups": [
    {
      "id": 12345,
      "name": "Engineering Team"
    },
    {
      "id": 54321,
      "name": "Project Alpha"
    }
  ],
  "department": {
    "id": 67890,
    "name": "Engineering"
  },
  "password": "SecurePassword123!"
}

//Complete User Update

{
  "userId": "12345678",
  "name": "John D. Smith",
  "email": "[email protected]",
  "groups": [
    {
      "id": 12345,
      "name": "Senior Engineers"
    }
  ],
  "department": {
    "id": 67890,
    "name": "Engineering"
  },
  "comments": "Promoted to Senior Engineer",
  "password": "NewSecurePassword456!"
}

Response

Upon successful update, the action returns the updated user details including:

  • Updated user properties
  • User ID
  • Modification timestamp
  • Group and department assignments

Delete User

Deletes an existing user from Zscaler. The Agent can leverage the skill (workflow), which has been designed to remove a user account from Zscaler, once the user specifies the account to be deleted. Here are some common use cases:

  • Offboarding: Remove departed employees from Zscaler
  • Account Cleanup: Delete obsolete or duplicate accounts
  • Security Compliance: Remove unauthorized user accounts
  • Access Revocation: Immediately remove user access

Input Parameters

Here are the input parameters required to set up this action:

Mandatory

NameDescription
UserThe unique identifier of the user to be deleted

Optional

None - No optional parameters for this action.

Here is a sample JSON input:

{
  "userId": "12345678"
}

Response

Upon successful deletion, the action returns:

  • Confirmation of successful deletion
  • HTTP status code
  • Deletion timestamp

Get list of groups

Retrieves a list of groups from Zscaler. This action can be leveraged by Leena AI Orchestrator/Agent to list down all the groups with filtering and sorting options. Here are some common use cases:

  • Group Directory: Get all groups in the organization
  • Group Search: Find groups by name or other attributes
  • Access Control Review: List groups for access management
  • Policy Assignment: Identify groups for policy configuration

Input Parameters

Here are the input parameters required to set up this action:

Mandatory

None - All parameters are optional for this action.

Optional

NameDescription
SearchThe search string used to match against a group's name or comments attributes
Defined ByThe string value defined by the group name or other applicable attributes
PageSpecifies the page offset
Page SizeSpecifies the page size
Sort BySorts the groups based on available values: id, name, expiry, status, externalId, rank, modTime
Sort OrderSorts the order of groups: asc, desc, ruleExecution

Here is a sample JSON input:

{
  "search": "Engineering",
  "page": 1,
  "pageSize": 50,
  "sortBy": "name",
  "sortOrder": "asc"
}

Response

The action returns a list of groups, each containing:

  • Group ID
  • Group name
  • IdP ID
  • Comments
  • System defined status

Get List of departments

Retrieves a list of departments from Zscaler. This action can be leveraged by Leena AI Orchestrator/Agent to list down all the departments with filtering and sorting options. Here are some common use cases:

  • Organization Structure: Get all departments in the organization
  • Department Lookup: Find specific departments by name
  • User Assignment: Identify departments for user provisioning
  • Reporting: Generate department-based reports

Input Parameters

Here are the input parameters required to set up this action:

Mandatory

None - All parameters are optional for this action.

Optional

NameDescription
SearchThe search string used to match against a department's name or comments attributes
PageSpecifies the page offset
Limit SearchLimits the search to match only against the department name
Page SizeSpecifies the page size
Sort BySorts the departments based on available values: id, name, expiry, status, externalId, rank
Sort OrderSorts the order of departments: asc, desc, ruleExecution

Here is a sample JSON input:

{
  "search": "Engineering",
  "page": 1,
  "pageSize": 50,
  "limitSearch": false,
  "sortBy": "name",
  "sortOrder": "asc"
}

Response

The action returns a list of departments, each containing:

  • Department ID
  • Department name
  • IdP ID
  • Comments
  • Deleted status