Deletion of custom object record in Salesforce does not trigger deletion on synchronization job

  • 25Views
  • Last Post 24 January 2019
0
votes
Jacob Widmer posted this 21 January 2019

I've created this custom object "Expert_Attachment__c" in Salesforce, the table is synchronized with an external PostgreSQL database (via data integration package). 

I can insert records into the PG database, and have those then inserted into Salesforce on a sync.

However, after literally clicking the "Delete" button on the record's detail view in Salesforce, and then running the synchronization integration, the record deletion is not tracked by Skyvia - it remains in my postgres database. 

I've waited up to 10 minutes after deletion, running the package every ~2 minutes or so, as well as tried before (and after) clearing out my Recycle Bin in Salesforce - still no deletion coming through over the integration.

What is causing Skyvia to not track the delete? This is very simple baseline functionality that should work.

Order By: Standard | Newest | Votes
0
votes
Mariia Zaharova posted this 22 January 2019

Hello Jacob,

 

Possible reasons:

1) The behaviour like you described can be reproduced if the package runs directly after the deletion from Salesforce.

Please refer to: https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/polling_for_changes.htm#topic-title

It says, that "We recommend polling no more frequently than every five minutes. There are built in controls to prevent errant applications from invoking the data replication API calls too frequently".

2) Taking into account the above comment, if you run your sync package just after deletion from Salesforce (1-5 mintues after), deleted records may be skipped, but LastSyncTime parameter is updated. Thus, next package run will process only the records changed since last package run (more than LastSyncTime value). I.e. previously deleted records will not meet this condition.

3) In case if you clear your Recycle Bin, deleted records will not be processed. This is an expected behavior. Skyvia does not support processing hard deleted records.

 

If you are sure that this is not the reason for your case, please describe a step-by-step scenario with screenshots, time periods and comments, so that we could reproduce absolutely the same scenario.

 

Best regards,

Mariia

0
votes
Jacob Widmer posted this 22 January 2019

How is that an acceptable condition, not being able to sync within ~5 minutes of deletion?

I have no idea when someone in Salesforce will delete a record, therefore I cannot set my sync job to run at least 5 minutes after that.

How am I supposed to set up my poll/sync schedule to accomplish deleting records from my database as well?

0
votes
Jacob Widmer posted this 22 January 2019

...in order to guarantee they won’t be missed and duplicated?

1
votes
Mariia Zaharova posted this 24 January 2019

Dear Jacob!

 

How is that an acceptable condition, not being able to sync within ~5 minutes of deletion?

This peculiarity is related to Salesforce. This is possible reason, but not the exact reason for this behaviour. When package starts running it requests Salesforce to provide new/updated/deleted records and if Salesforce API does not return deleted records at the moment, no records will be processed. 

We checked such scenario and we were not able to reproduce this behaviour, deleted records were detected and processed correctly.

We would be grateful if you describe a step-by-step scenario with screenshots, time periods and comments, so that we could reproduce absolutely the same scenario and give you more comments/suggestions.

 

Please also take into account the "Dedicated [CRM] account for synchronization" check box. Please look at the Step 8 here: https://skyvia.com/resources/docs/index.html?synchronization_package.htm 

As I can see, this check box is not selected in any of your sync packages.

 

JIC: Regarding updated records in Salesforce. If a record is changed by a trigger or any other automated process, then LastModifiedDate field is not updated. See more here. If it is related to your scenarios, let us know and we will enable using SystemModstamp instead of LastModifiedDate for your package(s).

  • Supported by
  • Jacob Widmer
Close