Digital Experience Platform Squiz Marketplace

Supercharge your Squiz DXP with components, templates, extensions, and more.

Matrix Personalization

Quickly build a data service for the Personalization Framework

Blueprints are a unique feature of Squiz Datastore (Datastore) and provide industry standard templates that enable rapid delivery of digital experiences on Squiz Matrix.

Frontend developers upload blueprints to the Squiz Experience Cloud to quickly build and manage API data services for website user interfaces.

Marketplace blueprints speed up the development process even further by providing onboarding examples and starting points for common use cases.

Use case

    In conjunction with the Squiz Matrix personalisation framework, apply granular personalisation to your page and customise how users that visit your site see content. Use this Datastore blueprint to automatically generate a data service that will enable the frontend to:

    1. Store a unique document for each new user.
    2. Store user traits for what personas a user opted into, site visits, url parameters, and country code.
    3. Persist user traits instead of storing temporarily in local browser storage.
    4. Update the Datastore layer every time local storage is updated by the personalization framework.
    5. Extend on user traits for customisation.
    6. Retrieve user traits for known user IDs.

    How to use

    1. Install and configure the personalisation framework

    Follow the user documentation to install the Squiz Matrix personalization framework.

    2. Learn how to use Datastore

    Complete the Datastore event app tutorial to set up local development, understand core concepts, and if you need any support then please visit the Squiz Datastore Forums.

    3. Simulate and test the personalisation blueprint

    Assuming you are ready to use Datastore, then work through the following commands:

    Download the blueprint:

    curl -O https://marketplace.squiz.net/__data/assets/file/0023/36554/personalization-framework.tgz

    Unzip the the blueprint package:

    tar -xvf personalization-framework.tgz

    Step into the blueprint directory:

    cd personalization-framework

    Add the blueprint to your simulator, here is an example of what you might see:

    dxp datastore simulator add --blueprint api.yaml
    ✔ Done! Use these details for local querying:
        URL: http://ip.address:port/eK46TPXY
        JWT URL: http://ip.address:port/__JWT/issueToken

    Test with a simple curl command but replace the details highlighted in orange with details from the previous step. If successful, the same data will print to the terminal.

    curl \
      http://ip.address:port/eK46TPXY/users \
      -H "Content-Type: application/json" \
      -X POST \
      --data '{"optedPersona":["persona1","persona2"],"siteVisits":1,"urlParam":"campaign-a","country":"US"}'

    3. Add your blueprint to the Squiz Experience Cloud

    Assuming you have a login to the Squiz Experience Cloud and have activated a Datastore subscription, then login to the command line using your Squiz Experience Cloud email address, you will be prompted for your password:

    dxp login --email emailaddress

    Add your blueprint to production and give it a meaningful name:

    dxp datastore blueprint add \
      --path api.yaml \
      --name "My Personalisation Blueprint" 

    List the details for your production blueprints:

    dxp datastore blueprint list

    Update an existing blueprint:

    dxp datastore blueprint update \
      --path boilerplate/api.yaml \
      --name "My Personalisation Blueprint" 

    Rename an existing blueprint:

    dxp datastore blueprint rename \
        --old-name "My Personalisation Blueprint" \
        --new-name "My Awesome Website App

    5. Add Datastore to the personalisation framework

    Go ahead and configure your Datastore details for permanent storage.

    6. Using JavaScript to add, retrieve, and delete user traits

    Please follow the user documentation to customise your JavaScript.

    7. Extend the fields captured

    Extending the fields captured in the schema can be done by adding another property to the properties object in ./schemas/submission.json , for example:

    "properties": {
        "newProperty": {
            "title": "New Property",
            "description": "Some new property",
            "type": "boolean",
            "example": false

    Allowed JSON Schema property types:

    • String (including format date, time and datetime)
    • Number
    • Integer
    • Boolean
    • Array (of type, mixed typed arrays are not allowed)
    • null

    The schema can also be extended to have required fields added. This is done by adding the required key to the JSON schema file, "required": ["message"] this takes an array of property names from the properties object in the file.

    For  Data Services (Datastore)