TEASEDocs
ProductsClubHow-to

Add or edit a team member on the chatter roster

Create an operator row, set their pay model, and link them to a login so they can clock in and show up on the leaderboard.

The chatter roster (Operator rows, /api/admin/chatters) is distinct from a team member's login/permissions grant — this page is about the roster identity that shifts, sale attribution, and the leaderboard all key off. See Team access for creating the login and choosing what they can see.

Creating a roster entry

POST /chatters takes a display name, an optional short handle for the leaderboard, a role (chatter / manager / owner), a timezone, and a pay model:

pay_modelWhat it means
noneNo payout computed from this roster row.
hourlyPaid by hourly_rate_cents × hours worked.
commissionPaid commission_bps (basis points, so 2000 = 20%) of attributed net revenue.
hybridBoth legs at once.

This is only reachable by an owner or a manager holding the team/roster_manage capability — a self-scoped chatter (someone linked to their own operator row) is denied outright, since roster mutation is workspace management, not "my own data."

Linking a login

A roster row can exist with no login at all — a label-only entry an owner tracks by hand. To let someone actually sign in, clock in, and see their own leaderboard row, link their Operator.id to their login when you grant them team access (see Team access for the grant flow). Until that link exists, POST /chatters/clock-in for them answers 422 no_operator — there's nothing to mark a shift against.

Editing an existing operator

PATCH /chatters/{operator_id} updates any subset of the same fields — display name, handle, role, status (active / paused / archived), pay model, rate, or timezone. The same roster_manage gate applies; a self-scoped member can't edit their own row this way (their name and pay model are the owner's call, not theirs).

What's next

On this page