Adobe Implementation Playbook

Build 1 · AEP

Phase 5 · Build stage 1 of 9

Adobe Experience Platform

Depends on: Admin Console access, product profiles and Dev/Prod sandboxes. Unlocks everything after it.

Typical duration
16–26 weeks
Walkthrough steps
12
Detailed tasks
54
Domains
6
0 of 0 done

This tool across the project

What AEP needs in every phase, from kickoff to handoff, next to the sign-off gate for that phase.

PhaseAEPGate (all tools)
1. Initiation (RFP / kickoff)Confirm licences, sponsor, sandbox count, sources in scopeRFP response; sponsor and team named
2. Discovery (current & future state)Audit sources, identifiers, consent, data quality; draw future-state data flowCurrent State Assessment; Future State Blueprint — Discovery sign-off
3. SOW & planScope sources, schemas, Wave 1 use cases; check volumes vs. licenceSOW signed: scope, deliverables, timeline, price
4. Design (SDR / SDD)SDR: schemas, field groups, namespaces, datasets, mapping. SDD: data flow, sandboxes, governanceSDR + SDD — Design sign-off
5. Build & configureSandboxes → namespaces → schemas → datasets → sources & mapping → ingestion → profileConfigured environment — Build Complete sign-off
6. QA / UATRow-count reconciliation, null/duplicate SQL, identity spot-checks, blocked-activation testQC checklist executed — UAT sign-off
7. Go-livePromote via sandbox packages; start Prod dataflowsProduction cutover — Go-Live sign-off
8. Hypercare (2–4 weeks)Dataflow failures, ingestion lag, profile countsDaily monitoring; fixes — Hypercare Exit sign-off
9. Closure & handoffRunbook for failed dataflows and schema changes; final SDR; access list; trainingHandoff pack: runbooks, access list, training, open backlog

Implementation overview

PhaseWhat you doDeliverables
Define Use CasesIdentify goals, translate to use cases, prioritize by data availability/feasibility/impact, define KPIsUse case catalog, KPI matrix, data requirements doc
Create SandboxesDev/Stage/Prod sandboxes, roles, promotion rulesSandbox governance policy, access matrix, promotion workflow
Build XDM SchemasProfile vs. ExperienceEvent classes, field groups, identity fieldsSchema architecture, identity field mapping
Create DatasetsDatasets per source, enable for Profile, retention rulesDataset inventory, retention policy
Configure SourcesBatch, streaming, and app connectors; field mappingSource list, mapping specs, ingestion dashboards
Ingest DataTest ingestion, validate fields/timestamps, monitor, scheduleIngestion validation report, error log
Configure IdentityNamespaces, primary/secondary IDs, graph validationIdentity strategy doc, namespace list
Enable ProfileEnable Profile datasets, validate unified profiles, include consentProfile checklist, unified profile samples
Build SegmentsRule-based + streaming segments, preview size, tag by use caseSegment library, logic documentation
Activate DestinationsConfigure destinations, field mapping, batch vs. streamingDestination config list, activation dashboards
Connect AJO & CJAWire AEP to AJO and CJA, validate events/segmentsIntegration checklist, data flow diagram
Monitor & OptimizeWatch ingestion/identity/segment/activation health, iterateMonitoring dashboards, optimization roadmap

Step-by-step implementation

Do these 12 steps in order, in a development environment. Each step lists where to go, what to do, what to check, what you must know, and the questions interviewers ask about it.

Step 1

Plan use cases & data

Where
Outside AEP — discovery workshop + data inventory
What you do
List priority use cases, the sources each needs, and collect sample files from the client (JSON/CSV).
Tips
Check the sample JSON/CSV is well-formed and consistent (same keys, types, date formats) before modeling.
Check before moving on
Use case catalog and data requirements doc signed off.

Must know

  • Start from use cases, not from the data the client happens to have. Each use case names its audience, its sources, the identities that join them, and where it is activated.
  • Every source has to be modelled in XDM, so collect real sample files early. Messy samples mean messy schemas.
  • Check expected data volumes and profile counts against the licence before committing to sources.

Interview questions tap to reveal a model answer

How would you run a discovery workshop for an AEP implementation?

Bring marketing, IT and privacy together, list business goals, turn each into a named use case, then map the sources, identities, consent and activation channel each one needs.

How do you decide which use cases go in Wave 1?

Score each on data availability, feasibility, business impact and dependencies, then pick the top 3 to 5 that are high value and can run on data you already have.

A client wants "all their data" in AEP. How do you respond?

