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

# Organizations

> Organizations in Kodexa are logical containers for users, resources, and settings, enabling team collaboration, access control, and workflow management.

The Kodexa platform provides a powerful way to manage and organize your data processing workflows. One of the key concepts in Kodexa is the Organization, which serves as a container for various resources and settings. This article will explore the Organization concept and demonstrate how to interact with it using the Kodexa client.

## What is a Kodexa Organization?

A Kodexa Organization is a logical grouping of resources, settings, and users within the Kodexa platform. It allows you to:

* Manage access to resources
* Configure settings for your team
* Organize projects and workflows

Each Organization has a unique identifier (slug) and can have various properties such as a name, description, and associated image.

## Interacting with Organizations using the Kodexa Client

The Kodexa client provides a convenient way to interact with Organizations programmatically. Let's explore some common operations you can perform using the client.

### Accessing Organization Information

To work with an Organization, you typically use the `OrganizationEndpoint` class. This class provides methods to retrieve and modify Organization-related data.

```python theme={null}
from kodexa import KodexaClient, OrganizationEndpoint

# Assuming you have already initialized the KodexaClient
client = KodexaClient(...)

# Get the Organization endpoint
organization = client.organization("your-org-slug")

```

### Retrieving Available Resources

Organizations have access to various resources such as templates, models, and assistants. You can retrieve these using the following methods:

```python theme={null}
# Get available templates
templates = organization.available_templates

# Get available models
models = organization.available_models

# Get available assistants
assistants = organization.available_assistants

```

### Managing Products and Subscriptions

Organizations can subscribe to different products within the Kodexa platform. Here's how you can manage products and subscriptions:

```python theme={null}
# List available products
products = client.products.list()

# Add a subscription to a product
organization.add_subscription(product)

# Get current subscriptions
subscriptions = organization.get_subscriptions()

# Remove a subscription
organization.remove_subscription(subscription)

```

## Example: Adding and Removing a Product Subscription

Let's walk through an example of adding and removing a product subscription for an Organization:

```python theme={null}
def manage_product_subscription(client: KodexaClient, organization: OrganizationEndpoint):
    # List available products
    products = client.products.list()

    if len(products.content) > 0:
        # Select the first product
        test_product = products.content[0]

        # Add subscription to the product
        organization.add_subscription(test_product)

        # Get current subscriptions
        subscriptions = organization.get_subscriptions()

        # Remove the subscription we just added
        for subscription in subscriptions.content:
            if subscription.organization.slug == organization.slug:
                organization.remove_subscription(subscription)

        # Verify that the subscription was removed
        updated_subscriptions = organization.get_subscriptions()
        assert len(updated_subscriptions.content) == 0

```

## Organization Features

Some organization-wide behaviour is controlled from **Manage → Organization Profile → Features**. These settings are stored on the organization's `features` object and apply to every project and user in the organization. (Manage is the top-level administration area introduced in 2026.6 -- see [Manage](/concepts/manage).)

### User Presence & Activity

<Warning>
  Enabling user presence & activity tracking is a form of workforce monitoring. Your organization acts as the data controller for the collected information and is responsible for ensuring the collection is lawful in your jurisdiction -- including having a valid lawful basis and notifying the affected individuals. Review the on-screen legal & privacy callout before enabling it.
</Warning>

Presence tracking is **off by default**. When an administrator enables **Presence tracking** on the Features tab, the platform sets `features.presenceTrackingEnabled = true` on the organization and begins collecting a small set of derived, per-user signals to power presence ("who is online") and task-open timing views:

* A periodic presence heartbeat (roughly every two minutes while the tab is visible, throttled while it is hidden) recording whether the user is **active** (recent mouse, keyboard, touch, or scroll input) versus idle, and whether the browser tab is visible.
* Task and task-group open events, including how long the task took to load.

**No raw input is ever captured** -- no keystrokes, no mouse coordinates, and no scroll positions. Only the derived `active` / `tabVisible` booleans and load timing are recorded, and these signals are tied to the named, authenticated user.

Collection is enforced on the server: while the flag is off, the platform silently drops the presence, task, and task-group monitoring events for the organization (failing closed), so nothing is collected without an explicit opt-in. See [Publish UI events batch](/api-reference/events/post-events-ui-batch) for the event ingestion endpoint.

## Conclusion

The Kodexa platform's Organization concept provides a flexible way to manage resources and settings for your team. By using the Kodexa client, you can easily interact with Organizations programmatically, allowing you to automate various tasks and integrate Kodexa functionality into your workflows.

Remember to refer to the Kodexa documentation for the most up-to-date information on available methods and best practices when working with Organizations and the Kodexa client.
