What are Data Extensions?

A Data Extension (DE) is a database table inside SFMC. It has rows (records) and columns (fields) — just like a spreadsheet or a database table. Data Extensions are the professional standard for managing subscriber data in SFMC and are used for virtually everything: send audiences, personalisation data, transactional records, and automation results.

📘 Core concept

Think of a Data Extension as a spreadsheet where each column is a field you define (e.g. SubscriberKey, EmailAddress, FirstName, Country) and each row is one subscriber record. Unlike a spreadsheet, a DE can store millions of rows, supports SQL queries, and integrates natively with every SFMC feature.

Lists vs Data Extensions

ListsData Extensions
FieldsFixed set of system fields onlyFully customisable — any fields you define
SQL queriesNot supportedFull SQL support
Journey BuilderNot supported as entry sourcePrimary entry source type
VolumeBest for small audiencesScales to tens of millions of records
AutomationLimitedFull automation support
Best used forSimple, infrequent use cases onlyEverything — professional standard
💡 Use DEs for everything

If you're starting fresh or migrating from Lists, use Data Extensions from the start. Lists are limited, don't scale, and prevent you from using many SFMC features. There's no good reason to choose Lists over DEs except for legacy systems that already depend on them.

Field types

When you create a DE, each column has a data type. Choosing the right type matters for storage, filtering, and SQL operations.

TypeUse forMax length
TextNames, addresses, categories, free text4,000 chars
NumberInteger values (IDs, counts, quantities)
DecimalCurrency, percentages (e.g. 19.99)
DateDates and datetimes
BooleanTrue/false flags (e.g. OptIn, IsActive)
EmailAddressEmail addresses — validates format automatically254 chars
PhonePhone numbers in E.164 format
LocaleLanguage/locale codes (e.g. en-GB, fr-FR)

DE types

TypeDescription
StandardA regular DE — the default type. Used for everything except direct sending.
SendableA DE that can be used as a send audience. Must have an EmailAddress field linked to Subscriber Key.
SharedA DE in the parent/enterprise BU shared across all child business units.
System Data ViewAuto-populated by SFMC with send/open/click/bounce events. Read-only for SQL but not editable. Prefixed with underscore: _Open, _Click, etc.

Creating a Data Extension

Importing data

You can get data into a DE several ways:

Manual import

In the DE record, click Import. Upload a CSV file and map columns to fields. Choose the import type:

Import Activity (Automation Studio)

For scheduled or file-triggered imports. The file is placed on SFMC's SFTP server and the import activity picks it up. This is the standard approach for nightly data feeds from CRM or e-commerce systems.

REST API

Insert or upsert records via the Data Events API endpoint. Used for real-time updates from websites or apps (e.g. form submissions, purchase events).

AMPscript / SSJS

Use UpsertDE(), InsertDE(), etc. in AMPscript for writes from emails or Cloud Pages.

Sendable Data Extensions

A Sendable DE is a DE you can use as a send audience in Email Studio or Journey Builder. To make a DE sendable:

  1. Check the "This data extension can be used for sending" option when creating it
  2. Map the EmailAddress field to the send (tells SFMC which column contains the email address)
  3. Map the Subscriber Key relationship (tells SFMC which column is the unique identifier — typically SubscriberKey)
⚠️ Subscriber key mapping matters

The Subscriber Key mapping determines how SFMC links the DE record to the All Subscribers list and contact model. Mismatched keys can cause duplicate subscriber records, incorrect unsubscribe tracking, and broken personalisation. Get this right from the start.

Data model design

A well-designed SFMC data model makes everything easier: faster queries, cleaner journeys, simpler personalisation. Here are the core principles.

Recommended DE structure

DE nameContainsType
Master_SubscribersOne row per subscriber: SubscriberKey, EmailAddress, name, demographics, opt-in statusSendable
Master_PreferencesCommunication preferences per subscriber per channel/programmeStandard
Trans_OrdersOne row per order: OrderID, SubscriberKey, ProductID, OrderValue, OrderDateStandard
Trans_ProductsProduct catalogue: ProductID, ProductName, Category, Price, ImageURLStandard
Segment_ActiveEngagedCurrent active+engaged subscribers — refreshed daily by SQL querySendable
Suppress_GlobalAll addresses to suppress from batch sendsStandard
JourneyEntry_WelcomeNew subscribers eligible for the welcome journey — refreshed dailySendable

Design principles

Contact Builder

Contact Builder is the data model manager for SFMC. It lets you define relationships between your DEs and the central Contact record — creating a unified profile for each subscriber.

Why it matters

Setting up relationships

In Contact Builder, go to Data Designer. Link your DEs to the Contact record via a shared key (usually Subscriber Key). Define whether the relationship is one-to-one (one DE row per contact) or one-to-many (multiple DE rows per contact — e.g. orders, events). Once linked, Journey Builder and other tools can traverse these relationships.