Settings
Connect read-only sources, then promote autonomy per action type as the track record earns it.
com.intuit.quickbooks.accounting, used read-only. Production keys require Intuit’s app-assessment questionnaire — sandbox keys work for development without that step.Status: mock app registered sandbox keys
Sandbox keys only attach a sandbox company
If Intuit says “There is no sandbox companies found for the user,” the OAuth hop worked — Tommy’s Intuit login just has no sandbox. Development Client IDs cannot attach the live NijemTech company. Create a sandbox at Intuit Developer → Sandbox, then Connect again with the same Intuit user. If the consent screen names a different product (for example Telegram), those keys belong to that app — use a QuickBooks Online Accounting app instead. Real books need Production Client ID/Secret plus QBO_ENVIRONMENT=production after the assessment.
- Create an app at developer.intuit.com and select the QuickBooks Online Accounting scope.
- Add redirect URI
https://aibooks.nijemtech.com/api/qbo/callback - Put Client ID / Secret in
/opt/aibooks/.env. Sandbox first; production after assessment. - Connect a sandbox company first. Switch to production keys before connecting NijemTech live.
aibooks.nijemtech.comAfter approval, turn on Show Credentials, put the Production Client ID/Secret in /opt/aibooks/.env, set QBO_ENVIRONMENT=production, recreate app and worker, then Connect the NijemTech company.
Status: mock using mock inbox
Redirect URI https://aibooks.nijemtech.com/api/gmail/callback. Google’s consent screen also needs the privacy policy.
report-send is promoted. Same Google OAuth client as Gmail, with Drive scopes.Status: mock using mock folder
Redirect URI https://aibooks.nijemtech.com/api/drive/callback
Email draft
L0 ObserveTrack record: 0 approved / 0 rejected of 4 proposed (0% agreement)
Email send
L0 ObserveTrack record: 0 approved / 0 rejected of 0 proposed
Report send
L0 ObserveTrack record: 0 approved / 0 rejected of 1 proposed (0% agreement)
QuickBooks write
L0 ObserveTrack record: 0 approved / 0 rejected of 9 proposed (0% agreement)
Categorize
L0 ObserveTrack record: 0 approved / 0 rejected of 1 proposed (0% agreement)
Match
L0 ObserveTrack record: 0 approved / 0 rejected of 9 proposed (0% agreement)