You'll likely need to consider if the data egress or ingress is realtime, or asynchronous – it could well be a mixture of all of the above.
If the "one application" is yours, and you require strict adherence to a particular data format, you'll be in a better position. You would design a contract to require all integrations to work against – a good example here would be something like Zapier, which defines API contracts that applications must adhere to, in order to work.
If you're looking to integrate with many platforms with differing domain models, and you want to store them in the one application, you'll need something a bit more free-flowing, and you'll require a translator on your platform. You should absolutely version something like this from the beginning, since integrations can and do change their APIs at the drop of a hat. You'll also want to be able to temporarily pause syncing data from individual integrations, since any API changes, or downtime on 3rd party platforms may very well impact your own uptime.