Organizations#

Manage organizations, team members, invitations, and organization-level settings.

Provider required

All hooks require a BrandwaveProvider ancestor in your component tree. See the React Hooks overview for setup instructions.

useListOrganizations#

List organizations the current user belongs to, with membership details.

typescript
import { useListOrganizations } from '@brandwave/react';

const { data, isLoading } = useListOrganizations({
  pageIndex: 0,
  pageSize: 25,
  userId: 'user_abc123',
});

Parameters#

NameTypeRequiredDescription
pageIndexintegerRequiredZero-based page index for pagination.
pageSizeintegerRequiredNumber of items per page (1-100).
userIdstring (UUID)RequiredUser identifier to list organizations for.

Response#

Returns { items, totalCount, facets } with paginated results.

Underlying SDK method: bw.organizations.list(params)

useGetOrganization#

Retrieve a single organization by ID.

typescript
import { useGetOrganization } from '@brandwave/react';

const { data, isLoading } = useGetOrganization({
  id: 'abc-123',
});

Parameters#

NameTypeRequiredDescription
idstring (UUID)RequiredOrganization identifier.

Response#

Returns { data } with the result.

Underlying SDK method: bw.organizations.get({ id })

useCreateOrganization#

Create an organization with a name, timezone, and currency, then assign the requesting user as owner.

typescript
import { useCreateOrganization } from '@brandwave/react';

const { mutate, isPending } = useCreateOrganization();

mutate({
  userId: 'user_abc123',
  name: 'My Campaign',
});

Parameters#

NameTypeRequiredDescription
userIdstring (UUID)RequiredUser identifier of the organization owner.
namestringRequiredOrganization name.
ianaTimezone'UTC' | 'America/New_York' | 'America/Chicago' | 'America/Denver' | 'America/Los_Angeles' | 'America/Anchorage' | 'Pacific/Honolulu' | 'America/Toronto' | 'America/Vancouver' | 'Europe/London' | 'Europe/Paris' | 'Europe/Berlin' | 'Australia/Sydney' | 'Australia/Melbourne' | 'Pacific/Auckland' | 'Asia/Tokyo' | 'Asia/Singapore' | nullIANA timezone identifier.
currency'USD' | 'CAD' | 'GBP' | 'EUR' | 'AUD' | 'NZD' | 'JPY' | 'SGD'ISO 4217 currency code.

Response#

Returns { data } with the result.

Underlying SDK method: bw.organizations.create(params)

useCompleteOrganicSignup#

Create a first-time organic signup workspace using the submitted organization name, timezone, and currency, then join the default demo org as a viewer and switch the active organization to the demo workspace.

typescript
import { useCompleteOrganicSignup } from '@brandwave/react';

const { mutate, isPending } = useCompleteOrganicSignup();

mutate({
  userId: 'user_abc123',
  name: 'My Campaign',
});

Parameters#

NameTypeRequiredDescription
userIdstring (UUID)RequiredUser identifier completing first-time organic onboarding.
namestringRequiredName of the real organization to create for the user.
ianaTimezone'UTC' | 'America/New_York' | 'America/Chicago' | 'America/Denver' | 'America/Los_Angeles' | 'America/Anchorage' | 'Pacific/Honolulu' | 'America/Toronto' | 'America/Vancouver' | 'Europe/London' | 'Europe/Paris' | 'Europe/Berlin' | 'Australia/Sydney' | 'Australia/Melbourne' | 'Pacific/Auckland' | 'Asia/Tokyo' | 'Asia/Singapore' | nullIANA timezone identifier.
currency'USD' | 'CAD' | 'GBP' | 'EUR' | 'AUD' | 'NZD' | 'JPY' | 'SGD'ISO 4217 currency code.

Response#

Returns { data } with the result.

Underlying SDK method: bw.organizations.completeOrganicSignup(params)

useUpdateOrganization#

Update an organization's name, description, timezone, currency, conversion value for ROI calculations, or attribution window.

Owner only
typescript
import { useUpdateOrganization } from '@brandwave/react';

const { mutate, isPending } = useUpdateOrganization();

mutate({
  id: 'abc-123',
});

Parameters#

NameTypeRequiredDescription
idstring (UUID)RequiredOrganization identifier to update.
namestringUpdated organization name (1-255 characters).
ianaTimezone'UTC' | 'America/New_York' | 'America/Chicago' | 'America/Denver' | 'America/Los_Angeles' | 'America/Anchorage' | 'Pacific/Honolulu' | 'America/Toronto' | 'America/Vancouver' | 'Europe/London' | 'Europe/Paris' | 'Europe/Berlin' | 'Australia/Sydney' | 'Australia/Melbourne' | 'Pacific/Auckland' | 'Asia/Tokyo' | 'Asia/Singapore' | nullUpdated IANA timezone.
currency'USD' | 'CAD' | 'GBP' | 'EUR' | 'AUD' | 'NZD' | 'JPY' | 'SGD'Updated currency code.
conversionValuenumberAverage customer value for ROI calculations (non-negative).
defaultAttributionWindowDaysinteger | nullNumber of days for the attribution window (must be greater than zero).

Response#

Returns { data } with the result.

Underlying SDK method: bw.organizations.update(params)

useDeleteOrganization#

Permanently delete an organization and all associated data.

