# Create your first integration

![The anatomy of a stream](https://378783075-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lzkg5CaFPWC2d3HNSxq%2F-MNdFvgczKDSCPDWoAK3%2F-MNdHhqmuIBiLH5VHiCV%2FDemo%20Overview%20\(1\).png?alt=media\&token=dad33f9f-8397-4bb1-b4c2-3968dcdaacbd)

{% hint style="info" %}
A system here refers to any type of source and destination, be it an a specific 3rd party application, or something more generic like a FTP location, other file storage types or a communication endpoint like email or Slack.
{% endhint %}

**A Stream is created by combining three key components:**\
1\. **The Source function** - The Source Function decides what data should be pulled from the Source system and when. You will need a System Key in order to pull the data from your Source system.\
2\. **The Transformation** - The Transformation is responsible for transforming the data of the Source system to match the data of the Destination System.\
3\. **The Destination** - The Destination Function decides what data should be pulled from the Destination system and when. You will need a System Key in order to post the data to your Destination system.

## Use case based Stream setup guide

**In the next 5 steps we will walk through a use case based guide of how to integrate and automate the flow of data between Shopify & a 3rd party logistics company's FTP-location.**

Unless you're a Developer using HighCohesion's SDK, all configuration for HighCohesion is done from the Control Panel.
