Adobe Implementation Playbook

Skills

Skill used throughout the build

JSON for Adobe — Client Files, XDM Payloads & APIs

clients hand over JSON files, XDM schemas are defined in JSON Schema, Web SDK events are JSON payloads, and every AEP API speaks JSON. Reading and checking JSON quickly is a daily skill on Adobe projects.

0 of 0 done

Modules

Module 1

JSON syntax

Concept
Objects { } hold key–value pairs; arrays [ ] hold lists. Values: string, number, true/false, null, object, array. Keys use double quotes.
Where it's used
Reading the sample file the client provides.
{
  "crmId": "CRM98765",
  "firstName": "Mario",
  "isMember": true,
  "orders": [101, 102]
}

Practice: Write a JSON object for yourself with 5 fields including one array.

Your JSON object in an editor
Screenshot Your JSON object in an editorAdd screenshots/json/module-01.png
Module 2

Validate a client file

Concept
Common errors: trailing commas, single quotes, unquoted keys, mixed types for the same field, inconsistent date formats.
Where it's used
Step 1 of any AEP build: “Is the JSON in a good structure?”
Bad:  {'crmId': "CRM1", "age": "41",}
Good: {"crmId": "CRM1", "age": 41}

Practice: Paste the client sample into a JSON validator (e.g. VS Code) and fix every error.

Validator showing the file is valid
Screenshot Validator showing the file is validAdd screenshots/json/module-02.png
Module 3

Nested objects & paths

Concept
Objects can nest. A path like customer.address.city or items[0].sku points to one value.
Where it's used
Mapping deep source fields to XDM fields during source setup.
{
  "customer": {
    "address": { "city": "Phoenix" }
  },
  "items": [ { "sku": "A1" } ]
}
→ customer.address.city, items[0].sku

Practice: Write the path to every leaf value in the example.

Your path list
Screenshot Your path listAdd screenshots/json/module-03.png
Module 4

Map client JSON to XDM

Concept
Each client field gets a home in the schema: standard field groups first, custom fields under _tenantId.
Where it's used
The mapping step in AEP Sources (source → target).
"crmId"        → _tenantId.crmId
"firstName"    → person.name.firstName
"lastName"     → person.name.lastName
"primaryEmail" → personalEmail.address

Practice: Build a mapping table for the full client sample file.

Your mapping table / AEP mapping screen
Screenshot Your mapping table / AEP mapping screenAdd screenshots/json/module-04.png
Module 5

XDM ExperienceEvent payload

Concept
Events need _id, timestamp and eventType; identityMap holds identities by namespace.
Where it's used
What the Web SDK sends to the Edge Network for each event.
{
  "_id": "evt-001",
  "timestamp": "2026-10-21T10:00:00Z",
  "eventType": "commerce.productViews",
  "identityMap": {
    "ECID": [{"id": "123…", "primary": true}]
  }
}

Practice: Write an event payload for “add to cart” with a product SKU.

Your payload validated against the schema
Screenshot Your payload validated against the schemaAdd screenshots/json/module-05.png
Module 6

JSON Schema basics

Concept
A JSON Schema describes allowed fields: type, properties, required. XDM schemas are JSON Schemas.
Where it's used
Reading a schema export or Schema Registry API response.
{
  "type": "object",
  "properties": {
    "crmId": { "type": "string" },
    "age":   { "type": "integer" }
  },
  "required": ["crmId"]
}

Practice: Write a schema for the client sample with crmId required.

Your schema file
Screenshot Your schema fileAdd screenshots/json/module-06.png
Module 7

JSON in AEP APIs

Concept
API calls send/receive JSON with headers: Authorization (Bearer token), x-api-key, x-gw-ims-org-id, x-sandbox-name.
Where it's used
Automating schema/dataset work via Postman and Adobe Developer Console.
GET /data/foundation/schemaregistry/tenant/schemas
Headers:
  Authorization: Bearer {token}
  x-api-key: {client_id}
  x-gw-ims-org-id: {org_id}
  x-sandbox-name: dev
  Accept: application/vnd.adobe.xed-id+json

Practice: List your sandbox’s schemas through the API in Postman.

Postman response listing schemas
Screenshot Postman response listing schemasAdd screenshots/json/module-07.png
Module 8

Tools for working with JSON

Concept
Format, validate and query JSON with VS Code, browser dev tools and jq.
Where it's used
Quick checks on large exports and API responses.
jq '.[] | {crmId, primaryEmail}' customers.json
jq 'map(select(.primaryEmail == null)) | length' customers.json

Practice: Use jq to count records with no email in the sample file.

Terminal output from jq
Screenshot Terminal output from jqAdd screenshots/json/module-08.png

Must know

  • JSON is objects ({}), arrays ([]), strings, numbers, booleans and null; keys must be double-quoted.
  • XDM schemas are defined in JSON Schema, and Web SDK events are JSON payloads.
  • Validate client files before modelling: same keys, consistent types, ISO date formats.
  • Know how to read a path (e.g. commerce.order.priceTotal) because mapping, SQL and Tags all use paths.
  • Never put real personal data in sample payloads you share.

Interview questions

From your board. Answer out loud before you reveal.

What’s the difference between an object and an array in JSON?

An object is a set of named key–value pairs; an array is an ordered list of values. A customer is an object; their orders are an array.

What would you check first in a client’s JSON file?

That it’s valid JSON, field names and types are consistent across records, dates share one format, and every record has the identity field.

How does client JSON relate to an XDM schema?

Each client field is mapped to an XDM field — standard field groups first, custom fields under _tenantId — during source mapping.

What fields does an ExperienceEvent need?

_id, timestamp and eventType, plus identity information (identityMap or an identity field) to attach it to a profile.

What is JSON Schema?

A JSON document that describes valid JSON: types, properties, required fields. XDM is built on it.

Which headers do AEP API calls need?

Authorization (Bearer token), x-api-key, x-gw-ims-org-id, and usually x-sandbox-name.

Key terms and sources

TermWhat it is
XDM system overviewHow XDM schemas are defined.
XDM field dictionaryStandard XDM fields.
Schema Registry APIManaging schemas with JSON over the API.
Streaming ingestion APISending JSON records to AEP.