Mapping that’s Magical

Automatically generate rules for moving data between any two schemas. Trained on billions of user decisions, Flatfile’s mapping engine can convert data in seconds.

Map any two datasets

Extend rule gen with custom logic

Support even the most complex mapping requirements by creating your own data logic that’s written in code.

AI-powered transformations

Trained on years of importing data files, Flatfile’s AI based column matching provides uncanny accuracy, and remembers what your customers do.

Split and merge values

Easily combine or break apart data columns in any way you want with code-based transformations at the sheet, column, and cell level.

Transform mapping

Go beyond mere column mapping with transformations that can even detect and re-create nested records in a flattened file.

Everything where it belongs, automatically

Smart Rules that help you restructure data as needed, with recommendations from Flatfile’s AI model pre-trained on hundreds of millions of user mapping decisions.


Assign values from one column to another

Assign values from one column to another

Sometimes mapping is just as simple as recognizing fname as first_name. Flatfile can automatically alias source values to properties in the destination schema.


Merge multiple columns into one destination

Merge multiple columns into one destination

When your destination model has a single property to assign values to, and the source provides multiple, Flatfile knows how to provide either Array or Concat.


Map data to nested records

Map data to nested records

For collections of values, Flatfile can turn columns into an array of nested objects (or inversely, turn a collection of objects into a flattened structure).


Use patterns to get parts of data from a source

Use patterns to get parts of data from a source

Easily extract substrings from source data using exact pattern matching or use regular expressions for more complex needs.


Combine multiple values with a formula

Combine multiple values with a formula

Create text based values from multiple columns. For example, combine street, city, state and zip into a fully formatted address column.


Compute a final value from source data

Compute a final value from source data

Generate numerical values using your own custom formulas, utilizing multiple columns.


Apply a default value to a column

Apply a default value to a column

Apply default values wherever you’re missing data or have empty data.


Apply predefined changes to any field

Apply predefined changes to any field

Apply any standard text based transformations to your data such as case conversion, replacing special characters, or URL encoding.

Understands your data, not just your schema

Go beyond simple mapping rules with AI that understands the meaning and context of your data. Define what you want to do, and Flatfile takes care of the how.

Natural language classification

AI-based mapping that knows how to categorize junior vs. senior job titles and that apples and oranges are fruit -- all using plain English.

Reflects your business logic

Mapping that gets better with every user decision, unique to your business, trained on your own user data and interactions.

Gives users full control

Users can set default values, discard values, or add new categories as custom, all with an easy to use editing interface.

Play with it

Getting started is easy

You can use Flatfile mapping wherever schema reformatting is required, whether it's in data pipelines like Airflow or Mage, API integrations, data conversion workflows, or import processes within your application.

Use in your data pipeline


from flatfile_mapping import get_mapping_rules, MappingProgram

source_fields = ["name", "zip"]
destination_fields = ["nombre", "postal code"]

rules = get_mapping_rules(source_fields, destination_fields)
program = MappingProgram(rules)

transformed_data =
View Python Docs


import { getMappingRules, MappingProgram } from '@flatfile/mapping'

const sourceFields = ['name', 'zip']
const destinationFields = ['nombre', 'postal code']

const rules = await getMappingRules({ sourceFields, destinationFields })
const program = new MappingProgram(rules)

const transformedData =


curl --request POST   --url $FLATFILE_BASE_API/mapping   --header 'Accept: application/json'   --header 'Content-Type: application/json'   --header 'Authorization: Bearer $FLATFILE_API_KEY'   -d '{
  "source": {
    "slug": "source",
    "name": "source",
    "sheets": [{
      "name": "source-sheet",
      "fields": [...]
View CURL Docs

Embed in any app

Integrate with...Coming soon

More to love

Other options for solving your data exchange problems

Accept data anywhere


Accept data anywhere

Build a deeply configurable file import experience right in your application.

View Portal
Supercharge your data


Supercharge your data

Edit, validate, transform or integrate data into any workflow.

View Workbooks
Collaborate on data onboarding projects


Collaborate on data onboarding projects

Streamline complex data workflows across diverse stakeholders.

View Projects