Adjustments Queue · TownSq
Adjustments Queue
AR · General Adjustments{{ subLine }}
{{ staleChip }}
{{ userChip }}Local mode
{{ loadErr }}
Sign inSame login as TSQ Close. Access to this app is granted per user.Signing in…{{ authMsg }}{{ authErr }}
Loading C3 data…
Requests{{ queueSummary }}

Nothing here.

{{ q.title }}{{ q.amount }}
{{ q.meta }}
{{ q.org }}Urgent ◎ Ready to approve ● Review ! Needs fix … Waiting client ✓ Approved — Rejected ▤ In C3 file {{ q.batchId }} ✓ Posted in C3 {{ q.flag }}
{{ q.title }}{{ q.amount }}
{{ q.meta }}
{{ q.org }}Urgent ◎ Ready to approve ● Review ! Needs fix … Waiting client ✓ Approved — Rejected ▤ In C3 file {{ q.batchId }} ✓ Posted in C3 {{ q.flag }}

Select a request.

{{ sel.kicker }} {{ sel.title }} {{ sel.sub }}
Suggested{{ sel.summary }}
Client request · Support Hub form
{{ fd.label }}{{ fd.value }}{{ fd.value }}
{{ sel.submitter }}
Enrichment · {{ sel.dataAsOf }}
✓!✗{{ ck.label }}{{ ck.text }}
Account in C3{{ sel.candsNote }}
AccountName · residentsUnitMatched on
{{ cd.account }}{{ cd.name }}{{ cd.people }}{{ cd.unit }}{{ cd.why }}✓ In use
{{ cd.account }}{{ cd.name }}{{ cd.people }}{{ cd.unit }}{{ cd.why }}
Claude reading{{ sel.aiNote }}
Reading…
{{ aiErr }}
{{ sel.aiSummary }} • {{ an.t }}
{{ al.type }} · {{ al.amount }} · {{ al.date }} · {{ al.reference }}
✓ Applied to the proposal
No free-text reading yet. Claude reads Comments and Reference to catch split lines or a better charge type — it never changes the account.
Proposed C3 line(s){{ sel.linesNote }}✎ Edited
{{ sel.total }}
AccountNamePeriodDateTypeAmountReferenceComments
{{ ln.account }}{{ ln.name }}{{ ln.unit }}{{ ln.period }}{{ ln.date }}{{ ln.type }}{{ ln.amount }}{{ ln.amount }}{{ ln.reference }}{{ ln.comments }}
✗ {{ ln.err }}
{{ ed.accountInfo }}
Decision {{ act.why }}
Ask client only marks the status for now — the reply loop through Support Hub comes later.
Waiting for the client since {{ act.since }}. ✓ Approved {{ act.since }} · waiting in C3 Upload. Rejected {{ act.since }} — {{ act.reason }} ▤ In C3 file {{ act.batchId }} · upload it to C3, then mark the file as posted. ✓ Posted in C3 with file {{ act.batchId }}.
Internal note · never sent to C3 or the client
Activity
{{ lg.text }}{{ lg.who }} · {{ lg.when }}

C3 Upload

{{ upSummary }}

✓
{{ g.label }}{{ g.detail }}
!
{{ g.label }}{{ g.detail }}
✗
{{ g.label }}{{ g.detail }}
Sheet "Adjustments Template" · columns A–P exactly as the C3 template · Comments and Reference fill both AR and GL · Status, Balance and Unit Type left blank
Org · A Assoc.B AccountC NameD PeriodE DateF TypeG AmountI/K ReferenceH/J CommentsP unit_addrCase

Approve requests in the Queue to build the files — one per organization.

{{ ul.assoc }}{{ ul.account }}{{ ul.name }}{{ ul.period }}{{ ul.date }}{{ ul.type }}{{ ul.amount }}{{ ul.amount }}{{ ul.reference }}{{ ul.comments }}{{ ul.unit }}{{ ul.caseId }}✗✓
Net{{ upCount }}{{ upTotal }}
Generated filesUpload each file in C3, then mark it as posted.