Push back politely: ingest what the agreed use cases need. Extra data costs licence volume, adds governance risk and slows the build.

Sample source file (JSON/CSV) the client provided
Screenshot Sample source file (JSON/CSV) the client providedAdd screenshots/aep/step-01.png
Step 2

Set up sandboxes & access

Where
Sandboxes (left nav) > Create sandbox; Admin Console > product profiles / roles
What you do
Create a Development sandbox; create roles for schema, dataset and audience work and assign named users.
Tips
Least-privilege access; build and test everything in Dev before Prod.
Check before moving on
Each user lands in the right sandbox with the right permissions.

Must know

  • Sandboxes isolate everything: schemas, datasets, identities, audiences and data in one sandbox are invisible to another.
  • There are production and development sandboxes. Development sandboxes together are capped at 10% of your licensed profiles, and both types can be reset (wiping their contents).
  • Sandbox tooling (packages) copies configuration between sandboxes, never data. Source credentials are not copied, datasets arrive with Profile turned off, and data usage labels are not carried over.
  • Access is granted through roles and permissions, down to individual sandboxes and features.

Interview questions tap to reveal a model answer

Development vs. production sandbox: what is the difference?

Development sandboxes are for building and testing; production sandboxes hold live data that feeds real activation. You build in Dev and promote validated configuration to Prod.

How do you move schemas and datasets from Dev to Prod?

Package them with sandbox tooling, then import the package into the production sandbox and re-run QC there.

How would you limit a user to one sandbox and schema work only?

Create a role whose permissions cover schema management only and whose sandbox access lists just that sandbox, then assign the user to it.

Sandbox list showing Dev and Prod
Screenshot Sandbox list showing Dev and ProdAdd screenshots/aep/step-02.png
Step 3

Create identity namespaces

Where
Customer > Identities > Create identity namespace
What you do
Confirm standard namespaces (Email, ECID, Phone) and create custom ones such as CRMID or LoyaltyID.
Tips
Pick the identity type carefully (cross-device vs. device); namespace codes cannot be renamed later.
Check before moving on
Namespace names and codes recorded in the SDR.

Must know

  • A namespace gives an identity value its context: "a@b.com" only means something once it is tagged as Email.
  • Identity type matters: cross-device IDs (CRM ID, loyalty ID), device IDs (ECID, IDFA), email, phone and non-people identifiers. Non-people identifiers are not stitched into identity graphs.
  • Standard namespaces (Email, Phone, ECID) already exist. A custom namespace's identity symbol cannot be changed after you create it.
  • Not every ID is a person. A booking reference (PNR) or order ID is shared or transactional, so store it as a field, not an identity.

Interview questions tap to reveal a model answer

Namespace vs. identity value?

The namespace is the type or context (Email, CRMID); the value is the actual ID ("a@b.com"). Identity Service needs both to link records.

What is ECID and where does it come from?

The Experience Cloud ID: a device/browser identifier set by Web SDK or the ECID service. It identifies anonymous visitors and links to known IDs at login.

Would you make a PNR or order ID an identity?

No. Several travellers share a PNR and an order is a transaction, so using them as identities would merge different people. Keep them as fields.

Identity namespaces list
Screenshot Identity namespaces listAdd screenshots/aep/step-03.png
Step 4

Create the schema

Where
Data management > Schemas > Create schema
What you do
Choose the class: Individual Profile for attributes, Experience Event for time-stamped actions. Name it per convention.
Tips
One schema per entity type; records (who someone is) vs. events (what they did) decides the class.
Check before moving on
Class matches the data you will ingest.

Must know

  • Every schema has exactly one class, and the class decides how it behaves. Individual Profile = who someone is (attributes). ExperienceEvent = what happened and when (time series).
  • An ExperienceEvent schema is not the place for profile attributes. A loyalty tier sent inside an event is stored as event data; it does not update the person's profile attributes. Model those in a Profile-class schema.
  • ExperienceEvent schemas always require _id and timestamp.
  • Design carefully up front: once a schema is enabled for Profile and data is ingested, changes are additive only (no removing or renaming fields, no type changes).

Interview questions tap to reveal a model answer

Individual Profile vs. ExperienceEvent class: when do you use each?

Profile for slowly changing attributes such as name, tier and consent; ExperienceEvent for time-stamped actions such as page views, bookings and purchases.

How would you model a booking with several flight segments?

As an ExperienceEvent with an array of segment objects (flight number, origin, destination, date) plus booking-level fields like fare class and total.

