FAQ: How do I maintain deleted records in an integration?

Q. We’re using integrator.io to sync individual time logs from Jira with Salesforce, on the order of hundreds per day. After I delete a record in Jira, how do I handle that change within a flow so that Salesforce knows it’s gone away?

We’ve become reliant on our integrations to automate these processes, but I don’t see a way to keep the data truly in sync without periodic manual effort.

A. Integration platforms are designed to be cautious about deleting records, partly to avoid leaving “orphaned” objects and breaking referencing (foreign) keys. In practice, the vast majority of import operations add or update records, with some system variations and business logic.

And since integrator.io intentionally doesn’t persist your data between flow runs, it can’t automatically maintain the relationships between the records in the source and destination apps. The typical method that customers use to identify the correspondence is to cross-reference — for example, by adding in each Jira record the ID of the corresponding Salesforce record and vice versa.

That said, we can offer you some suggestions, based on experience, for partially or fully automating this common use case:

  • Try setting a flag in the source app to indicate that “this record should be ignored,” and then check the value of that flag to do a “soft delete” of the corresponding record in the destination app.

  • In some cases, you can use an event – in a Jira webhook, for example – to report that an action occurred (Jira record deleted), which could run a flow to delete the corresponding Salesforce record.

  • And if all else fails, you could set up a new database table to track the relationship between objects in disparate systems. Your create/update/delete flows can then use this database table to cross-reference records in either system.

Please reply in the comments if you have an alternative solution.