TwoCanConnect – v1.7x Release

Our final release update of the year has arrived. 2020 has been a challenging year for everyone around the world. During these times, TwoCanConnect has been working tirelessly in the background to deliver our biggest feature update ever.

  • All Sandbox instances will be updated to the new version on 1st January, 2021
  • All Production instances will be updated to the new version on 1st February, 2021

The major change we need to bring to your attention for this release changes our authentication to the new oAuth2.0 standard in order to comply with Salesforce and Xero’s recently updated security standards. We need to upgrade your instance before Xero turns off the old protocol in March 2021. You can read more about the reasons why Xero are turning off the protocol in this blog post. If we don’t upgrade your instance of TCC by this date, you will lose connection.


A major part of this release is the update from the old Xero authentication oAuth1.0 to oAuth2.0 security flow. Xero are depreciating the old security protocol in March 2021.

This new authentication process uses a new endpoint than originally shipped with TwoCanConnect. Because you are an existing user (this does not affect new installs as it will be a part of the package), you will need to take some steps in order to make sure that your connection still works after the upgrade.

There are two options to be ready for the upgrade.

Option 1) Get Prepared Before the Update

If you are a Salesforce Administrator, you can add a new remote site setting before the upgrade for a seamless experience.

Please see the video below on how to add the new remote site setting to your Salesforce instance.

VIDEO: Add New Remote Site Setting

Option 2) Action After the Upgrade

We ship the new remote site setting in the package update as well, however due to Salesforce security limitations we can not mark it as ‘Active’. If you don’t complete the manual adding of the remote site setting before the upgrade, you can jump into the Remote Site Settings after the upgrade and just enable the one we provide as a part of the package. We run through this in the video below.

VIDEO: Enable Remote Site Setting


If you still do not feel confident creating / updating remote site settings, please grant login access and log a support case and our team will do this for you.

If you do not complete the above before / after the planned upgrade date, your sync will disconnect and not be able to reconnect until it is completed as this remote site setting is the new URL for Xero Authentication.

You will also see a notification bar in the TCC Configuration page if you don’t have the setting enabled once upgraded.

Once our push upgrade is done, you will get a notification email and it will also ask you to re-enable the ongoing sync scheduler. It will be disconnected as a part of this update to the new security standard. We apologise that there needs to be manual interaction here, however it is the only way to upgrade to the new security standard.


New Feature Roundup


  • Configuration – Updated Interface

It’s been about 12 months since our last interface update – since then we have added a wealth of new features and the interface was getting a bit busy! We have made some updates from the visual perspective and also moved some menu items around. We would appreciate any feedback here!

We have also re-recorded the videos to match the new configuration page.

  • Configuration – Custom Object Sync

We have now removed the dependency on the opportunity object to be able to generate an invoice.

You can now generate an invoice from any object in Salesforce using our custom object field mapping right out of the box, along with create custom buttons to be able to use our invoice creation pages from any object. Great for developers or instances of Salesforce where invoices need to be generated using our custom pages in other Salesforce objects. 

We also allow child object syncing, which means if you have a custom child object under the main object, you can make this act like product fields to pre-populate the invoice line items, including an optional lookup to a Product ID if you are tracking stock / inventory.

There is a limit of 10 custom objects at this stage. 

  • Configuration – Custom Object Button Creator

Follow our step by step button creator to create a button on any custom object ready to launch TCC.

  • Invoices – Manually add line items in invoice editor

We can now manually add custom lines to the invoice line item editor when creating an invoice. Please note that this does not create a product and does not sync the invoice line back to the opportunity line item.

  • Invoices – Allow negative amounts

You are now able to enter negative amounts as line items when creating a new invoice. You still cannot have a negative total amount OR use a negative amount on a tracked item – this is a Xero limitation.

  • Invoices – Allow to create an invoice as submitted for approval

There is now an extra button in the configuration to allow your users to submit an invoice for approval. This will push the invoice to Xero as ‘SUBMITTED’ and will require someone to approve the invoice from the Xero side.

  • Invoices – Tax Rate Per Line Item

In the invoice editor, you can now display and change the tax rate per line item, rather than relying on the Xero Account’s default tax. When a product is added to the invoice, it will pull in the default account and the accounts tax rate. You can allow users to change access to change these via the configuration menu.

  • Configuration – TOAST Bars on Config Page

We have added multiple TOAST bars at the top of the config page to notify you if there are sync issues or disconnects.

  • Sync Update – Sync Default Branding Themes

In Xero, you can set a default branding theme for each Xero Contact. We now sync this with Salesforce and every time you create an invoice for that customer, the branding theme will be selected by default on the invoice page.

  • New Tool – Quick Invoice Percentage Feature

If your business collects payments based on milestones (10% deposit, 25% progress payment, etc), it can be frustrating having to manually calculate your percentages when creating and invoice.

We have added a ‘Quick Invoice Percentage’ feature to the configuration page. When enabled, it will show a section on the invoice to select either a pre-set percentage or calculate a custom percentage for the invoice. It will then update all line items to this percentage automatically. You can set your custom invoice percentages from the configuration page under the ‘Tools’ menu.

  • Inventory / Stock on Hand Syncing (BETA)

This BETA feature adds the ability to sync your current stock numbers with Salesforce. When an invoice is created, you can now see the stock number in real time from Xero in the invoice page by hovering over the quantity column. This stock number will refresh every 15 seconds while you are on the invoice page. The stock number is also stored on the product record. 

There are new configuration options on the configuration page to control this feature:

Invoice Settings on Configuration Page:

•    Show stock number for tracked products on invoices
This option will show our stock prompt on the invoice page. The prompt will be blue if you have enough stock on hand to fulfil the invoice, else it will be red if there is not enough stock.

