Organizations
Overview
Section titled “Overview”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.
List Organizations
Section titled “List Organizations”Retrieve all organizations. Requires super admin or organizations:read permission.
GET /api/organizationsResponse
Section titled “Response”{ "status": "success", "data": { "organizations": [ { "id": "uuid", "name": "Acme Corp", "slug": "acme-corp-a1b2c3d4", "created_at": "2024-01-01T00:00:00Z" } ] }}Get Current Organization
Section titled “Get Current Organization”Retrieve the current organization’s details.
GET /api/organizations/currentResponse
Section titled “Response”{ "status": "success", "data": { "id": "uuid", "name": "Acme Corp", "slug": "acme-corp-a1b2c3d4", "created_at": "2024-01-01T00:00:00Z" }}Create Organization
Section titled “Create Organization”Create a new organization. The creator is automatically added as an admin. System roles (Admin, Manager, Agent) and default chatbot settings are seeded automatically.
POST /api/organizationsRequest Body
Section titled “Request Body”{ "name": "New Organization"}| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Organization name |
Response
Section titled “Response”{ "status": "success", "data": { "id": "uuid", "name": "New Organization", "slug": "new-organization-a1b2c3d4", "created_at": "2024-01-01T00:00:00Z" }}Organization Members
Section titled “Organization Members”Manage which users have access to an organization. Members are users from other organizations who have been granted access with a specific role.
List Members
Section titled “List Members”Retrieve all members of the current organization.
GET /api/organizations/membersQuery Parameters
Section titled “Query Parameters”| Parameter | Type | Description |
|---|---|---|
search | string | Filter by name or email |
page | integer | Page number (default: 1) |
limit | integer | Items per page (default: 50) |
Response
Section titled “Response”{ "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 Member
Section titled “Add Member”Add an existing user to the organization. The user can be identified by user_id or email.
POST /api/organizations/membersRequest Body
Section titled “Request Body”{ "user_id": "uuid", "role_id": "uuid"}Or by email:
{ "email": "user@example.com", "role_id": "uuid"}| Field | Type | Required | Description |
|---|---|---|---|
user_id | string | One of user_id or email | UUID of the user to add |
email | string | One of user_id or email | Email of the user to add |
role_id | string | No | Role to assign. If omitted, uses the organization’s default role |
Response
Section titled “Response”{ "status": "success", "data": { "message": "Member added successfully" }}Update Member Role
Section titled “Update Member Role”Change a member’s role within the organization.
PUT /api/organizations/members/{member_id}Request Body
Section titled “Request Body”{ "role_id": "uuid"}Response
Section titled “Response”{ "status": "success", "data": { "message": "Member role updated successfully" }}Remove Member
Section titled “Remove Member”Remove a user from the organization. This only removes the membership — the user’s account remains intact.
DELETE /api/organizations/members/{member_id}Response
Section titled “Response”{ "status": "success", "data": { "message": "Member removed successfully" }}Organization Settings
Section titled “Organization Settings”Get Settings
Section titled “Get Settings”GET /api/organizations/settingsResponse
Section titled “Response”{ "status": "success", "data": { "name": "Acme Corp", "settings": { "mask_phone_numbers": false, "timezone": "UTC", "date_format": "YYYY-MM-DD" } }}Update Settings
Section titled “Update Settings”PUT /api/organizations/settingsRequest Body
Section titled “Request Body”{ "name": "Updated Name", "mask_phone_numbers": true, "timezone": "Asia/Kolkata", "date_format": "DD/MM/YYYY"}All fields are optional — only provided fields are updated.
See Also
Section titled “See Also”- Authentication - Organization switching via
POST /api/auth/switch-org - Users - User management within an organization
- Roles & Permissions - Permission system details