Data Sync: Multiple Freshbooks to Single Salesforce

  • 131Views
  • Last Post 16 August 2018
  • Topic Is Solved
Leila Kassam posted this 13 August 2018


I want to sync my Freshbooks data across to the related Salesforce accounts. We have multiple Freshbooks accounts, each linked to accounts in the countries that we operate. 

How does Skyvia identify which source to sync with which target? Do I need to input any data into Salesforce beforehand (e.g. Freshbooks IDs), or can I have it link through, for example, e-mail addresses?



Order By: Standard | Newest | Votes
Mariia Zaharova posted this 14 August 2018

Thank you for your interest in Skyvia!

Could you please provide more details on your scenario:

1) If I understood you correctly, you want to migrate data from several Freshbooks accounts to one Salesforce account. Is this correct?

2) Do you want to implement this in one direction (one-way from Freshbooks to Salesforce) or in both directions?


Looking forward to your reply.

Leila Kassam posted this 14 August 2018


Thanks for the quick reply!

1) That is correct!

2) It's a one-way implementation to a custom field in Salesforce. 

Awaiting your response.

Pavel Triapsha posted this 16 August 2018


An Import package with UPSERT operation will fit your scenario.

The Upsert operation in Skyvia requires you to map the target id field. It works in the following way:

1. If a non-null value is provided for the primary key mapping, then the update operation is performed, and Skyvia attempts to update a record with such primary key value.

2. If a null value is provided for primary key mapping, then the insert operation is performed. 


For Upsert, every source row is either inserted or updated. And the number of records successfully inserted/updated in the target objects or tables is counted, even if a row was updated with the same values.


Please refer to: State Filter


Please follow the steps below to create such a package in your account:


1. Go to Integration tab. Click New -> Import;

2. Select source and target kinds and connections. Set Freshbooks for the source and Salesforce for the target;

3. Click Add task;

4. Select Client object for the Source. Set State Filter to ALL. Click Next; 

5. Select Account object for the Target. Select Upsert Option; 

6. Select the mapping reference type: "Use Primary key".

  Also, Salesforce offers native support for Upsert when "Use External ID" is selected in the package. External ID determining whether to create a new record or update an existing one for the UPSERT operation. Please note that External ID in Salesforce is a custom field that has the “External ID” attribute and has to be created manually

Refer to:


7. Click Next;

8. Specify mapping for the required columns; 


8.1. For 'Id' we recommend you to use the target lookup mapping with the "Set null when no match found" option for the id field. This lookup will compare emails in Freshbooks (Client) and Salesforce (Account). If such record is found, it will return its Id, and the record will be updated. If not, a null value is returned, and the record is inserted.

Mapping type - Target Lookup

Lookup Object: Account

Resulted Column: Id

Lookup Key Column: email__c (Salesforce)

Column: Email (Freshbooks)


Select Option "Set null when no match found".

Note that email__c- is a custom field created manualy


For more information, please refer to


8.2. Click the Name column and map it to the Username source column using column mapping.

8.3. Click the Email__c column and map it to the Email source column using column mapping.

9. Map other target fields that you need to the corresponding source Freshbooks fields using the default Column mapping.

10. Click Finish

11. Click Save and run the package.


Create distinct Import package for each of your Freshbooks connections.  


Feel free to ask in case of any further questions


Best regards,


  • Supported by
  • Leila Kassam