No file generated yet.

{{ b.id }}{{ b.file }}{{ b.meta }}{{ b.total }}✓ Posted {{ b.postedAt }}● Not posted yet
Temporary · test benchIntake labPaste a Support Hub case as it arrives and see how it would be read before it reaches the Queue. Nothing here is saved.
Examples
AI is reading…
{{ labNote }} {{ labErr }} Process reads the case with rules (instant, free). If something is missing, Read with AI appears — use it when the email has the information but the rules didn't catch it.
Was this reading right? · saved for calibration
{{ labSaveMsg }}
Saving cases needs the Supabase project (js/config.js).
Saved cases · {{ labSavedCount }}
{{ sc.subject }}{{ sc.verdict }}{{ sc.when }}
Process a case to see the result.
{{ rn.title }}{{ rn.method }}
◎ Ready to approve● Review! Needs fix
What was read
{{ sg.label }}{{ sg.value }}
Request fields → Queue
{{ fd.label }}{{ fd.value }}
Enrichment
✓!✗{{ ck.label }}{{ ck.text }}
{{ rn.candNote }}
{{ rn.aiSummary }}• {{ an.t }}
Proposed C3 line(s)
AccountName · unitTypeAmountCheck
{{ ln.account }}{{ ln.name }}{{ ln.unit }}{{ ln.type }}{{ ln.amount }}{{ ln.amount }}✗ {{ ln.err }}✓ valid
{{ dataMsg }}
{{ dataErr }}
Every dayHomeowners report · {{ orgCount }} organizations{{ repSummary }}
TownSq Report Bridge {{ extVersion }} · your TownSq Business session{{ schedLine }}Update the extension to v0.5.0 for the daily 07:00 run
{{ refLabel }}{{ refEta }}
{{ refSummary }}
{{ refSummary }}
One-click refresh is offInstall the TownSq Report Bridge extension (extension/README.md) and keep TownSq Business signed in. Until then, upload each org's export.
OrganizationAccountsAssociationsUpdatedStatus
{{ o.key }}{{ o.name }}{{ o.accounts }}{{ o.assocs }}{{ o.updated }}{{ o.source }}✓ {{ o.statusText }}! {{ o.statusText }}{{ o.statusText }}↻ {{ o.statusText }}Queued✗ {{ o.statusText }}
When it changesCharge types · one per organizationCharge Type Setup Review by Association (dwr_cs_charge_type_by_assc_rpt). Requests from an org without it can't have their type checked.
{{ refLabel }}{{ refEta }}
{{ refSummary }}
{{ refSummary }}
OrganizationFile · updatedContents · status
{{ o.key }}{{ o.name }}{{ o.ctFile }}{{ o.ctUpdated }} · {{ o.ctSource }}! Not loaded yet{{ o.ctStats }}↻ {{ o.ctMsg }}Queued✗ {{ o.ctMsg }}
Association mapping{{ mapSummary }}
Name in Homeowners reportAccountsC3 associationHow
{{ mr.name }}{{ mr.n }}Same nameAuto · checkSet by handNot mapped
C3 Adjustments Upload templateFixed. The generated file keeps the template's sheet, column widths and number formats; only rows 3+ change.
ColHeaderFilled fromFormat
AAssociationAssociation ID (request, checked against Charge Types)number
BAccountaccount_id from the Homeowners report#####-####
CNameaddr_name from the Homeowners reporttext
DPeriodYYYYMM of the effective date#####-##
EDateEffective datemm/dd/yy
FTypeCharge type code (trans_type before " - ")text
GAmountAmount · credit = negative###,###,##0.00
H · JAR / GL CommentsCommentstext
I · KAR / GL ReferenceReferencetext
L(separator)empty
M–OStatus · Balance · Unit Typeblank — optional in C3
Punit_addraddr_add_1 from the Homeowners reporttext