<!-- BusyBot node reference — https://busybot.net/tools/okta/ -->

> Node: Okta (`okta`) · Action · v1
> Category: Development · Credentials: Okta API (`oktaApi`)
> Updated: 2026-08-16

# Okta

> Create, read, update, and delete users in Okta.

## Overview

Okta is an identity and access management platform. This tool allows you to create, retrieve, update, and delete user accounts via the Okta Users API. It supports cursor-based pagination for listing users, search/filter queries, and a simplified response mode that returns only core user fields.

**Category:** Development  
**Tool Name:** `okta`  
**Version:** 1

**Appearance:** Icon: `si-okta` | Color: `#007dc1`

## Node Type

**Action** — processes input items and produces output

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | `Input` |
| Output | `Output`, `Error` |

## Credentials

This tool requires **Okta API** credentials.
See the [Credentials Guide](https://busybot.net/credentials/okta-api/) for setup instructions.

### Resources

| Resource | Value |
|----------|-------|
| User | `user` |

### Operations

| Operation | Value | Description |
|-----------|-------|-------------|
| Create | `create` | Create a new user |
| Delete | `delete` | Delete an existing user |
| Get | `get` | Get details of a user |
| Get Many | `getAll` | Get many users |
| Update | `update` | Update an existing user |

### Parameters

#### User: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| First Name | `string` | Yes | — | First name of the user. Supports expressions like {{ $json.firstName }}. |
| Last Name | `string` | Yes | — | Last name of the user. Supports expressions like {{ $json.lastName }}. |
| Username | `string` | Yes | — | Unique identifier for the user (must be an email address). Supports expressions. |
| Email | `string` | Yes | — | Primary email address of the user. Supports expressions. |
| Activate | `boolean` | No | `true` | Whether to activate the user and allow access to all assigned applications. |
| Fields (`getCreateFields`) | `collection` | No | `{}` | Additional optional fields for user creation. |
| — City | `string` | No | — | City for the user's address. |
| — Cost Center | `string` | No | — | Name of cost center assigned to user. |
| — Country Code | `string` | No | — | Country code (ISO 3166-1 alpha-2). |
| — Department | `string` | No | — | Name of user's department. |
| — Display Name | `string` | No | — | Name of the user displayed in the UI. |
| — Division | `string` | No | — | Name of user's division. |
| — Employee Number | `string` | No | — | Organization- or company-assigned unique identifier. |
| — Honorific Prefix | `string` | No | — | Honorific prefix (e.g., Mr., Dr.). |
| — Honorific Suffix | `string` | No | — | Honorific suffix (e.g., Jr., III). |
| — Locale | `string` | No | — | User's default location for time zone and language (e.g., en_US). |
| — Manager | `string` | No | — | DisplayName of the user's manager. |
| — Manager ID | `string` | No | — | ID of the user's manager. |
| — Middle Name | `string` | No | — | Middle name of the user. |
| — Mobile Phone | `string` | No | — | Mobile phone number. |
| — Nick Name | `string` | No | — | Casual way to address the user. |
| — Organization | `string` | No | — | Name of the user's organization. |
| — Password | `string` | No | — | Initial password for the user. |
| — Postal Address | `string` | No | — | Mailing address component. |
| — Preferred Language | `string` | No | — | User's preferred written or spoken language (e.g., en-US). |
| — Primary Phone | `string` | No | — | Primary phone number. |
| — Profile URL | `string` | No | — | URL of the user's online profile (e.g., a web page). |
| — Recovery Question Answer | `string` | No | — | Answer to the security/recovery question. |
| — Recovery Question | `string` | No | — | Security/recovery question text. |
| — Second Email | `string` | No | — | Alternate email address of the user. |
| — State | `string` | No | — | State or province component of the user's address. |
| — Street Address | `string` | No | — | Full street address component. |
| — Timezone | `string` | No | — | User's time zone (IANA format, e.g., America/Los_Angeles). |
| — Title | `string` | No | — | User's title (e.g., Vice President). |
| — User Type | `string` | No | — | Used to describe the organization-to-user relationship. |
| — Zip Code | `string` | No | — | Zip or postal code. |

Password, Recovery Question and Recovery Question Answer are sent as the new user's credentials; every other field becomes part of the user's profile.

#### User: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| User ID | `string` | Yes | — | The Okta user ID or login (username/email). Find in Okta Admin Console: Directory > People > select user > General tab. Supports expressions like {{ $json.userId }}. |
| Send Email | `boolean` | No | `false` | Whether to send a deactivation email to the administrator. |

#### User: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| User ID | `string` | Yes | — | The Okta user ID or login (username/email). Find in Okta Admin Console: Directory > People > select user > General tab. Supports expressions like {{ $json.userId }}. |
| Simplify | `boolean` | No | `true` | Whether to return a simplified version of the response instead of the raw data. |

#### User: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Search Query | `string` | No | — | Filter users using Okta search expression syntax. See https://developer.okta.com/docs/reference/core-okta-api/#filter for syntax reference. Supports expressions. |
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `20` | Max number of results to return. _(shown when Return All is `false`)_ |
| Simplify | `boolean` | No | `true` | Whether to return a simplified version of the response instead of the raw data. |

#### User: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| User ID | `string` | Yes | — | The Okta user ID or login (username/email). Find in Okta Admin Console: Directory > People > select user > General tab. Supports expressions like {{ $json.userId }}. |
| Fields (`getUpdateFields`) | `collection` | No | `{}` | Fields to update on the user profile. |
| — City | `string` | No | — | City for the user's address. |
| — Cost Center | `string` | No | — | Name of cost center assigned to user. |
| — Country Code | `string` | No | — | Country code (ISO 3166-1 alpha-2). |
| — Department | `string` | No | — | Name of user's department. |
| — Display Name | `string` | No | — | Name of the user displayed in the UI. |
| — Division | `string` | No | — | Name of user's division. |
| — Email | `string` | No | — | Primary email address of the user. |
| — Employee Number | `string` | No | — | Organization- or company-assigned unique identifier. |
| — First Name | `string` | No | — | First name of the user. |
| — Honorific Prefix | `string` | No | — | Honorific prefix (e.g., Mr., Dr.). |
| — Honorific Suffix | `string` | No | — | Honorific suffix (e.g., Jr., III). |
| — Last Name | `string` | No | — | Last name of the user. |
| — Locale | `string` | No | — | User's default location for time zone and language (e.g., en_US). |
| — Manager | `string` | No | — | DisplayName of the user's manager. |
| — Manager ID | `string` | No | — | ID of the user's manager. |
| — Middle Name | `string` | No | — | Middle name of the user. |
| — Mobile Phone | `string` | No | — | Mobile phone number. |
| — Nick Name | `string` | No | — | Casual way to address the user. |
| — Organization | `string` | No | — | Name of the user's organization. |
| — Password | `string` | No | — | Initial password for the user. |
| — Postal Address | `string` | No | — | Mailing address component. |
| — Preferred Language | `string` | No | — | User's preferred written or spoken language (e.g., en-US). |
| — Primary Phone | `string` | No | — | Primary phone number. |
| — Profile URL | `string` | No | — | URL of the user's online profile (e.g., a web page). |
| — Recovery Question | `string` | No | — | Security/recovery question text. |
| — Recovery Question Answer | `string` | No | — | Answer to the security/recovery question. |
| — Second Email | `string` | No | — | Alternate email address of the user. |
| — State | `string` | No | — | State or province component of the user's address. |
| — Street Address | `string` | No | — | Full street address component. |
| — Timezone | `string` | No | — | User's time zone (IANA format, e.g., America/Los_Angeles). |
| — Title | `string` | No | — | User's title (e.g., Vice President). |
| — User Type | `string` | No | — | Used to describe the organization-to-user relationship. |
| — Username | `string` | No | — | Unique identifier (must be an email). |
| — Zip Code | `string` | No | — | Zip or postal code. |

#### All Operations

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Max Concurrency | `number` | No | `10` | Maximum number of items to process concurrently. |

## Output Data

The Okta response is **merged onto the input item JSON** — the fields already on the item pass through and the user object is written on top of them.

| Operation | Output items per input item |
|-----------|-----------------------------|
| `create`, `get`, `update` | One item carrying the Okta user object. Binary data is forwarded unchanged. |
| `delete` | One item carrying `success: true`. Binary data is forwarded unchanged. |
| `getAll` | **Fans out** — one item per user. Binary data is **not** forwarded on this operation. |

With **Simplify** on (the default for Get and Get Many), the user object is reduced to the core fields:

```json
{
  "id": "00u1abcd2345EfGHIjk6",
  "status": "ACTIVE",
  "created": "2026-01-15T10:30:00.000Z",
  "activated": "2026-01-15T10:31:00.000Z",
  "lastLogin": "2026-02-02T08:12:00.000Z",
  "lastUpdated": "2026-02-01T17:45:00.000Z",
  "passwordChanged": "2026-01-15T10:31:00.000Z",
  "profile": {
    "firstName": "Nathan",
    "lastName": "Smith",
    "login": "nathan@example.com",
    "email": "nathan@example.com"
  }
}
```

Turn Simplify off to get the raw Okta user object, including the full profile, credentials metadata and `_links`. Create and Update always return the raw object.

Deleting a user in Okta requires deactivating it first; this node does both in one call, so a still-active user is deactivated and then removed. With Return All on, Get Many pages through every user with the API cursor; with it off, it requests one page capped at Limit.

Reference the result downstream by expression, e.g. `{{ $json.id }}` or `{{ $json.profile.email }}`.

## Usage Examples

- Create a new Okta user with email and name
- List all active users in Okta
- Delete a deprovisioned user from Okta
- Update a user's department and title in Okta
- Get details of a specific Okta user by ID

## Example Configuration

Create a user with an extended profile, without activating it yet:

```json
{
  "type": "okta",
  "parameters": {
    "resource": "user",
    "operation": "create",
    "firstName": "{{ $json.firstName }}",
    "lastName": "{{ $json.lastName }}",
    "login": "{{ $json.email }}",
    "email": "{{ $json.email }}",
    "activate": false,
    "getCreateFields": {
      "department": "Engineering",
      "title": "Senior Developer",
      "mobilePhone": "+1-555-0123",
      "manager": "manager@example.com",
      "employeeNumber": "EMP001"
    }
  }
}
```

Get one user in simplified form:

```json
{
  "type": "okta",
  "parameters": {
    "resource": "user",
    "operation": "get",
    "userId": "{{ $json.userId }}",
    "simplify": true
  }
}
```

List active engineers, 50 at a time:

```json
{
  "type": "okta",
  "parameters": {
    "resource": "user",
    "operation": "getAll",
    "searchQuery": "profile.department eq \"Engineering\" and status eq \"ACTIVE\"",
    "returnAll": false,
    "limit": 50,
    "simplify": true
  }
}
```

Update a user's profile:

```json
{
  "type": "okta",
  "parameters": {
    "resource": "user",
    "operation": "update",
    "userId": "{{ $json.id }}",
    "getUpdateFields": {
      "title": "Lead Developer",
      "department": "Engineering",
      "city": "Austin",
      "state": "TX"
    }
  }
}
```

Delete a user and notify the administrator:

```json
{
  "type": "okta",
  "parameters": {
    "resource": "user",
    "operation": "delete",
    "userId": "{{ $json.userId }}",
    "sendEmail": true
  }
}
```

### Error Handling

| Mode | Behavior |
|------|----------|
| **stop** | Halts workflow on first error |
| **continue** | Skips failed items, passes successful ones through |
| **errorPort** | Routes failed items to Error output port |

## Tips

Create, read, update, and delete user accounts in Okta identity management platform.