# WhatsApp Group Member Management — Design

**Date:** 2026-08-05  
**Status:** Approved  

## Decisions

| Topic | Choice |
|-------|--------|
| Add | Staff with phones only (Support / Remote filter) |
| Remove | Staff only; client always stays |
| Source of truth | Live WhatsApp `groupMetadata` + DB staff id list |

## API

- `GET /api/v1/tickets/:id/group` → subject, jid, client, members[{ phone, display, role: client|staff|unknown, user_id?, tags? }]
- `POST /api/v1/tickets/:id/group/participants` `{ user_id }` — add staff phone to WA group
- `DELETE /api/v1/tickets/:id/group/participants` `{ user_id }` — remove staff from WA group

## Worker

- `GET`-style via POST `/group/metadata` `{ channelId, groupJid }`
- `POST /group/participants` `{ channelId, groupJid, action: 'add'|'remove', phones: string[] }`

## UI

Ticket detail right rail **Group** card when `wa_group_jid` set.
