sitecore · Capability

Sitecore Customer Data and Personalization

Unified capability combining Sitecore CDP guest data management with Sitecore Personalize decisioning and experimentation. Enables marketing technologists and developers to manage customer profiles, build audience segments, configure personalization flows, and orchestrate decision models from a single interface.

Run with Naftiko SitecoreCustomer Data PlatformPersonalizationGuest DataDecisioningExperiments

What You Can Do

GET
List guests — List guest profiles in Sitecore CDP
/v1/guests
POST
Create guest — Create a new guest profile in CDP
/v1/guests
GET
Get guest — Get a guest profile by reference
/v1/guests/{ref}
PUT
Update guest — Update a guest profile
/v1/guests/{ref}
GET
List guest orders — List orders for a specific guest
/v1/guests/{ref}/orders
GET
List connections — List Personalize connections
/v1/connections
GET
List flows — List personalization flow definitions
/v1/flows
GET
List decision models — List decision models
/v1/decision-models

MCP Tools

cdp-list-guests

List guest profiles in Sitecore CDP

read-only idempotent
cdp-get-guest

Get a specific guest profile by reference

read-only idempotent
cdp-create-guest

Create a new guest profile in Sitecore CDP

cdp-update-guest

Update an existing guest profile in Sitecore CDP

cdp-list-guest-orders

List orders for a specific guest in Sitecore CDP

read-only idempotent
personalize-list-connections

List personalization connections to external systems

read-only idempotent
personalize-list-flows

List Sitecore Personalize flow definitions (experiments and experiences)

read-only idempotent
personalize-list-decision-models

List Sitecore Personalize decision models

read-only idempotent
personalize-create-connection

Create a new external system connection in Sitecore Personalize

APIs Used

cdp-rest personalize-rest

Capability Spec

customer-data-personalization.yaml Raw ↑
naftiko: "1.0.0-alpha1"

info:
  label: "Sitecore Customer Data and Personalization"
  description: >-
    Unified capability combining Sitecore CDP guest data management with Sitecore
    Personalize decisioning and experimentation. Enables marketing technologists and
    developers to manage customer profiles, build audience segments, configure
    personalization flows, and orchestrate decision models from a single interface.
  tags:
    - Sitecore
    - Customer Data Platform
    - Personalization
    - Guest Data
    - Decisioning
    - Experiments
  created: "2026-05-02"
  modified: "2026-05-02"

binds:
  - namespace: env
    keys:
      CDP_CLIENT_KEY: CDP_CLIENT_KEY
      CDP_API_TOKEN: CDP_API_TOKEN
      PERSONALIZE_API_KEY: PERSONALIZE_API_KEY

capability:
  consumes:
    - import: cdp-rest
      location: ./shared/cdp-rest.yaml
    - import: personalize-rest
      location: ./shared/personalize-rest.yaml

  exposes:
    - type: rest
      port: 8081
      namespace: customer-data-personalization-api
      description: "Unified REST API for Sitecore CDP and Personalize."
      resources:
        - path: /v1/guests
          name: guests
          description: "Manage CDP guest profiles"
          operations:
            - method: GET
              name: list-guests
              description: "List guest profiles in Sitecore CDP"
              call: "cdp-rest.list-guests"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: POST
              name: create-guest
              description: "Create a new guest profile in CDP"
              call: "cdp-rest.create-guest"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/guests/{ref}
          name: guest
          description: "Manage a specific guest profile"
          operations:
            - method: GET
              name: get-guest
              description: "Get a guest profile by reference"
              call: "cdp-rest.get-guest"
              with:
                guestRef: "rest.ref"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: PUT
              name: update-guest
              description: "Update a guest profile"
              call: "cdp-rest.update-guest"
              with:
                guestRef: "rest.ref"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/guests/{ref}/orders
          name: guest-orders
          description: "Manage orders for a guest profile"
          operations:
            - method: GET
              name: list-guest-orders
              description: "List orders for a specific guest"
              call: "cdp-rest.list-guest-orders"
              with:
                guestRef: "rest.ref"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/connections
          name: connections
          description: "Manage Personalize external connections"
          operations:
            - method: GET
              name: list-connections
              description: "List Personalize connections"
              call: "personalize-rest.list-connections"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/flows
          name: flows
          description: "Manage Personalize flow definitions"
          operations:
            - method: GET
              name: list-flows
              description: "List personalization flow definitions"
              call: "personalize-rest.list-flow-definitions"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/decision-models
          name: decision-models
          description: "Manage Personalize decision models"
          operations:
            - method: GET
              name: list-decision-models
              description: "List decision models"
              call: "personalize-rest.list-decision-models"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      port: 9091
      namespace: customer-data-personalization-mcp
      transport: http
      description: "MCP server for AI-assisted Sitecore CDP and Personalize management."
      tools:
        - name: cdp-list-guests
          description: "List guest profiles in Sitecore CDP"
          hints:
            readOnly: true
            idempotent: true
          call: "cdp-rest.list-guests"
          outputParameters:
            - type: object
              mapping: "$."

        - name: cdp-get-guest
          description: "Get a specific guest profile by reference"
          hints:
            readOnly: true
            idempotent: true
          call: "cdp-rest.get-guest"
          with:
            guestRef: "tools.guestRef"
          outputParameters:
            - type: object
              mapping: "$."

        - name: cdp-create-guest
          description: "Create a new guest profile in Sitecore CDP"
          call: "cdp-rest.create-guest"
          outputParameters:
            - type: object
              mapping: "$."

        - name: cdp-update-guest
          description: "Update an existing guest profile in Sitecore CDP"
          call: "cdp-rest.update-guest"
          with:
            guestRef: "tools.guestRef"
          outputParameters:
            - type: object
              mapping: "$."

        - name: cdp-list-guest-orders
          description: "List orders for a specific guest in Sitecore CDP"
          hints:
            readOnly: true
            idempotent: true
          call: "cdp-rest.list-guest-orders"
          with:
            guestRef: "tools.guestRef"
          outputParameters:
            - type: object
              mapping: "$."

        - name: personalize-list-connections
          description: "List personalization connections to external systems"
          hints:
            readOnly: true
            idempotent: true
          call: "personalize-rest.list-connections"
          outputParameters:
            - type: object
              mapping: "$."

        - name: personalize-list-flows
          description: "List Sitecore Personalize flow definitions (experiments and experiences)"
          hints:
            readOnly: true
            idempotent: true
          call: "personalize-rest.list-flow-definitions"
          outputParameters:
            - type: object
              mapping: "$."

        - name: personalize-list-decision-models
          description: "List Sitecore Personalize decision models"
          hints:
            readOnly: true
            idempotent: true
          call: "personalize-rest.list-decision-models"
          outputParameters:
            - type: object
              mapping: "$."

        - name: personalize-create-connection
          description: "Create a new external system connection in Sitecore Personalize"
          call: "personalize-rest.create-connection"
          outputParameters:
            - type: object
              mapping: "$."