Owner only
typescript
import { useDeleteOrganization } from '@brandwave/react';

const { mutate, isPending } = useDeleteOrganization();

mutate({
  id: 'abc-123',
});

Parameters#

NameTypeRequiredDescription
idstring (UUID)RequiredOrganization identifier to delete.

Response#

Returns { data } with the result.

Underlying SDK method: bw.organizations.delete(params)

Destructive action

Deleting an organization permanently removes all activities, campaigns, creators, costs, conversions, and team members. This action cannot be undone.

useListOrganizationUsers#

List users in an organization with pagination and search.

typescript
import { useListOrganizationUsers } from '@brandwave/react';

const { data, isLoading } = useListOrganizationUsers({
  pageIndex: 0,
  pageSize: 25,
  organizationId: 'org_123',
});

Parameters#

NameTypeRequiredDescription
pageIndexintegerRequiredZero-based page index for pagination.
pageSizeintegerRequiredNumber of items per page (1-100).
organizationIdstring (UUID)RequiredOrganization identifier.
searchTermstringFree-text search term to filter results (max 200 characters).
sortBystringColumn name to sort by.
sortDirection'asc' | 'desc'Sort direction: ascending or descending.

Response#

Returns { items, totalCount, facets } with paginated results.

Underlying SDK method: bw.organizations.users.list(params)

useAddOrganizationUser#

Add an existing user to an organization with a specified role.

Owner only
typescript
import { useAddOrganizationUser } from '@brandwave/react';

const { mutate, isPending } = useAddOrganizationUser();

mutate({
  organizationId: 'org_123',
  userId: 'user_abc123',
  role: 'member',
});

Parameters#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
userIdstring (UUID)RequiredUser identifier to add.
role'owner' | 'member' | 'viewer'RequiredRole to assign (owner, member, or viewer).

Response#

Returns { data } with the result.

Underlying SDK method: bw.organizations.users.add(params)

useUpdateOrganizationUserRole#

Update a user's role within an organization.

Owner only
typescript
import { useUpdateOrganizationUserRole } from '@brandwave/react';

const { mutate, isPending } = useUpdateOrganizationUserRole();

mutate({
  organizationId: 'org_123',
  userId: 'user_abc123',
  role: 'member',
});

Parameters#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
userIdstring (UUID)RequiredUser identifier whose role is being changed.
role'owner' | 'member' | 'viewer'RequiredNew role to assign (owner, member, or viewer).

Response#

Returns { data } with the result.

Underlying SDK method: bw.organizations.users.updateRole(params)

useRemoveOrganizationUser#

Remove a user's membership from an organization.

Owner only
typescript
import { useRemoveOrganizationUser } from '@brandwave/react';

const { mutate, isPending } = useRemoveOrganizationUser();

mutate({
  organizationId: 'org_123',
  userId: 'user_abc123',
});

Parameters#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
userIdstring (UUID)RequiredUser identifier to remove.

Response#

Returns { data } with the result.

Underlying SDK method: bw.organizations.users.remove(params)

useInviteOrganizationUser#

Invite a user to an organization by email.

Owner only
typescript
import { useInviteOrganizationUser } from '@brandwave/react';

const { mutate, isPending } = useInviteOrganizationUser();

mutate({
  email: 'user@example.com',
  organizationId: 'org_123',
  role: 'member',
});

Parameters#

NameTypeRequiredDescription
emailstringRequiredEmail address to send the invite to.
organizationIdstring (UUID)RequiredOrganization identifier.
role'owner' | 'member' | 'viewer'RequiredRole to assign to the invited user (owner, member, or viewer).

Response#

Returns { data } with the result.

Underlying SDK method: bw.organizations.users.invite(params)

Authorization required

Only organization owners can invite new members.

useAcceptOrganizationInvite#

Accept a pending organization invite.

typescript
import { useAcceptOrganizationInvite } from '@brandwave/react';

const { mutate, isPending } = useAcceptOrganizationInvite();

mutate({
  organizationId: 'org_123',
  userId: 'user_abc123',
});

Parameters#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
userIdstring (UUID)RequiredUser identifier accepting the invite.

Response#

Returns { data } with the result.

Underlying SDK method: bw.organizations.users.acceptInvite(params)

useDeclineOrganizationInvite#

Decline a pending organization invite.

typescript
import { useDeclineOrganizationInvite } from '@brandwave/react';

const { mutate, isPending } = useDeclineOrganizationInvite();

mutate({
  organizationId: 'org_123',
  userId: 'user_abc123',
});

Parameters#

NameTypeRequiredDescription
organizationIdstring (UUID)RequiredOrganization identifier.
userIdstring (UUID)RequiredUser identifier declining the invite.

Response#

Returns { data } with the result.

Underlying SDK method: bw.organizations.users.declineInvite(params)

useProcessInviteSignup#

Process invite metadata for a newly signed-up user.

typescript
import { useProcessInviteSignup } from '@brandwave/react';

const { mutate, isPending } = useProcessInviteSignup();

mutate({
  userId: 'user_abc123',
});

Parameters#

NameTypeRequiredDescription
userIdstring (UUID)RequiredAuthenticated user whose invite metadata should be processed.

Response#

Returns { data } with the result.

Underlying SDK method: bw.organizations.users.processInviteSignup()