Salesforce and Xero Integration App

Overview

Xero is an online accounting system which is very useful to manage invoices, bank reconciliation etc. We integrated Xero and Salesforce to use their functionalities together. We did this work for a US based customer which facilitates this integration. This app is used to synchronise the data between both the systems - This is a two way synchronization

Integrating Salesforce with Xero helps customers of Salesforce to manage their financial data/accounts into Xero and can also automate their Bank Transaction through Xero also helps customers to manage their Invoices.

    Need for integrating with Xero
  1. Xero eliminates the need to manually update accounts.
  2. Xero gives an option to automate invoices with Salesforce.
  3. Reduce double data entry between Salesforce and Xero as the data is synchronized itself in the Salesforce automatically.
  4. Keep data up-to-date and synchronize automatically.
  5. No need to develop any app for calculating the accounts info for the user.
  6. Automates invoices status(Pending, Paid, Outstanding).

Objects being synchronized between Salesforce and Xero

There is a two way synchronization amongst the objects i.e, Invoices and Opportunity(Transaction) and one way synchronization amongst Accounts, Xero Contacts and Products.

  1. Company is used to create a new Account into Xero Organization which will be synced as an Account into Salesforce.
  2. Contacts in Xero will be created will be synced as a Xero Contact in Salesforce.
  3. Invoices generated into Xero will be synced as Xero Invoices in Salesforce and vice-versa.
  4. Inventories/Items created into xero will be synced as a Product in Salesforce.
  5. Bank Transactions allow users to get, spend or receive money transactions into Xero and vice-versa.
Xero Salesforce

Technical Specification

In Salesforce to Xero Integration we have used OAuth 2.0 authentication that enables applications to obtain limited access to user accounts on an HTTP service.
To retrieve data from Xero to Salesforce we have used the following strategies-

Real Time Data Sync - We have used the REST APIs(A RESt resource is a piece of information such as a single data record or a collection of records) to fetch the data from the Xero into the Salesforce.
Asynchronous Data Sync - Asynchronous processing is a process that executes the task into the background without the user having to wait for the task to finish.
We have used Apex Batch Classes to retrieve data into the Salesforce from Xero which is synchronized after every 10 minutes .

To Push the data into Xero from Salesforce we have used the following strategies-

Real Time Data Sync - We have used triggers(They enable us to perform custom actions before or after events to records in Salesforce such as insertion/updation/deletion of records) to push the data into Xero from Salesforce.
Asynchronous Data Sync - We have used Apex Batch Classes(Its an Asynchronous Processing which happens in background without the user having to wait) to push data into the Xero automatically after every 10 minutes.

Conclusion

The following functionalities were achieved-

  1. Posting data of Contacts and Accounts into Salesforce as Accounts and Xero Contacts.
  2. A two way sync for all the Invoices from Xero will be successfully synced to Salesforce as Xero Invoices and vice-versa.
  3. All the items in Xero will create a product into Salesforce.
  4. An Opportunity generated into Salesforce will generate an unreconciled Bank transaction into Xero, After marking the Bank Transaction as reconciled into Xero the Opportunity in Salesforce will be marked as Received.

For any query on Xero Salesforce Integration, contact support@astreait.com