# Basic Flow Data Migrations

As the name implies, flow data migrations involve simply creating a normal workflow in appRules and using the standard workflow activities for reading data from sources, mapping, transforming and writing data to targets.

<figure><img src="https://1923141441-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MFjmFrZ8sef1J7qkr6H%2Fuploads%2FpR7yzFTgI2WgA1ujYC8W%2Fimage.png?alt=media&#x26;token=5771bee2-16a9-4c66-84f6-0ce530ed24ee" alt=""><figcaption><p>Flow Data Migration</p></figcaption></figure>

Your flow data migration projects can be as simple or as sophisticated as the job requires.  A simple Flow data migration project typically involves the following steps:

1. Initialize Source(s) using the **InitializeSource** workflow activities.  You can configure the source or define a custom query to be used for reading the data records.
2. Initialize Target(s) using the **InitializeTarget** workflow activities.  The targets define the tables and columns to be saved.
3. Iterate the source records using a **While** activity and a defined condition.
4. Map and transform data field values using the **MapRecordFields** activity.
5. Save the target record using the **SaveRecord** activity.
6. Get the next record(s) to be processed from the source(s) using the **GetNextRecord** activity.

As with all appRules projects, the system automatically captures statistics, errors, etc. during the process.  These results can be viewed at any time using the Project Run Details.

You can review the Flow Data Migration projects in the Sample Projects section of this documentation to learn more about configuring Flow Data Migration projects in appRules.
