Skip to content

Organizations

CloudWA is multi-tenant — each organization has its own isolated data (contacts, conversations, templates, etc.). Users can belong to multiple organizations with different roles in each.

Retrieve all organizations. Requires super admin or organizations:read permission.

Terminal window
GET /api/organizations
{
"status": "success",
"data": {
"organizations": [
{
"id": "uuid",
"name": "Acme Corp",
"slug": "acme-corp-a1b2c3d4",
"created_at": "2024-01-01T00:00:00Z"
}
]
}
}

Retrieve the current organization’s details.

Terminal window
GET /api/organizations/current
{
"status": "success",
"data": {
"id": "uuid",
"name": "Acme Corp",
"slug": "acme-corp-a1b2c3d4",
"created_at": "2024-01-01T00:00:00Z"
}
}

Create a new organization. The creator is automatically added as an admin. System roles (Admin, Manager, Agent) and default chatbot settings are seeded automatically.

Terminal window
POST /api/organizations
{
"name": "New Organization"
}
FieldTypeRequiredDescription
namestringYesOrganization name
{
"status": "success",
"data": {
"id": "uuid",
"name": "New Organization",
"slug": "new-organization-a1b2c3d4",
"created_at": "2024-01-01T00:00:00Z"
}
}

Manage which users have access to an organization. Members are users from other organizations who have been granted access with a specific role.

Retrieve all members of the current organization.

Terminal window
GET /api/organizations/members
ParameterTypeDescription
searchstringFilter by name or email
pageintegerPage number (default: 1)
limitintegerItems per page (default: 50)
{
"status": "success",
"data": {
"members": [
{
"id": "uuid",
"user_id": "uuid",
"organization_id": "uuid",
"role_id": "uuid",
"role_name": "agent",
"is_default": true,
"email": "user@example.com",
"full_name": "John Doe",
"is_active": true,
"created_at": "2024-01-01T00:00:00Z"
}
],
"total": 1,
"page": 1,
"limit": 50
}
}

Add an existing user to the organization. The user can be identified by user_id or email.

Terminal window
POST /api/organizations/members
{
"user_id": "uuid",
"role_id": "uuid"
}

Or by email:

{
"email": "user@example.com",
"role_id": "uuid"
}
FieldTypeRequiredDescription
user_idstringOne of user_id or emailUUID of the user to add
emailstringOne of user_id or emailEmail of the user to add
role_idstringNoRole to assign. If omitted, uses the organization’s default role
{
"status": "success",
"data": {
"message": "Member added successfully"
}
}

Change a member’s role within the organization.

Terminal window
PUT /api/organizations/members/{member_id}
{
"role_id": "uuid"
}
{
"status": "success",
"data": {
"message": "Member role updated successfully"
}
}

Remove a user from the organization. This only removes the membership — the user’s account remains intact.

Terminal window
DELETE /api/organizations/members/{member_id}
{
"status": "success",
"data": {
"message": "Member removed successfully"
}
}
Terminal window
GET /api/organizations/settings
{
"status": "success",
"data": {
"name": "Acme Corp",
"settings": {
"mask_phone_numbers": false,
"timezone": "UTC",
"date_format": "YYYY-MM-DD"
}
}
}
Terminal window
PUT /api/organizations/settings
{
"name": "Updated Name",
"mask_phone_numbers": true,
"timezone": "Asia/Kolkata",
"date_format": "DD/MM/YYYY"
}

All fields are optional — only provided fields are updated.