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

# Organization Events

> Audit log events for organization settings, domains, and membership management

Organization events track administrative actions related to organization configuration, domain management, and member access views. These events record changes to organization settings and views of organization-level information.

<Info>
  All organization events include the standard [actor, targets, context, and metadata](/logs/audit-events#base-event-schema) fields. The schemas below show event-specific fields.
</Info>

## organization.create

Records when a new organization is created during user onboarding.

### Triggered When

User completes the onboarding flow and creates their first organization.

### Event Schema

<ResponseField name="action" type="string" required>
  `organization.create`
</ResponseField>

<ResponseField name="targets" type="array" required>
  <Expandable title="organization target">
    <ResponseField name="type" type="string" required>
      `organization`
    </ResponseField>

    <ResponseField name="id" type="string" required>
      Organization's unique identifier
    </ResponseField>

    <ResponseField name="name" type="string" required>
      Organization name
    </ResponseField>

    <ResponseField name="metadata" type="object" required>
      Empty object (no additional metadata)
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="metadata.source" type="string" required>
  Page route where organization was created (typically onboarding flow route)
</ResponseField>

### Example Event

```json theme={null}
{
  "action": "organization.create",
  "occurredAt": "2025-01-15T10:30:00.000Z",
  "version": 1,
  "actor": {
    "type": "user",
    "id": "user_01JGXYZ123",
    "name": "Alice Johnson",
    "metadata": {
      "first_name": "Alice",
      "last_name": "Johnson",
      "email": "alice@example.com",
      "impersonator_email": "",
      "impersonator_reason": ""
    }
  },
  "targets": [
    {
      "type": "organization",
      "id": "org_01JGXYZ456",
      "name": "Acme Corp",
      "metadata": {}
    }
  ],
  "context": {
    "location": "192.0.2.1",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)..."
  },
  "metadata": {
    "source": "/onboarding"
  }
}
```

***

## organization.update\_name

Records when an organization's name is changed.

### Triggered When

Admin updates the organization name in organization settings.

### Event Schema

<ResponseField name="action" type="string" required>
  `organization.update_name`
</ResponseField>

<ResponseField name="targets" type="array" required>
  <Expandable title="organization target">
    <ResponseField name="type" type="string" required>
      `organization`
    </ResponseField>

    <ResponseField name="id" type="string" required>
      Organization's unique identifier
    </ResponseField>

    <ResponseField name="name" type="string" required>
      Organization's new name (post-update)
    </ResponseField>

    <ResponseField name="metadata.old_name" type="string" required>
      Organization's previous name
    </ResponseField>

    <ResponseField name="metadata.new_name" type="string" required>
      Organization's new name
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="metadata.source" type="string" required>
  Always `organization_settings`
</ResponseField>

### Example Event

```json theme={null}
{
  "action": "organization.update_name",
  "occurredAt": "2025-01-15T14:20:00.000Z",
  "version": 1,
  "actor": {
    "type": "user",
    "id": "user_01JGXYZ123",
    "name": "Alice Johnson",
    "metadata": {
      "first_name": "Alice",
      "last_name": "Johnson",
      "email": "alice@example.com",
      "impersonator_email": "",
      "impersonator_reason": ""
    }
  },
  "targets": [
    {
      "type": "organization",
      "id": "org_01JGXYZ456",
      "name": "Acme Corporation",
      "metadata": {
        "old_name": "Acme Corp",
        "new_name": "Acme Corporation"
      }
    }
  ],
  "context": {
    "location": "192.0.2.1",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)..."
  },
  "metadata": {
    "source": "organization_settings"
  }
}
```

***

## organization.view\_settings

Records when a user views the organization settings page.

### Triggered When

User navigates to the organization details/settings page.

### Event Schema

<ResponseField name="action" type="string" required>
  `organization.view_settings`
</ResponseField>

<ResponseField name="targets" type="array" required>
  <Expandable title="organization target">
    <ResponseField name="type" type="string" required>
      `organization`
    </ResponseField>

    <ResponseField name="id" type="string" required>
      Organization's unique identifier
    </ResponseField>

    <ResponseField name="name" type="string" required>
      Organization name
    </ResponseField>

    <ResponseField name="metadata.name" type="string" required>
      Organization name (duplicated for consistency)
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="metadata.source" type="string" required>
  Page route (e.g., `/organizations/[orgId]/details`)
</ResponseField>

### Example Event

```json theme={null}
{
  "action": "organization.view_settings",
  "occurredAt": "2025-01-15T09:15:00.000Z",
  "version": 1,
  "actor": {
    "type": "user",
    "id": "user_01JGXYZ123",
    "name": "Alice Johnson",
    "metadata": {
      "first_name": "Alice",
      "last_name": "Johnson",
      "email": "alice@example.com",
      "impersonator_email": "",
      "impersonator_reason": ""
    }
  },
  "targets": [
    {
      "type": "organization",
      "id": "org_01JGXYZ456",
      "name": "Acme Corp",
      "metadata": {
        "name": "Acme Corp"
      }
    }
  ],
  "context": {
    "location": "192.0.2.1",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)..."
  },
  "metadata": {
    "source": "/organizations/org_01JGXYZ456/details"
  }
}
```

***

## organization.view\_domains

Records when a user views the organization's domain management page.

### Triggered When

User navigates to the organization domains page.

### Event Schema

<ResponseField name="action" type="string" required>
  `organization.view_domains`
</ResponseField>

<ResponseField name="targets" type="array" required>
  <Expandable title="organization target">
    <ResponseField name="type" type="string" required>
      `organization`
    </ResponseField>

    <ResponseField name="id" type="string" required>
      Organization's unique identifier
    </ResponseField>

    <ResponseField name="name" type="string" required>
      Organization name
    </ResponseField>

    <ResponseField name="metadata.name" type="string" required>
      Organization name (duplicated for consistency)
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="metadata.source" type="string" required>
  Page route (e.g., `/organizations/[orgId]/domains`)
</ResponseField>

### Example Event

```json theme={null}
{
  "action": "organization.view_domains",
  "occurredAt": "2025-01-15T11:45:00.000Z",
  "version": 1,
  "actor": {
    "type": "user",
    "id": "user_01JGXYZ123",
    "name": "Alice Johnson",
    "metadata": {
      "first_name": "Alice",
      "last_name": "Johnson",
      "email": "alice@example.com",
      "impersonator_email": "",
      "impersonator_reason": ""
    }
  },
  "targets": [
    {
      "type": "organization",
      "id": "org_01JGXYZ456",
      "name": "Acme Corp",
      "metadata": {
        "name": "Acme Corp"
      }
    }
  ],
  "context": {
    "location": "192.0.2.1",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)..."
  },
  "metadata": {
    "source": "/organizations/org_01JGXYZ456/domains"
  }
}
```

***

## organization.delete\_domain

Records when a domain is removed from an organization.

### Triggered When

Admin deletes a verified domain from the organization's domain list.

### Event Schema

<ResponseField name="action" type="string" required>
  `organization.delete_domain`
</ResponseField>

<ResponseField name="targets" type="array" required>
  <Expandable title="organization_domain target">
    <ResponseField name="type" type="string" required>
      `organization_domain`
    </ResponseField>

    <ResponseField name="id" type="string" required>
      Domain's unique identifier
    </ResponseField>

    <ResponseField name="name" type="string" required>
      Domain name (e.g., `example.com`)
    </ResponseField>

    <ResponseField name="metadata.domain_id" type="string" required>
      Domain's unique identifier (same as id)
    </ResponseField>

    <ResponseField name="metadata.domain_name" type="string" required>
      Domain name
    </ResponseField>

    <ResponseField name="metadata.organization_id" type="string" required>
      Organization's unique identifier
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="metadata.source" type="string" required>
  Page route where domain was deleted
</ResponseField>

### Example Event

```json theme={null}
{
  "action": "organization.delete_domain",
  "occurredAt": "2025-01-15T16:00:00.000Z",
  "version": 1,
  "actor": {
    "type": "user",
    "id": "user_01JGXYZ123",
    "name": "Alice Johnson",
    "metadata": {
      "first_name": "Alice",
      "last_name": "Johnson",
      "email": "alice@example.com",
      "impersonator_email": "",
      "impersonator_reason": ""
    }
  },
  "targets": [
    {
      "type": "organization_domain",
      "id": "domain_01JGXYZ789",
      "name": "old-domain.com",
      "metadata": {
        "domain_id": "domain_01JGXYZ789",
        "domain_name": "old-domain.com",
        "organization_id": "org_01JGXYZ456"
      }
    }
  ],
  "context": {
    "location": "192.0.2.1",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)..."
  },
  "metadata": {
    "source": "/organizations/org_01JGXYZ456/domains"
  }
}
```

***

## organization.list\_memberships

Records when a user views the list of organization members.

### Triggered When

User queries the organization members list via the members API endpoint.

### Event Schema

<ResponseField name="action" type="string" required>
  `organization.list_memberships`
</ResponseField>

<ResponseField name="targets" type="array" required>
  <Expandable title="organization target">
    <ResponseField name="type" type="string" required>
      `organization`
    </ResponseField>

    <ResponseField name="id" type="string" required>
      Organization's unique identifier
    </ResponseField>

    <ResponseField name="name" type="string" required>
      Organization name
    </ResponseField>

    <ResponseField name="metadata.name" type="string" required>
      Organization name (duplicated for consistency)
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="metadata.source" type="string" required>
  Page route where members were listed
</ResponseField>

<ResponseField name="metadata.page" type="string" required>
  Page number in pagination (as string)
</ResponseField>

<ResponseField name="metadata.limit" type="string" required>
  Number of results per page (as string)
</ResponseField>

<ResponseField name="metadata.total_results" type="string" required>
  Total number of members returned (as string)
</ResponseField>

<ResponseField name="metadata.query" type="string">
  Search query used to filter members (empty string if no filter)
</ResponseField>

### Example Event

```json theme={null}
{
  "action": "organization.list_memberships",
  "occurredAt": "2025-01-15T13:30:00.000Z",
  "version": 1,
  "actor": {
    "type": "user",
    "id": "user_01JGXYZ123",
    "name": "Alice Johnson",
    "metadata": {
      "first_name": "Alice",
      "last_name": "Johnson",
      "email": "alice@example.com",
      "impersonator_email": "",
      "impersonator_reason": ""
    }
  },
  "targets": [
    {
      "type": "organization",
      "id": "org_01JGXYZ456",
      "name": "Acme Corp",
      "metadata": {
        "name": "Acme Corp"
      }
    }
  ],
  "context": {
    "location": "192.0.2.1",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)..."
  },
  "metadata": {
    "source": "/organizations/org_01JGXYZ456/members",
    "page": "1",
    "limit": "50",
    "total_results": "12",
    "query": ""
  }
}
```

***

## organization.list\_workos\_events

Records when a user views the organization's audit log events.

### Triggered When

User queries the audit log events via the WorkOS events API endpoint.

### Event Schema

<ResponseField name="action" type="string" required>
  `organization.list_workos_events`
</ResponseField>

<ResponseField name="targets" type="array" required>
  <Expandable title="organization target">
    <ResponseField name="type" type="string" required>
      `organization`
    </ResponseField>

    <ResponseField name="id" type="string" required>
      Organization's unique identifier
    </ResponseField>

    <ResponseField name="name" type="string" required>
      Organization name
    </ResponseField>

    <ResponseField name="metadata.name" type="string" required>
      Organization name (duplicated for consistency)
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="metadata.source" type="string" required>
  Page route where events were viewed
</ResponseField>

<ResponseField name="metadata.events_1" type="string">
  First chunk of event type filters (comma-separated, max 500 chars)
</ResponseField>

<ResponseField name="metadata.events_2" type="string">
  Second chunk of event type filters (if first chunk exceeded 500 chars)
</ResponseField>

<ResponseField name="metadata.events_3" type="string">
  Third chunk of event type filters (if second chunk exceeded 500 chars)
</ResponseField>

<ResponseField name="metadata.limit" type="string" required>
  Number of events requested (as string)
</ResponseField>

<ResponseField name="metadata.total_results" type="string" required>
  Total number of events returned (as string)
</ResponseField>

<ResponseField name="metadata.range_start" type="string">
  Start of date range filter (ISO 8601 timestamp, empty if not specified)
</ResponseField>

<ResponseField name="metadata.range_end" type="string">
  End of date range filter (ISO 8601 timestamp, empty if not specified)
</ResponseField>

<ResponseField name="metadata.after" type="string">
  Pagination cursor for next page (empty if not specified)
</ResponseField>

### Example Event

```json theme={null}
{
  "action": "organization.list_workos_events",
  "occurredAt": "2025-01-15T15:00:00.000Z",
  "version": 1,
  "actor": {
    "type": "user",
    "id": "user_01JGXYZ123",
    "name": "Alice Johnson",
    "metadata": {
      "first_name": "Alice",
      "last_name": "Johnson",
      "email": "alice@example.com",
      "impersonator_email": "",
      "impersonator_reason": ""
    }
  },
  "targets": [
    {
      "type": "organization",
      "id": "org_01JGXYZ456",
      "name": "Acme Corp",
      "metadata": {
        "name": "Acme Corp"
      }
    }
  ],
  "context": {
    "location": "192.0.2.1",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)..."
  },
  "metadata": {
    "source": "/organizations/org_01JGXYZ456/logs",
    "events_1": "api_key.create, api_key.revoke, project.create",
    "events_2": "",
    "events_3": "",
    "limit": "100",
    "total_results": "47",
    "range_start": "2025-01-01T00:00:00.000Z",
    "range_end": "2025-01-15T23:59:59.999Z",
    "after": ""
  }
}
```

<Note>
  Event type filters are split across `events_1`, `events_2`, and `events_3` fields because WorkOS has a 500-character limit per metadata field. The event types are comma-separated within each chunk.
</Note>

***

## organization.create\_domains\_portal\_url

Records when an admin generates a URL to access the WorkOS domains management portal.

### Triggered When

Admin requests access to the WorkOS self-service domain verification portal.

### Event Schema

<ResponseField name="action" type="string" required>
  `organization.create_domains_portal_url`
</ResponseField>

<ResponseField name="targets" type="array" required>
  <Expandable title="organization target">
    <ResponseField name="type" type="string" required>
      `organization`
    </ResponseField>

    <ResponseField name="id" type="string" required>
      Organization's unique identifier
    </ResponseField>

    <ResponseField name="name" type="string" required>
      Organization name
    </ResponseField>

    <ResponseField name="metadata.name" type="string" required>
      Organization name (duplicated for consistency)
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="metadata.source" type="string" required>
  Page route where portal URL was generated
</ResponseField>

### Example Event

```json theme={null}
{
  "action": "organization.create_domains_portal_url",
  "occurredAt": "2025-01-15T12:00:00.000Z",
  "version": 1,
  "actor": {
    "type": "user",
    "id": "user_01JGXYZ123",
    "name": "Alice Johnson",
    "metadata": {
      "first_name": "Alice",
      "last_name": "Johnson",
      "email": "alice@example.com",
      "impersonator_email": "",
      "impersonator_reason": ""
    }
  },
  "targets": [
    {
      "type": "organization",
      "id": "org_01JGXYZ456",
      "name": "Acme Corp",
      "metadata": {
        "name": "Acme Corp"
      }
    }
  ],
  "context": {
    "location": "192.0.2.1",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)..."
  },
  "metadata": {
    "source": "/organizations/org_01JGXYZ456/domains"
  }
}
```

***

## Related Events

<CardGroup cols={2}>
  <Card title="Projects" icon="folder" href="/logs/events/projects">
    Project-level settings and configuration changes
  </Card>

  <Card title="Project Memberships" icon="users" href="/logs/events/project-memberships">
    User access grants and role changes for projects
  </Card>

  <Card title="SSO" icon="fingerprint" href="/logs/events/sso">
    Single sign-on configuration for organizations
  </Card>

  <Card title="Directory Sync" icon="arrows-rotate" href="/logs/events/directory-sync">
    Automated user provisioning and directory connections
  </Card>
</CardGroup>
