> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ravenna.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Workflows

> Use JumpCloud workflow actions in Ravenna to automate user creation, suspension, group changes, password resets, and device lookups in identity flows.

Use JumpCloud actions in <Tooltip headline="Workflows" tip="Automated actions triggered by ticket events or manual triggers" cta="Learn about workflows" href="/documentation/automate/workflows/overview">workflows</Tooltip> to automate user lifecycle management, group assignments, security resets, and device lookups.

<Callout icon="link" color="#6B7280">
  See [JumpCloud setup guide](/integrations/jumpcloud/setup/api-token) to connect your organization
</Callout>

## Actions

<AccordionGroup>
  <Accordion title="Create User">
    Creates a new user in JumpCloud with the specified details. Generates a temporary password that the user must change on first login. Use this to automate account provisioning during onboarding workflows.

    **Input fields:**

    * `Email` - Email address for the new user
    * `First Name` - User's first name
    * `Last Name` - User's last name
    * `State` (optional) - Initial account state (e.g., "ACTIVATED")
    * `Manager` (optional) - Ravenna user ID to set as the user's manager in JumpCloud

    **Output data:**

    * `userId` - The Ravenna user ID for the newly created user
    * `temporaryPassword` - A temporary password for initial login

    **Common use cases:**

    * Automate new employee account creation during onboarding
    * Provision JumpCloud accounts from HR system triggers
    * Create user accounts as part of access request workflows
    * Set up contractor accounts with automated workflows
  </Accordion>

  <Accordion title="Delete User">
    Permanently removes one or more users from JumpCloud. Use this for offboarding workflows or to clean up accounts that are no longer needed.

    **Input fields:**

    * `User IDs` - One or more Ravenna user IDs to remove (supports user groups)

    **Common use cases:**

    * Automate account removal during employee offboarding
    * Clean up unused or orphaned accounts
    * Remove contractor accounts after engagement ends
    * Implement automated account lifecycle policies
  </Accordion>

  <Accordion title="Check User Exists">
    Checks if a user exists in JumpCloud using a multi-step lookup: first by cached data, then by JumpCloud user ID, and finally by email address. Use this to verify user existence before performing other actions.

    **Input fields:**

    * `User IDs` - One or more Ravenna user IDs to check

    **Output data:**

    * `isSuccess` - Boolean indicating if the user was found in JumpCloud

    **Common use cases:**

    * Verify a user exists before provisioning access
    * Check if accounts already exist before creating new ones
    * Validate user status in conditional workflows
    * Pre-check user existence before group assignments
  </Accordion>

  <Accordion title="Get User by Email">
    Looks up a user in JumpCloud by their email address and returns whether the user exists along with their Ravenna user ID if found. Use this to find users dynamically when you only have an email, such as a requester address from a ticket.

    **Input fields:**

    * `Email` - Email address to search for in JumpCloud

    **Output data:**

    * `isSuccess` - Boolean indicating if the user was found in JumpCloud
    * `userId` - The Ravenna user ID if the user was found

    **Common use cases:**

    * Resolve a ticket requester's email to a JumpCloud user before running other actions
    * Verify a user exists before provisioning access
    * Find users by email for downstream workflow actions
    * Branch workflow logic based on whether an account already exists
  </Accordion>

  <Accordion title="Suspend User">
    Suspends one or more user accounts in JumpCloud, disabling their access without permanently deleting the account. Use this for temporary access suspension or as part of offboarding workflows.

    **Input fields:**

    * `User IDs` - One or more Ravenna user IDs to suspend (supports user groups)

    **Common use cases:**

    * Suspend access during employee offboarding
    * Temporarily disable accounts for employees on extended leave
    * Respond to security incidents by quickly disabling compromised accounts
    * Implement automated account suspension policies
  </Accordion>

  <Accordion title="Restore User">
    Reactivates one or more suspended user accounts in JumpCloud, restoring their access. Use this when employees return from leave or when accounts need to be reactivated.

    **Input fields:**

    * `User IDs` - One or more Ravenna user IDs to restore (supports user groups)

    **Common use cases:**

    * Reactivate accounts when employees return from leave
    * Restore access after security review clears an account
    * Re-enable contractor accounts for new engagements
    * Implement automated account reactivation workflows
  </Accordion>

  <Accordion title="Unlock User">
    Unlocks one or more locked-out user accounts in JumpCloud. Accounts can become locked after too many failed login attempts. Use this to restore access without resetting credentials.

    **Input fields:**

    * `User IDs` - One or more Ravenna user IDs to unlock (supports user groups)

    **Common use cases:**

    * Unlock accounts after failed login attempts
    * Resolve lockouts from automated security policies
    * Help users regain access without a full password reset
    * Automate lockout resolution in self-service workflows
  </Accordion>

  <Accordion title="Add User to Group">
    Adds one or more users to JumpCloud groups. Use this to grant team access, provision group-based permissions, or automate group membership during onboarding.

    **Input fields:**

    * `User IDs` - One or more Ravenna user IDs to add (supports user groups)
    * `Groups` - One or more JumpCloud groups to add the users to

    **Common use cases:**

    * Automate onboarding group assignments
    * Grant team access after approval
    * Provision group-based permissions
    * Add users to distribution or security groups
  </Accordion>

  <Accordion title="Remove User from Group">
    Removes one or more users from JumpCloud groups. Use this to revoke access, handle offboarding, or update group memberships based on role changes.

    **Input fields:**

    * `User IDs` - One or more Ravenna user IDs to remove (supports user groups)
    * `Groups` - One or more JumpCloud groups to remove the users from

    **Common use cases:**

    * Revoke access during offboarding
    * Update group memberships after role changes
    * Remove temporary access after a project ends
    * Clean up stale group assignments
  </Accordion>

  <Accordion title="Check Group Membership">
    Checks if a user is a member of a specific JumpCloud group. Use this to validate access, make conditional workflow decisions, or verify group memberships before granting permissions.

    **Input fields:**

    * `User IDs` - One or more Ravenna user IDs to check
    * `Group` - The JumpCloud group to check membership against

    **Output data:**

    * `isMember` - Boolean indicating if the user is a member of the group

    **Common use cases:**

    * Validate access before performing actions
    * Make conditional workflow decisions based on group membership
    * Verify group prerequisites before granting additional permissions
    * Audit group memberships during access reviews
  </Accordion>

  <Accordion title="List User Groups">
    Lists all JumpCloud groups that a user belongs to. Returns the group IDs for use in downstream workflow actions, making it easy to audit, replicate, or revoke a user's group memberships.

    **Input fields:**

    * `User ID` - The Ravenna user ID to list groups for

    **Output data:**

    * `groups` - Array of JumpCloud group IDs the user is a member of

    **Common use cases:**

    * Audit a user's current group memberships during access reviews
    * Capture group memberships before offboarding so they can be restored if needed
    * Replicate one user's group access onto another user
    * Iterate over a user's groups to remove them in bulk during offboarding
  </Accordion>

  <Accordion title="Create Group">
    Creates a new user group in JumpCloud. Use this to set up teams, project groups, or access groups as part of onboarding or project provisioning workflows.

    **Input fields:**

    * `Name` - Name of the group to create
    * `Description` (optional) - Description of the group

    **Output data:**

    * `groupId` - The ID of the newly created JumpCloud group

    **Common use cases:**

    * Create team groups during project setup
    * Provision access groups as part of onboarding workflows
    * Set up temporary groups for time-limited projects
    * Automate group creation from access request approvals
  </Accordion>

  <Accordion title="Update Group">
    Updates an existing user group in JumpCloud. Use this to rename a group, change its description, or adjust which users are exempted from its member query as roles change or as workflows evolve.

    **Input fields:**

    * `Group` - The JumpCloud group to update
    * `Group Name` (optional) - New name for the group
    * `Description` (optional) - New description for the group
    * `Exemptions` (optional) - One or more Ravenna user IDs to exempt from the group's member query (supports user groups)

    **Output data:**

    * `groupId` - The ID of the updated JumpCloud group

    **Common use cases:**

    * Rename groups after team or project changes
    * Update group descriptions to reflect new ownership or purpose
    * Adjust exempted users when roles change
    * Standardize group naming as part of access governance workflows
  </Accordion>

  <Accordion title="Delete Group">
    Deletes a user group from JumpCloud. Use this to clean up groups that are no longer needed or as part of project decommissioning workflows.

    **Input fields:**

    * `Group` - The JumpCloud group to delete

    **Common use cases:**

    * Clean up unused groups
    * Decommission project-specific groups
    * Remove temporary groups after access period ends
    * Automate group lifecycle management
  </Accordion>

  <Accordion title="Reset MFA/Password">
    Resets MFA authenticators and/or password for users in JumpCloud. MFA reset clears TOTP and WebAuthn authenticators with a configurable exclusion period. Password reset generates a temporary password that the user must change on next login.

    **Scope options:**

    * **MFA only** - Resets all MFA authenticators (TOTP and WebAuthn), requiring re-enrollment
    * **Password only** - Generates a temporary password with forced change on next login
    * **Both** - Resets both MFA authenticators and password simultaneously

    **Output data:**

    * `temporaryPassword` - The generated temporary password (when password reset is included)

    **Common use cases:**

    * Help users who lost their MFA device
    * Handle security incidents requiring full credential reset
    * Reset compromised authentication methods
    * Automate password reset requests from the service desk
  </Accordion>

  <Accordion title="Get User Devices">
    Retrieves all devices (systems) bound to a user in JumpCloud. Returns detailed device information including platform, operating system, encryption status, and agent version. Devices are matched by email address.

    **Output data:**

    * `devices` - Array of devices with the following details:
      * Display name, hostname, platform
      * OS version, serial number, model
      * Last contact timestamp, agent version
      * Disk encryption status, MDM enrollment status

    **Common use cases:**

    * Look up a requester's devices for troubleshooting
    * Verify device compliance before granting access
    * Gather device inventory for a user during onboarding or offboarding
    * Check encryption and MDM status for security reviews
  </Accordion>
</AccordionGroup>
