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:
- Store a unique document for each new user.
- Store user traits for what personas a user opted into, site visits, url parameters, and country code.
- Persist user traits instead of storing temporarily in local browser storage.
- Update the Datastore layer every time local storage is updated by the personalization framework.
- Extend on user traits for customisation.
- 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.
Type | Blueprint |
---|---|
For | Data Services (Datastore) |
Documentation |