The Copy activity has an Upsert mode which I think would help here. Simple instructions:
- Create one Copy activity
- Set your source database in the Source tab of the Copy activity
- Set your target (or sink) database in the Sink tab. Set the mode to Upsert
- Specify the interim schema. This is used to create a transient table which holds data during the Upsert
- Specify the unique keys for the source and target table in the Key columns section so the Upsert can take place successfully
A simple example:

Failing that, simply use a Copy activity to land the data into a table in your target database and use a Stored Proc activity to implement your more complicated logic.