We are currently developing an improved version of the Catalog Intersection Endpoint. Expect changes, an awesome developer experience and new ranking of items.

In the quickstart you learned how to create a user’s Digital Self and query it to understand the user’s preferences. In this tutorial, you will see how the Digital Self is the core building block for creating hyper-personalized user experiences.

This tutorial assumes that you have already gone through the quickstart.

Upload a new catalog

The developer dashboard includes a simple UI to upload a catalog. The catalog can be a collection of products, events, or even people. The Catalog Intersection Endpoint enables you to find the subset of items in the catalog that are most relevant to each user, based on their Digital Self.

For your convenience, we provide a test catalog that you can upload via the customer dashboard. Create a json file and paste the test catalog into it. You can then upload the catalog by clicking on “Upload Catalog”:

Assign a catalog key to the catalog such as catalogExample and make sure to upload the json file containing the test catalog. Finally, specify which features of the catalog you want to consider. For the test catalog, we will use the following:

{
  "id_column": {
    "type": "string",
    "name": "id"
  },
  "feature_columns": [
    {
      "type": "string",
      "name": "name"
    },
    {
      "type": "string",
      "name": "description"
    }
  ]
}

Copy and paste the schema above into the Catalog JSON Schema section of the popup on the developer dashboard. The id_column and feature_columns fields should not be modified. The object related to id_column specifies which field in the test catalog should be considered as an identifier of each item (id in this case). The objects related to feature_columns specifies which fields of the test catalog should be considered as features used to rank the items according to the user’s Digital Self (name and description in this case).

When uploading your own catalog, you do not need to include all its fields as features. Only those that will be relevant to rank the items according to the user’s preferences.

So far we only support features of type string but in the near feature we will support images, videos, and generic URLs.

Once you are ready, click Upload and the catalog will start getting processed.

You can also upload the catalog programmatically via the Upload Catalog API. You will need to provide an API key such as the one you created in the quickstart.

Rank items

Once the catalog has been processed, you can rank items according to the preferences of each of your users. To do so, go to the users section of the developer dashboard where you can see the user you onboarded during the quickstart. Click on Go to user to select the user you want item rankings for:

On the user page, click on the Catalog Intersection tab, then select the catalog you just uploaded, and provide some context on the kind of items you would like to rank from the catalog (for example shoes). Click on Intersect to display the items that best match the user preferences.

The image above shows the item that has been ranked the highest among all the ones in the catalog based on the user’s unique preferences. We also provide an explanation of why the item has been chosen.

The catalog that we uploaded is a simple catalog with few items and limited information. Therefore, the ranking might seem not extremely relevant to the user. Things improve dramatically with more data!

You can also perform the catalog intersection programmatically via the Intersect Catalog API.