Member

member.removed

A member was removed from the workspace (kicked, or self-left).

When it fires

Two paths:

  • Kicked by an owner/admin via DeleteMemberService, where actor is the remover.
  • Self-leave via LeaveWorkspace controller, where actor is the leaver and the payload includes left: true.

Payload

ts
{
    type: 'member.removed',
    data: {
        member: {
            id: string
            userId: string | null
            email: string | null
        }
        left?: boolean   // present and true only on self-leave
    }
}

Example: kicked

json
{
    "type": "member.removed",
    "actor": {
        "userId": "0192a1b2-c3d4-7000-8000-000000000002",
        "name": "Jane Doe (owner)",
        "email": "jane@example.com"
    },
    "data": {
        "member": {
            "id": "0192a1b2-c3d4-7000-8000-000000000060",
            "userId": "0192a1b2-c3d4-7000-8000-000000000080",
            "email": "alice@example.com"
        }
    }
}

Example: self-leave

json
{
    "type": "member.removed",
    "actor": {
        "userId": "0192a1b2-c3d4-7000-8000-000000000080",
        "name": "Alice Smith",
        "email": "alice@example.com"
    },
    "data": {
        "member": {
            "id": "0192a1b2-c3d4-7000-8000-000000000060",
            "userId": "0192a1b2-c3d4-7000-8000-000000000080",
            "email": "alice@example.com"
        },
        "left": true
    }
}