What can you still change after data is ingested?

Only additive changes: add new fields and field groups. Once a schema has been used to ingest data you cannot remove, rename or change the type of existing fields.

Create-schema dialog with class selection
Screenshot Create-schema dialog with class selectionAdd screenshots/aep/step-04.png
Step 5

Add field groups & custom fields

Where
Schema editor > Field groups > Add
What you do
Add standard field groups (Demographic Details, Personal Contact Details, Consents and Preferences); add custom fields for gaps.
Tips
Standard field groups first; custom fields sit under your _tenantId object, like the client JSON sample.
Check before moving on
Every field in the sample file has a matching XDM field.

Must know

  • Field groups are reusable building blocks defined for specific classes; you can only add groups that are compatible with the schema's class.
  • Use Adobe's standard field groups first. AJO, CJA, Commerce and Analytics integrations expect standard fields.
  • Custom fields live under your tenant object (_tenantId), so they never clash with Adobe's fields.
  • Data types are reusable field structures (an address, a flight segment) that you can use in several field groups.

Interview questions tap to reveal a model answer

Field group vs. data type?

A field group adds a set of fields to a schema of a given class; a data type is a reusable structure (like an address) that you place inside field groups or schemas.

Why do custom fields sit under the tenant ID?

It namespaces your organization's fields so they never collide with Adobe standard fields or other organizations' fields.

What do you do when no standard field fits?

Create a custom field group with fields under the tenant object, reusing data types where possible, and document it in the SDR.

Schema editor showing field groups and _tenantId fields
Screenshot Schema editor showing field groups and _tenantId fieldsAdd screenshots/aep/step-05.png
Step 6

Mark identities & enable for Profile

Where
Schema editor > select field > Identity / Primary identity; schema Profile toggle
What you do
Mark CRMID (or email) as the primary identity with its namespace, then enable the schema for Profile.
Tips
Once Profile-enabled and data lands, structural changes become additive only — review before saving.
Check before moving on
Exactly one primary identity per schema; Profile toggle on where needed.

Must know

  • To enable a schema for Profile it needs a primary identity field. Web SDK events usually carry identities in identityMap, where one identity is marked primary.
  • All Profile-enabled schemas of the same class combine into the union schema, which is what Profile and segmentation actually read.
  • Once a schema is enabled for Profile and saved, it cannot be disabled again. Get sign-off before you flip the toggle. After a schema has been used to ingest data, only additive (non-breaking) changes are allowed.
  • Both the schema and the dataset must be enabled for Profile for data to reach Real-Time Customer Profile.

Interview questions tap to reveal a model answer

What is the union schema?

A merged view of every Profile-enabled schema of the same class. Segmentation and the profile viewer read the union, not individual schemas.

Identity fields vs. identityMap?

Identity fields mark specific schema fields with a namespace; identityMap is a flexible map of namespaces to values, used heavily by Web and Mobile SDK events.

Why does the primary identity matter?

It is the key the profile fragment is stored under, so a wrong or shared primary identity breaks profile assembly and can merge people.

Field properties with Identity and Primary checked
Screenshot Field properties with Identity and Primary checkedAdd screenshots/aep/step-06.png
Step 7

Create the dataset

Where
Data management > Datasets > Create dataset > Create dataset from schema
What you do
Pick the schema, name the dataset, and turn on the Profile toggle if it should feed Real-Time Customer Profile.
Tips
One dataset per schema/source combination (e.g., CRM Profiles, Web Events).
Check before moving on
Dataset shows the correct schema and Profile status.

Must know

  • A dataset is a storage container for data that follows exactly one schema.
  • Ingested data always lands in the data lake; the Profile toggle additionally sends it to the Profile store.
  • Profile-enabled data counts toward licensed profile entitlements, so do not enable Profile for data no use case needs.
  • Set retention on high-volume ExperienceEvent datasets (clickstream, playback) to control cost.

Interview questions tap to reveal a model answer

Schema vs. dataset?

The schema is the structure (the blueprint); the dataset is where records that follow that structure are stored.

Data lake vs. Profile store?

The data lake keeps all ingested data for Query Service and CJA; the Profile store keeps Profile-enabled data assembled into real-time profiles for segmentation and activation.

Which datasets would you not enable for Profile?

Raw logs, high-volume data no audience uses, and anything sensitive that must not be activated. They can still be analysed from the data lake.

Dataset activity page with Profile toggle
Screenshot Dataset activity page with Profile toggleAdd screenshots/aep/step-07.png
Step 8

