How Customer Accounting Integration Sync Works
Source: `customers_controller.rb`
- When a new customer is created, it is automatically flagged for synchronisation to ALL connected accounting integrations (Xero, MYOB, etc.)
- When a customer is updated, a third-party sync is triggered, but with a 5-minute skip rule: for Xero and MYOB, if the customer has no external ID and the last sync attempt was less than 5 minutes ago, the sync is skipped to avoid flooding the integration
- Changing a customer's biller is blocked if that customer has open invoices -- the open invoices must be processed or voided first
- Mobile app users with restricted data access see only a limited subset of customer fields; sensitive financial and internal fields are hidden
Support scenarios
- "I created a customer but it's not showing in Xero/MYOB" → New customers are flagged for sync on creation. If it hasn't appeared, check if the accounting integration is connected and healthy. The 5-minute skip rule may delay initial sync if multiple updates happen rapidly.
- "I can't change the biller on this customer" → Biller changes are blocked when the customer has open invoices. Process or void the open invoices first, then change the biller.
- "I updated a customer but the changes aren't syncing to accounting" → The 5-minute skip rule prevents rapid repeated syncs for customers without an external ID. Wait 5 minutes and make another edit, or check if the customer has an external accounting ID.