How Sage and Sage One AUS Integration Works
Source: sage_one_integration_controller.rb, sage_one_aus_integration_controller.rb
- Sage token is stored alongside an issued timestamp for tracking token age
- Authenticating Sage branch sharing is explicitly disabled during the authentication step — branches must authenticate independently
- Sage contact sync flags all contacts for re-sync if none currently have Sage IDs, similar to QBO behavior (potential mass re-upload)
- Sage single void operation uses unscoped queries, meaning it can find and process soft-deleted records that would normally be invisible
- Sage One AUS cannot be authenticated when logged in as a puppet (support) user — the customer must authenticate themselves
- Sage One AUS enforces username continuity: the username must match the previously authenticated username; changing the Sage user requires disconnecting first
- Sage One AUS password is encrypted with a user-specific salt and private key, providing per-user encryption
- Sage One AUS sync operations require the private key as a parameter, meaning the user must be actively logged in — support cannot trigger sync on behalf of the customer
Support scenarios
- "I can't authenticate Sage One AUS for a customer while puppeted" → Sage One AUS blocks puppet user authentication by design. The customer must log in and authenticate themselves. Guide them through the steps.
- "Sage sync is trying to upload all contacts again" → If no contacts have Sage IDs (e.g., after a disconnect/reconnect), the system flags all contacts for re-sync. This is expected behavior — let it complete in batches.
- "Customer changed their Sage One AUS login and now sync is broken" → The username must match the previously authenticated one. They need to disconnect Sage One AUS and re-authenticate with the new username.
- "I voided a record but Sage still shows it" → The single void function uses unscoped queries and can find soft-deleted records. Check whether the void actually completed in Sage, or whether the record needs manual cleanup.