Open-source tools built by WSO2 for customer success operations. This repository contains web applications and backend integrations that enable teams to manage customer-facing workflows, project visibility, and support experiences.
cs-tools/
├── apps/
│ ├── csm-portal/ # CSM Portal (Go backend + React webapp)
│ └── customer-portal/ # Customer Portal (Ballerina backend + React webapp + React microapp)
├── entity-service/ # Shared entity service
└── integrations/
├── acp-closure-service/ # Go CLI: Account Closure Process, Phase 1 (subscription end-date closure)
├── csm-integration-service/ # Go M2M service for third-party account/project search
└── customer-service/ # Customer operations related integration Ballerina service
An internal portal for Customer Success Managers to manage and track customer cases, assignments, and support operations.
| Component | Description |
|---|---|
backend |
Go RESTful service providing CSM Portal APIs |
webapp |
Browser-based portal for CSMs (React + TypeScript) |
See the CSM Portal README for full setup and usage documentation.
An open-source solution for customer success operations built with a modular architecture. It enables teams to manage customer-facing workflows, project visibility, and support experiences through a unified platform.
Delivered through two frontend experiences alongside a shared backend:
| Component | Description |
|---|---|
backend |
Ballerina RESTful service providing Customer Portal APIs and integration points |
webapp |
Publicly available browser-based customer portal (React + TypeScript) |
microapp |
Microapp experience inside the WSO2 super app (React + TypeScript) |
See the Customer Portal README for full setup and usage documentation.
A Go REST service that manages customer entity data backed by PostgreSQL. Provides APIs for case management with pagination and validation, used by other apps in this repository.
| Layer | Technology |
|---|---|
| Language | Go |
| Framework | Gin |
| Database | PostgreSQL 15+ |
See the Entity Service README for full setup and usage documentation.
A Go run-to-completion CLI implementing Phase 1 of the Account Closure Process (ACP) — subscription end-date closure. Unlike every other Go component in this repo, it is not an HTTP server: it performs one full sweep over open projects and exits, with a Choreo Task component's cron owning the schedule.
| Layer | Technology |
|---|---|
| Language | Go |
| Shape | Run-to-completion CLI (Choreo Task) |
| Upstream | CSM Integration Service (OAuth2 client credentials) |
See the ACP Closure Service README for full setup and usage documentation.
A Ballerina REST service that aggregates and exposes customer data from multiple backend systems. Provides endpoints for contact lookup, deployment search, and deployed product queries. Includes an in-memory cache layer to reduce upstream load.
A Go REST service that exposes customer data to third-party (M2M) consumers, backed by the Entity Service.
| Layer | Technology |
|---|---|
| Language | Go |
| Framework | net/http (standard library) |
| Upstream | Entity Service (OAuth2 client credentials) |
See the CSM Integration Service README for full setup and usage documentation.
When a pull request is opened, the workflow automatically:
- Assigns the PR author as the assignee
- Applies labels based on changed file paths:
| Files changed under… | Label applied |
|---|---|
apps/csm-portal/** |
App/CSM Portal |
apps/customer-portal/** |
App/Customer Portal |
apps/*/webapp/** |
Area/Frontend, Platform/Web |
apps/*/backend/** |
Area/Backend |
apps/*/microapp/** |
Platform/Microapp |
entity-service/** |
Entity Service |
Please use this repository's issue tracker and include reproduction steps, expected behavior, actual behavior, and relevant logs.
Please do not report security issues through public issues. Follow the WSO2 Security Vulnerability Reporting Guidelines.
Contributions are welcome. Create a feature branch, keep changes focused, and submit a pull request with a clear description and verification steps.
cs-tools is licensed under Apache 2.0. See the LICENSE file for details.