Part3 Developers

Seat Reconciliation (RevOps)

Reconcile each firm's Part3 seat allocation against Maxio, and read the per-firm seat-change audit log.

Two super-duper-admin tools answer the RevOps question "does what we bill match what we've given out?"

ToolAnswers
get_org_seat_statusCurrent state — Part3's seat limit vs Maxio's allocated quantity, per firm, with a verdict
list_seat_purchasesHistory — every seat-count change, who made it, and where it came from

Both are conversational: connect the Part3 MCP and ask for what you want ("reconcile seats for Berry Architecture", "show me seat changes this month"). You don't need to name the tool or know an org id — ask by firm name.

Production only

These tools reach production Maxio, so they only work against the production Part3 MCP. On any other environment get_org_seat_status returns a short "available in production only" message rather than misleading numbers.

Reconciling a firm

Ask for one firm by name. You get a single line per firm:

✓ Berry Architecture + Associates (7s7kqTJwHiNwocCysRyI)  Part3=10  Maxio=10  match  used=19  [maxioCust=96054403]
  • Part3 — the seat limit on the org's billing record. This is Part3's authoritative number: it's what actually gates the firm in the product.
  • Maxio — the allocated_quantity Maxio is billing for.
  • used — active members on the org roster right now.
  • maxioCust — the Maxio customer id, for drill-in on the Maxio side.

What each verdict means

VerdictMeaningAction
matchPart3 and Maxio agreeNone
mismatchBoth sides have a number and they differ (Δ shows by how much, Part3 minus Maxio)Investigate — see below
part3_onlyPart3 has a seat limit, Maxio bills nothingExpected for trials, comped, and internal orgs. Real drift only if the firm is supposed to be paying
maxio_onlyMaxio is billing but Part3 has no limitReal drift — the firm is paying for seats it can't use
inactiveThe Maxio subscription isn't live, so its allocation is staleConfirm whether the firm churned
?unknownMaxio couldn't be reached, or the subscription couldn't be identifiedRe-run; if it persists, escalate to engineering

On a mismatch

Pull the firm's history with list_seat_purchases for that org and read the sources — they explain most drift:

  • seats_purchased — a firm bought seats in Part3.
  • seat_approved — an admin approved a pending seat request.
  • webhook_seat_count_change — Maxio told us its count changed, i.e. somebody edited the subscription directly in Maxio, outside the product. These deltas are signed and can be negative, and a +0 is usually Maxio echoing back a change Part3 had already applied.

A cluster of webhook_seat_count_change rows around the time drift appeared points at a manual Maxio edit; a missing webhook points the other way.

Sweeping every firm

Omit the firm and you get a page of firms, then a cursor to continue. Two things to know before you start:

  • It's paced, not instant. Maxio rate-limits us, so a page defaults to 20 firms (40 max) and takes roughly 20–30 seconds. Sweeping the whole platform is a several-minute job — ask for it and let it run rather than re-asking.
  • The first pages are mostly noise. Firms sort by seat limit ascending, so every Part3=0 org — trials, internal, and test orgs — comes first, all flagged ⚠ part3_only. In production that's roughly 100 orgs before the first firm with a Maxio customer id. Don't read those ⚠ as a problem; the interesting rows come later.

For a targeted question ("is this firm right?") always reconcile the single firm instead — it's one fast call.

Two warnings that mean "this page is not the whole story"

A sweep page can come back qualified. Both of these are worth reading before you act on the numbers:

  • "The sweep ran out of time budget" — Maxio is paced, so a page has a time ceiling. Firms past it read unknown because they couldn't be looked up in time, not because Maxio disagreed. Re-run to pick them up.
  • "The sweep CANNOT be continued" — a firm's seat limit is stored in a shape the pagination can't resume from, so there is no cursor to continue with. The remaining firms are unreachable until it's fixed. This one is a bug, not a data entry issue — report it.

If neither warning appears and no cursor is offered, you've reached the end.

used is not part of the verdict

The verdict compares Part3 vs Maxio only. A firm can reconcile perfectly and still have more active members than seats:

✓ Berry Architecture + Associates  Part3=10  Maxio=10  match  used=19

That's billing agreeing with itself while 19 people sit on 10 paid seats. If you're looking for under-billing, read the used column against Part3 yourself — nothing flags it for you.

On this page