Connect a source & map fields

Where
Connections > Sources > Catalog (e.g., Local file upload, Amazon S3, Salesforce)
What you do
Authenticate, select the file or table, choose the target dataset, then map source fields to XDM fields.
Tips
Use calculated fields in mapping for fixes such as date formats or lower-casing emails.
Check before moving on
No required field left unmapped; data preview looks right.

Must know

  • Sources bring data in by batch (files, warehouses, CRMs) or streaming (HTTP API, streaming connectors). Website and app data usually arrive through Web/Mobile SDK and a datastream instead.
  • Data Prep maps source fields to XDM and can transform values on the way in with calculated fields (date formats, lower-casing emails, joining fields).
  • Required XDM fields must be mapped, or those records fail.
  • Hash or tokenize sensitive values where policy requires, before or during ingestion.

Interview questions tap to reveal a model answer

Batch vs. streaming ingestion?

Batch is scheduled bulk loads (CRM extracts, warehouse tables) with higher latency; streaming sends records as they happen (web events, booking updates) for near real-time use cases.

How does website data reach AEP?

Web SDK (usually through Tags) sends XDM events to the Edge Network; the datastream routes them to the AEP dataset and other services like Analytics.

A date arrives in the wrong format. How do you fix it?

Use a Data Prep calculated field (date functions) in the mapping step so it is converted to the XDM date-time format during ingestion.

Mapping screen (source fields to target XDM fields)
Screenshot Mapping screen (source fields to target XDM fields)Add screenshots/aep/step-08.png
Step 9

Schedule & run ingestion

Where
Sources > Dataflows; Data management > Monitoring
What you do
Set batch frequency (or streaming), run the first load into Dev, and open the dataflow run details.
Tips
Compare source row counts with ingested counts (target under 1–2% variance).
Check before moving on
Failed records investigated and re-run successfully.

Must know

  • A batch can fail completely or partly. Partial ingestion with an error threshold lets good rows in while you inspect the failed ones.
  • Streamed data reaches Profile in near real time; batch data takes longer before it is available to Profile and segmentation.
  • Monitor dataflow runs and set alerts; always compare source counts with ingested counts.

Interview questions tap to reveal a model answer

A batch failed overnight. How do you troubleshoot it?

Open the dataflow run, read the error diagnostics, check failed rows against the schema (types, required fields, formats), fix mapping or source, then re-run.

What is partial ingestion?

An option that ingests the valid rows of a batch and rejects the invalid ones up to an error threshold, instead of failing the whole batch.

How quickly is streamed vs. batch data available?

Streamed data is available to Profile within minutes; batch data depends on the schedule and processing, so it is slower.

Dataflow run details with success and failed counts
Screenshot Dataflow run details with success and failed countsAdd screenshots/aep/step-09.png
Step 10

Validate data & profiles

Where
Data management > Queries (Query Service); Customer > Profiles > Browse
What you do
Query the dataset for row counts and nulls; look up known customers by identity in the profile viewer.
Tips
Spot-check 20–30 known customers across channels.
Check before moving on
Profiles merge correctly and consent attributes are present.

Must know

  • Query Service runs SQL on data lake datasets, not directly on the Profile store.
  • Nested XDM fields are queried with dot notation, e.g. _tenant.booking.fareClass.
  • Standard checks: row counts vs. source, null rates on key fields, duplicate IDs, and how many records carry an identity.
  • To look someone up in the profile viewer you need the namespace plus the identity value.

Interview questions tap to reveal a model answer

Can you query the Profile store with Query Service?

Not directly. Query Service reads datasets in the data lake; profile data can be analysed through profile snapshot exports.

Write a query that finds duplicate order IDs.

SELECT commerce.order.purchaseID, COUNT(*) FROM orders GROUP BY 1 HAVING COUNT(*) > 1;

How do you prove the ingestion is correct?

Reconcile row counts with the source, check nulls and duplicates on key fields, and spot-check 20 to 30 known customers in the profile viewer.

Profile viewer for a test customer
Screenshot Profile viewer for a test customerAdd screenshots/aep/step-10.png
Step 11

Review the identity graph

Where
Customer > Identities > Identity graph viewer
What you do
Search a test identity and confirm the linked IDs form one real person.
Tips
Watch for over-merging through shared devices or generic emails.
Check before moving on
No unexpected links in the graph.

