DestinationsCRMAdobe Experience Platform

Adobe Experience Platform

Ingest customer data into Adobe Experience Platform (AEP) for unified profiles, real-time segmentation, and cross-channel activation. SignalSmith streams records into AEP datasets using the Streaming Ingestion API, formats data according to your XDM schema, and optionally populates the Real-Time Customer Profile.

Prerequisites

  • An Adobe Experience Platform account with an active license
  • An Adobe Developer Console project with Server-to-Server OAuth credentials and the Experience Platform API added
  • An HTTP API streaming connection created in AEP Sources
  • A dataset with an associated XDM schema in the target sandbox

Authentication

Adobe Experience Platform uses OAuth 2.0 Server-to-Server (client credentials) authentication.

  1. Go to the Adobe Developer Console
  2. Create a new project (or use an existing one)
  3. Click Add API and select Experience Platform API
  4. Choose OAuth Server-to-Server as the credential type
  5. Select a product profile that includes AEP data ingestion and schema registry permissions
  6. Copy the Client ID and Client Secret
  7. Note your IMS Organization ID from the project overview (format: ABC123@AdobeOrg)
  8. Enter these values in SignalSmith when creating the destination

Configuration

FieldTypeRequiredDescription
IMS Org IDTextYesYour Adobe IMS Organization ID. Found in the Adobe Admin Console or Developer Console project overview. Format: ABC123@AdobeOrg
Sandbox NameTextYesThe AEP sandbox to operate in. Default: prod. Use dev or a custom sandbox name for non-production environments.
Platform GatewayTextYesThe AEP API gateway URL. Default: https://platform.adobe.io. Typically does not need to be changed.

Target Settings

FieldTypeRequiredDescription
Object TypeSelectYesHow data is delivered: Streaming (real-time via HTTP API inlet) or Batch (file-based upload to dataset).
Connection IDTextYesThe streaming inlet ID from your AEP Sources HTTP API connection. Found in Sources > HTTP API > Connection details.
Dataset IDTextYesThe target dataset ID in AEP. Found in Datasets > Browse > Dataset details.
Schema Reference URLTextYesThe XDM schema ID ($id) for the target dataset. Found in Schemas > Browse > Schema details (e.g., https://ns.adobe.com/{TENANT}/schemas/{SCHEMA_ID}).
Profile EnabledToggleNoWhen enabled, ingested records are merged into the Real-Time Customer Profile. The dataset must be profile-enabled in AEP. Default: off.

Supported Operations

Sync Modes

ModeSupported
UpsertYes
InsertYes
Update
Mirror

Audience Sync Modes

ModeSupported
AddYes
RemoveYes
MirrorYes
UpsertYes

Features

  • Field Mapping: Yes
  • Schema Introspection: Yes — SignalSmith reads field definitions from the AEP Schema Registry to populate available destination fields and validate mappings

Required Mapping Fields

FieldDescription
_idUnique record identifier. Used as the primary identity for deduplication and upsert operations.

Default Destination Fields

_id, timestamp, email, firstName, lastName, phone, city, state, country, postalCode

Additional fields from your XDM schema are automatically discovered via Schema Introspection and available for mapping.

How It Works

  1. SignalSmith reads data from your configured warehouse model
  2. Each record is formatted as XDM-compliant JSON according to the mapped schema fields
  3. Records are sent in batches to the AEP Streaming Ingestion endpoint (the HTTP API inlet) identified by your Connection ID
  4. AEP validates each record against the XDM schema and writes it to the Data Lake
  5. If Profile Enabled is turned on, records are also merged into the Real-Time Customer Profile for immediate segmentation and activation

Streaming vs. Batch

  • Streaming: Records are sent individually or in micro-batches to the HTTP API inlet in near real-time. Best for low-latency use cases where records should appear in Profile within minutes.
  • Batch: Records are assembled into a file and uploaded to the dataset. Best for large historical backfills or high-volume syncs where immediate availability is not required.

Setting Up a Streaming Connection

Before syncing, you must create an HTTP API streaming connection in AEP:

  1. In the AEP UI, navigate to Sources in the left sidebar
  2. Under Streaming, find HTTP API and click Add data
  3. Select New account and provide a name for the connection
  4. Optionally enable XDM compatible if your source data is already XDM-formatted
  5. Click Connect to source to create the connection
  6. Select the target dataset and map source fields to XDM schema fields
  7. Review and click Finish
  8. Copy the Streaming endpoint URL — the Connection ID is the identifier in this URL
  9. Use this Connection ID and the Dataset ID when configuring the destination in SignalSmith

Rate Limits

  • Requests per second: 1,000 HTTP requests per second per streaming connection
  • Messages per second: 10,000 messages (records) per second per streaming connection
  • Payload size: ~1 MB maximum per individual HTTP request
  • SignalSmith handles rate limiting, payload splitting, and automatic retries

Troubleshooting

Authentication failed

Verify your Client ID and Client Secret in the Adobe Developer Console. Ensure the OAuth Server-to-Server credential is active and the product profile includes Experience Platform API permissions. Confirm the IMS Org ID matches the format ABC123@AdobeOrg.

Dataset not found

Check that the Dataset ID is correct and exists in the specified sandbox. Navigate to Datasets > Browse in AEP and verify the dataset is active. Ensure the sandbox name in SignalSmith matches the sandbox where the dataset was created.

XDM validation errors

Records that do not conform to the dataset’s XDM schema are rejected. Common causes include:

  • Missing required schema fields (especially _id)
  • Incorrect data types (e.g., sending a string where the schema expects an integer)
  • Unrecognized field names not defined in the schema

Review the sync run details in SignalSmith for per-record error messages. Cross-reference field names and types with your schema definition in Schemas > Browse.

Records not appearing in Profile

  • Verify the dataset is Profile-enabled in AEP (Datasets > Browse > Dataset details > Profile toggle)
  • Confirm the Profile Enabled toggle is turned on in the SignalSmith target settings
  • Ensure the schema includes at least one identity field marked as a primary identity (e.g., email or CRM ID)
  • Check the AEP Monitoring > Streaming dashboard for ingestion errors or delays
  • Profile ingestion may take a few minutes after records are written to the Data Lake

Streaming connection not accepting data

Ensure the HTTP API connection in AEP Sources is active and has not been disabled. Verify the Connection ID matches the inlet ID from the streaming endpoint URL. If the connection was recently created, allow a few minutes for it to become available.