•    Allow approved invoices to be created if there is not enough stock
Xero has validation rules in place around tracked products and inventory. You are not allowed to create an approved invoice if there is not enough stock on hand. You can only create draft invoices.

This configuration option will still allow you to create the invoice in Salesforce (you will also see a prompt on the invoice page to confirm), however this invoice will not sync and will create debug log errors until the stock has been added in Xero.

•    Allow creation of ‘Submitted’ Invoices
You asked and we listened! We had a few requests about the ability to create an invoice as ‘Awaiting Approval’. Through our configuration settings you can now enable users to create an invoice ready for approval.

•    ‘Last Invoice Date’ on Xero Contact & Salesforce Account
A feature request from our customers has been delivered – to build an automated ‘Last Invoice Date’ that lives on the Xero Contact and the Salesforce Account. 

In the advanced settings, you can also select which field on the invoice you want to roll up into the ‘Last Invoice Date’. We default this to the Salesforce Created Date, however you can change to another field such as Invoice Due Date.

You can also change the way the field is calculated. We can show invoices where the date field is LESS THAN OR EQUAL to today, or to also include invoices with the date in the future.

You can now use this field in reporting to show the last invoice date to keep on top of your customers invoicing frequency. We have also added a new report to the package to track this – existing TCC customers will need to manually add this as a component on any dashboards.

This field will update in real-time when an invoice is created / updated and will also run at midnight every night to ensure the latest invoice date is shown. There is an additional field on both objects which calculates the Number of Days since last invoice.

Under the Hood

  • oAuth2.0

In January of this year, Xero released the ability to authenticate by oAuth2.0. oAuth2.0 is a more robust authentication method to transfer data via the API to Xero. The oAuth2.0 standard opens up a lot more configuration options for TCC moving forward and makes your customer experience better when transferring data via the API. 

  • API Limits

The move to oAuth2.0 now sends us back information in relation to how many API callouts remain for the minute / day in Xero. We have now tailored our sync logic to read this data before trying to sync with Xero, which means that you won’t go over your limit of API calls in a specific period of time.

There has been an issue previously when using the historic sync where Xero and Salesforce would disconnect because there were too many API calls happening at one time. We are now able to limit this from the Salesforce side to not hit those limits. We have added an advanced menu item to the configuration page where you can set the maximum number of callouts for many of our sync batches. It’s recommended you leave these as they are and only adjust in consultation with TwoCanConnect support.

  • Batch Delete Debug Records

Previously, we only allowed 10,000 records to be deleted at a time. We now run this process in the background to delete all logs no matter how many are stored.

  • CSV Uploading

There are Xero users with a large amount of items, invoices or invoice line items. During a historic or initial sync, this can cause issues because Xero does not allow us to grab a small amount of records, which can sometimes cause Salesforce to throw and error because it is too much data for it to handle.

We have now added a CSV upload function where you can upload a CSV file of items or invoices, which we will pull data from Xero at a limited rate to avoid Salesforce heap errors.

  • Account Matching

Account matching has been adjusted to now allow any number of invoices to be matched per contact when using an automated batch. The previous limit for a match was 10,000.

  • Page Layout Editor

When adding page layouts via the page layout editor, we now sort the invoices and show the latest invoice at the top.

  • Person Accounts on Page Layout Editor

When using the Page Layout Editor, we now allow adding the lists and objects to Salesforce Person Account layouts.

  • Rollup Recalculation

If you change the rollup field summaries to a different calculation type (EG from Excluding Tax to Including Tax) we now recalculate all accounts and opportunities.

  • Updated Formula for Days Overdue

The ‘Days Overdue’ formula on the invoice no longer takes into account if the invoice is VOIDED or DRAFT.

  • More descriptive error messages

More descriptive error messages have been added for:
•    No tracking categories found – Now tells you there are no categories found and shows a green toast message
•    My Domain required for page layout tool
•    When field permissions are missing, it will specify only the fields that are having the issue rather than all fields for the object

  • Default Branding Theme 

Xero Contacts can have a default branding theme selected in Xero. We now sync this with Salesforce and choose the value by default in any created invoices for this contact.

  • Page Layout Tool – Sort by Invoice Due Date

When the page layout tool is used, it will now sort by the Invoice Due Date, with the latest date at the top of the list.

  • Tracking more invoice fields

We are now syncing the ‘Account Number’ from Xero to Salesforce.

  • Invoice Download Modal

Changed the text from ‘Cancel’ to ‘Done’ to avoid confusion.

  • Invoice Date Field

Updated the Invoice Date field to be more mobile friendly.

  • Custom Field Mapping – Allow ProductID to be mapped

We have also updated the custom field mapping to be able to map a ProductID into a child object. This will allow you to map a product directly to the invoice, which will then also pull the default Sales Account + Tax Type. 

Bugs Squashed:

  • Account Matching Page doesn’t remember last settings

The account matching page now remembers the last search setting you used to easily access it again later.

  • Active Product Issue

Some customers were reporting an issue with products being marked as inactive in Salesforce then becoming active again after the ongoing sync runs. This is now fixed.

  • Read Only Sync Data not updating

We also fixed a bug for customers that were using the ‘read only’ sync function. The Last 10 Syncs and the Last Sync Date/Time modules were not updating properly after a read only sync. This is now fixed for all users.

  • Product Importing

Fixed an issue when importing products via the inventory sync page where you already had the product in Salesforce as a part of the standard price book.

  • Conflicting Invoice Object Fix

Fixed an issue if you already had an Invoice Object in Salesforce named the same as ours.

  • Help & Troubleshooting Page

Under the hood improvements to decrease load time.

Need more help? Contact us to discuss

We are here to help. Send us an email to ask any questions or request a demo.