Must know

  • Identities that appear together in the same record or event get linked; the linked set forms one person's identity graph.
  • Graph collapse (over-merging) comes from shared devices, shared or fake emails, and placeholder values such as "user_null".
  • Identity Graph Linking Rules prevent it: mark a namespace as unique (a graph can hold only one identity from it) and set namespace priority.
  • Merge policies (RTCDP stage) decide which fragments and values win when the profile is assembled.

Interview questions tap to reveal a model answer

How does AEP link an anonymous visitor to a logged-in customer?

When an event carries both the ECID and a known ID (e.g. CRMID at login), Identity Service links them in the graph, so earlier anonymous activity joins the known profile.

What causes graph collapse and how do you prevent it?

Shared devices, shared emails and junk values. Prevent it with unique namespaces and namespace priority, and by never sending placeholder IDs.

Identity graph vs. merge policy?

The graph decides which identities belong to one person; the merge policy decides how their profile fragments and conflicting attribute values are combined.

Identity graph for a test customer
Screenshot Identity graph for a test customerAdd screenshots/aep/step-11.png
Step 12

Promote & monitor

Where
Sandboxes > Packages (sandbox tooling); Data management > Monitoring
What you do
After Build sign-off, package validated schemas/datasets and import them to Prod; set ingestion alerts.
Tips
Promote configuration, not test data; repeat the QC checks in Prod.
Check before moving on
Prod dataflows running and alerts configured.

Must know

  • Promote configuration with sandbox tooling packages; data never moves between sandboxes. Check which objects a package supports, because some connections and credentials must be set up again in Prod.
  • Test data never goes to Prod. Re-run the QC checks in Prod after promotion.
  • Set alerts on dataflow failures and ingestion lag before go-live, not after.

Interview questions tap to reveal a model answer

Walk me through your AEP go-live checklist.

Signed-off QC in Dev, package and import to Prod, recreate connections, run first Prod loads, reconcile counts, verify profiles and consent, confirm alerts, then hand over runbooks.

How do you promote changes from Dev to Prod?

Sandbox tooling packages for schemas, datasets and other supported objects, followed by validation in Prod.

What do you monitor during hypercare?

Dataflow failures, ingestion lag, profile counts, identity graph health and audience sizes, daily for the first two to four weeks.

Monitoring dashboard in Prod
Screenshot Monitoring dashboard in ProdAdd screenshots/aep/step-12.png

Sources (UI paths checked against Adobe Experience League, Oct 2026 — menus can move between releases; confirm in your org): end to end tutorial · create schema ui

Implementation by domain

How to use: do each step in your sandbox using the “How to do it” column, then read across the row to see how the same step changes by domain. Each domain column follows one scenario from top to bottom. Add a screenshot and what you learned in the last column.

Travel & Airlines · practice brand: SkyLumen Airways

Lab use case: Traveler + bookings

Profile: B2C, seasonal, multi-currency/locale. Compliance focus: GDPR (EU travelers), loyalty program data, real-time pricing/inventory sensitivity.

What changes in this domain: Loyalty-tier and trip-lifecycle segments (pre-trip, in-trip, post-trip)

Special considerations: Time-sensitive activation (flight delay, check-in windows)

  1. Booking, disruption, loyalty. Sources: reservations, departure control, flight ops, loyalty.

    How (any domain): Workshop: list use cases, the sources each needs, and collect sample files; validate the sample JSON/CSV.

    Check: Use case catalog and data inventory signed off.

    Use cases & data inventory · Travel & Airlines
    Screenshot Use cases & data inventory · Travel & AirlinesAdd screenshots/aep/travel-01.png
  2. Dev / Prod; ops feed tested in Dev with replayed events.

    How (any domain): Sandboxes > Create sandbox (Dev); roles per job (schema, dataset, audience); least privilege.

    Check: Each user lands in the right sandbox with the right role.

    Sandboxes & access · Travel & Airlines
    Screenshot Sandboxes & access · Travel & AirlinesAdd screenshots/aep/travel-02.png
  3. Loyalty ID primary, Customer ID, email, phone, ECID. PNR is a field, not an identity.

    How (any domain): Customer > Identities > Create identity namespace; choose cross-device or device type.

    Check: Namespaces and codes recorded in the SDR.

    Identity namespaces · Travel & Airlines
    Screenshot Identity namespaces · Travel & AirlinesAdd screenshots/aep/travel-03.png
  4. Profile: tier, miles, upcomingTrips[]. Events: booking with segments[], check-in, flight status.

    How (any domain): Schemas > Create schema: Individual Profile or Experience Event; standard field groups first, custom fields under your tenant.

    Check: Every field in the sample file maps to an XDM field.

    Schema & field groups · Travel & Airlines
    Screenshot Schema & field groups · Travel & AirlinesAdd screenshots/aep/travel-04.png
  5. Primary loyalty ID; booking events carry loyalty ID and email.

    How (any domain): Mark identity fields and one primary identity; enable the schema for Profile.

    Check: Exactly one primary identity per schema.

    Identities & Profile on the schema · Travel & Airlines
    Screenshot Identities & Profile on the schema · Travel & AirlinesAdd screenshots/aep/travel-05.png
  6. Bookings, trip events and flight status as separate datasets.

    How (any domain): Datasets > Create dataset from schema; Profile toggle; retention.

    Check: Each dataset shows the right schema and Profile status.

    Datasets · Travel & Airlines
    Screenshot Datasets · Travel & AirlinesAdd screenshots/aep/travel-06.png
  7. HTTP API streaming for bookings and ops; daily batch for loyalty.

    How (any domain): Connections > Sources: authenticate, choose target dataset, map fields (Data Prep).

    Check: Mapping preview shows correct values.

    Sources & mapping · Travel & Airlines
    Screenshot Sources & mapping · Travel & AirlinesAdd screenshots/aep/travel-07.png
  8. Segment times stored in UTC; every booking has a loyalty ID or email.

    How (any domain): Run the first dataflow into Dev; Query Service checks counts, nulls, duplicates.

    Check: Source vs. AEP counts within 1–2%.

    Ingest & validate with SQL · Travel & Airlines
    Screenshot Ingest & validate with SQL · Travel & AirlinesAdd screenshots/aep/travel-08.png
  9. Travel agents’ emails shared by many travelers are kept out of stitching.

    How (any domain): Profile viewer and identity graph for 20–30 known people.

    Check: No over-merged or split profiles in the sample.

    Profiles & identity graph · Travel & Airlines
    Screenshot Profiles & identity graph · Travel & AirlinesAdd screenshots/aep/travel-09.png
  10. Consent handled by region (GDPR for EU travelers).

    How (any domain): Data usage labels and policies; promote via sandbox packages; monitoring alerts.

    Check: A deliberately blocked activation is actually blocked.

    Governance, promote & monitor · Travel & Airlines
    Screenshot Governance, promote & monitor · Travel & AirlinesAdd screenshots/aep/travel-10.png

Extra steps for this domain

  1. In Phase 3, add booking, itinerary, and loyalty-tier field groups; include multi-currency and locale fields.
  2. In Phase 5, prioritize low-latency streaming sources for inventory/pricing feeds (fare changes, seat availability).
  3. In Phase 9, build “trip lifecycle” segments (pre-trip, in-trip, post-trip) as the first wave, since timing drives relevance.
  4. In Phase 10, configure time-sensitive activation (e.g., flight-delay trigger) with the tightest achievable latency destination.

Full task list

Every numbered task from your board, grouped by phase. Use it as the project checklist once you know the steps above.

Use Case Definition 6 tasks
Sandbox Setup 4 tasks
XDM Schema Design 5 tasks
Dataset Creation 4 tasks
Source Configuration 4 tasks
Ingestion & Validation 6 tasks
Identity Configuration 5 tasks
Profile Enablement 4 tasks
Segmentation 4 tasks
Activation 5 tasks
AJO & CJA Connection 4 tasks
Monitor & Optimize 3 tasks

QC / validation checklist

Key terms and sources

Each term links to Adobe's documentation.

TermWhat it is
XDM (Experience Data Model)Adobe's standard data model; every schema in AEP is built on it.
Schema compositionHow classes, field groups and data types combine into a schema.
ExperienceEvent classTime-series class for events; requires _id and timestamp.
Data modeling best practicesAdobe guidance on choosing classes, entities and relationships.
Identity fieldsMarking schema fields as identities and primary identity.
Identity graph viewerInspect which identities are linked to one person.
Identity Graph Linking RulesUnique namespaces and namespace priority to stop graph collapse.
DatasetsStorage containers for data that follows one schema.
Source connectorsBatch and streaming connectors that bring data into AEP.
Data PrepMapping and transforming source fields into XDM on ingestion.
Streaming ingestionSending records to AEP in near real time.
Real-Time Customer ProfileThe merged, real-time view of each customer.
Query Service SQLSQL syntax and functions for querying AEP datasets.
Sandbox toolingPackages that move configuration between sandboxes.
AEP glossaryAdobe's official definitions of AEP terms.