Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Dynamic content ( top brands/categories/blogs, etc) as part of your API integration/layout

    Image RemovedImage Added

  2. Mixed API response for search/listing (ex: blogs, promotions, campaigns alongside products)

    Image RemovedImage Added

  3. Dynamic pages for your project content (ex: blog pages driven by the personalization/AI engine)

    Image RemovedImage Added

  4. More personalized content to keep your customer`s engaged (as part of our omnichannel approach)

    Image RemovedImage Added

  5. Relevant statistics for each of your content reach (performance impact)

  6. A/B testing as to identify what content your customers have a higher response towards

...

Expand
titleGraphCMS Connector Properties
Code Block
"connector": {
  "type": "graphql",
  "options": {
      "fields": "",
      "type": "",
      "method": "POST",
      "token": "",
      "endpoint": "",
      "filters": "",
      "locales": []
  }
}

The fields and filters must be escaped (copy-paste the graphiQL section into an escape/unescape online tool)
Review this sample from Boxalino`s public GraphCMS repository:

Code Block
{
  "connector": {
    "type": "graphql",
    "options": {
      "endpoint": "https://api-eu-central-1.graphcms.com/v2/ckll4a83ni7og01yzfr3k9yc4/master",
      "token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImdjbXMtbWFpbi1wcm9kdWN0aW9uIn0.eyJ2ZXJzaW9uIjozLCJpYXQiOjE2MjI1NjIzMzMsImF1ZCI6WyJodHRwczovL2FwaS1ldS1jZW50cmFsLTEuZ3JhcGhjbXMuY29tL3YyL2NrbGw0YTgzbmk3b2cwMXl6ZnIzazl5YzQvbWFzdGVyIiwiaHR0cHM6Ly9tYW5hZ2VtZW50LW5leHQuZ3JhcGhjbXMuY29tIl0sImlzcyI6Imh0dHBzOi8vbWFuYWdlbWVudC5ncmFwaGNtcy5jb20vIiwic3ViIjoiZjZlMTcyNGYtOTI2NS00OTFjLWEwMzktYzFkNGI2ZDExZDA5IiwianRpIjoiY2twZTdweDVoZGR2bzAxejU1NjNwZjc1cCJ9.MjYP8I7OvwyOkiHiB22LPwOfRzEt_ilvp6jHTVufkQEs6UTxJeuOEDvcojbMAgiEa3lStbc3mOVDezOQhMoLdD-UYoSzGyKmzIBI76vsVv5xbkhKwnLBnmX2ssRHMfOgIuyEpG16SwNiyKuBOZdhC39dapEWwSn2bzWqSi4Y-LvIdsANlHfgdwzVzkJNfNAO-2oOMQC4h-QfBlUVoSEQPYLPmGDOUpcawnHXc60Lyg9rCdxooG9YVzXUeqoi4SIc8feHH4My4s_Eb9mprP6sewezTIb4ldPCVwAlh2xl5BrWYDLLNbhgVMmUVaNZjXSS40egT4xxIWiNPw4axCAKZbgsk78lgHo51t0hz8j6qIfn9G_ZNzMagKQRupx4guuMQXiXg30WjSE09HBv6QjDLQRz9A89eRAKCiGVddKGAvXy_cZrAi2OZ_gtsX993wR-kt6AtNZ7s2U5IZPribvLbiNBMtwh1kRfz_t_bUFLCJs7J332odSDkxL38LqR7oRNStZv6EqAXmelWYqBsUvnwZWI3DYqjysYfjb4JALSTwOa4zfDHDkzlaKOiIZwZkI0GroSed_fmL6cfkpmN63CRY3qNQfwG7cXT0mOuOTJSzRBw1QigfCVnM_M2881eBaBdpdwXw3zF7FlxJL1Y0uMSQ0RZ2l3WC81xH7KqUUlUPw",
      "type": "blogs",
      "fields": "{\r\n    title\r\n    __typename\r\n    locale\r\n    createdAt\r\n    active\r\n    id\r\n    metaDescription\r\n    metaTitle\r\n    publishedAt\r\n    seoLink\r\n    updatedAt\r\n    content {\r\n      html\r\n      text\r\n    }\r\n    headerImage {\r\n      url\r\n      id\r\n    }\r\n    stage\r\n    background {\r\n      css\r\n      hex\r\n    }\r\n    brands {\r\n      id\r\n      name\r\n    }\r\n    createdBy {\r\n      id\r\n      name\r\n    }\r\n    history {\r\n      createdAt\r\n    }\r\n    publishedBy {\r\n      id\r\n      name\r\n    }\r\n    updatedBy {\r\n      id\r\n      name\r\n    }\r\n  }",
      "locales": [
        "de_CH",
        "fr_CH"
      ],
      "filters": "active: true"
    }
  }
}

The filters are optional.
We recommend to sync fully the existing content type and use the API request to set filters.

For example, in case of localization, if your content (ex: blog) is not active in one of the languages and you set a filter for this - the default language values will be set.

Info

The options vary based on the connector type.

The connector required options should be properly described in your 3rd party system documentation (it`s a generic remote access)

...

Code Block
curl https://boxalino-di-transformer-krceabfwya-ew.a.run.app/sample \
-X POST \
-d "[{\"connector\":{\"type\":\"prismic\",\"options\":{\"url\":\"https:\/\/rtux-integration.cdn.prismic.io\/api\/v2\/\",\"access_token\":\"MC5ZSkU4SnhBQUFDSUFXSXZR.77-9QO-_vWR577-977-9HO-_ve-_ve-_vXPvv73vv71LeO-_vUNi77-9Ii3vv73vv73vv71sC2Xvv71A77-9IA\",\"query\":[\"[at(document.type, \\\"category\\\")]\"]}},\"document\":{\"type\":\"content\"},\"mapping\":{\"id\":\"id\",\"type\":\"type\",\"creation\":\"first_publication_date\",\"last_update\":\"last_publication_date\",\"persona_type\":\"\",\"persona_id\":\"\",\"title\":\"data.name\",\"short_description\":\"\",\"description\":\"data.description\",\"images\":\"data.header_image.url\",\"link\":\"uid\",\"tags\":{\"default\":\"tags\"},\"parent_content_ids\":\"data.parent_category.id\",\"contents\":[],\"products\":[],\"customers\":[],\"stores\":\"\",\"status\":\"data.status\",\"string_attributes\":{\"default_tags\":\"tags\",\"version\":\"version\"},\"localized_string_attributes\":{\"category_title\":\"data.category_title\",\"slugs\":\"slugs\",\"linked_language_id\":\"alternate_languages[*].id\"},\"numeric_attributes\":{\"position\":\"data.position\",\"show_in_navigation\":\"data.show_in_navigation\"},\"localized_numeric_attributes\":{},\"datetime_attributes\":{},\"localized_datetime_attributes\":{}},\"languages\":{\"de\":\"en-de\",\"fr\":\"fr-ch\"}},{\"connector\":{\"type\":\"prismic\",\"options\":{\"url\":\"https:\/\/rtux-integration.cdn.prismic.io\/api\/v2\/\",\"access_token\":\"MC5ZSkU4SnhBQUFDSUFXSXZR.77-9QO-_vWR577-977-9HO-_ve-_ve-_vXPvv73vv71LeO-_vUNi77-9Ii3vv73vv73vv71sC2Xvv71A77-9IA\",\"query\":[\"[at(document.type, \\\"blog\\\")]\"]}},\"document\":{\"type\":\"content\"},\"mapping\":{\"id\":\"id\",\"type\":\"type\",\"creation\":\"first_publication_date\",\"last_update\":\"last_publication_date\",\"persona_type\":\"\",\"persona_id\":\"\",\"title\":\"data.title\",\"short_description\":\"\",\"description\":\"data.content\",\"images\":\"data.header_image.url\",\"link\":\"uid\",\"tags\":{\"default\":\"tags\",\"category\":\"data.category.tags\"},\"parent_content_ids\":\"data.category.id\",\"contents\":[],\"products\":[],\"customers\":[],\"stores\":\"\",\"status\":\"data.status\",\"string_attributes\":{\"tags\":\"tags\",\"category_uid\":\"data.category.uid\"},\"localized_string_attributes\":{\"slugs\":\"slugs\",\"alternate_languages\":\"alternate_languages[*].id\",\"meta_title\":\"data.meta_title\",\"content\":\"data.content\"},\"numeric_attributes\":{\"position\":\"data.position\"},\"localized_numeric_attributes\":{\"product_ids\":\"data.product_ids[*].id\"},\"datetime_attributes\":{},\"localized_datetime_attributes\":{}},\"languages\":{\"de\":\"en-de\",\"fr\":\"fr-ch\"}},{\"connector\":{\"type\":\"graphql\",\"options\":{\"endpoint\":\"https:\/\/api-eu-central-1.graphcms.com\/v2\/ckll4a83ni7og01yzfr3k9yc4\/master\",\"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImdjbXMtbWFpbi1wcm9kdWN0aW9uIn0.eyJ2ZXJzaW9uIjozLCJpYXQiOjE2MjI1NjIzMzMsImF1ZCI6WyJodHRwczovL2FwaS1ldS1jZW50cmFsLTEuZ3JhcGhjbXMuY29tL3YyL2NrbGw0YTgzbmk3b2cwMXl6ZnIzazl5YzQvbWFzdGVyIiwiaHR0cHM6Ly9tYW5hZ2VtZW50LW5leHQuZ3JhcGhjbXMuY29tIl0sImlzcyI6Imh0dHBzOi8vbWFuYWdlbWVudC5ncmFwaGNtcy5jb20vIiwic3ViIjoiZjZlMTcyNGYtOTI2NS00OTFjLWEwMzktYzFkNGI2ZDExZDA5IiwianRpIjoiY2twZTdweDVoZGR2bzAxejU1NjNwZjc1cCJ9.MjYP8I7OvwyOkiHiB22LPwOfRzEt_ilvp6jHTVufkQEs6UTxJeuOEDvcojbMAgiEa3lStbc3mOVDezOQhMoLdD-UYoSzGyKmzIBI76vsVv5xbkhKwnLBnmX2ssRHMfOgIuyEpG16SwNiyKuBOZdhC39dapEWwSn2bzWqSi4Y-LvIdsANlHfgdwzVzkJNfNAO-2oOMQC4h-QfBlUVoSEQPYLPmGDOUpcawnHXc60Lyg9rCdxooG9YVzXUeqoi4SIc8feHH4My4s_Eb9mprP6sewezTIb4ldPCVwAlh2xl5BrWYDLLNbhgVMmUVaNZjXSS40egT4xxIWiNPw4axCAKZbgsk78lgHo51t0hz8j6qIfn9G_ZNzMagKQRupx4guuMQXiXg30WjSE09HBv6QjDLQRz9A89eRAKCiGVddKGAvXy_cZrAi2OZ_gtsX993wR-kt6AtNZ7s2U5IZPribvLbiNBMtwh1kRfz_t_bUFLCJs7J332odSDkxL38LqR7oRNStZv6EqAXmelWYqBsUvnwZWI3DYqjysYfjb4JALSTwOa4zfDHDkzlaKOiIZwZkI0GroSed_fmL6cfkpmN63CRY3qNQfwG7cXT0mOuOTJSzRBw1QigfCVnM_M2881eBaBdpdwXw3zF7FlxJL1Y0uMSQ0RZ2l3WC81xH7KqUUlUPw\",\"type\":\"blogs\",\"filters\":\"active:true\",\"fields\":\"{ title __typename locale createdAt active id metaDescription metaTitle publishedAt seoLink updatedAt content {  html text } headerImage { url id } stage background { css hex } brands { id name } createdBy { id name } history { createdAt } publishedBy { id name } updatedBy { id name } }\",\"locales\":[\"de_CH\",\"fr_CH\"]}},\"document\":{\"type\":\"content\"},\"mapping\":{\"id\":\"id\",\"type\":\"__typename\",\"creation\":\"createdAt\",\"last_update\":\"updatedAt\",\"persona_type\":\"createdBy.name\",\"persona_id\":\"createdBy.id\",\"title\":\"title\",\"short_description\":\"\",\"description\":\"content.text\",\"images\":\"headerImage.url\",\"link\":\"seoLink\",\"tags\":{\"brands\":\"brands[*].name\"},\"parent_content_ids\":\"\",\"contents\":[],\"products\":[],\"customers\":[],\"stores\":\"\",\"status\":\"state\",\"string_attributes\":{\"background\":\"background.hex\",\"background_css\":\"background.css\",\"brand_ids\":\"brands[*].id\"},\"localized_string_attributes\":{\"meta_title\":\"metaTitle\",\"meta_description\":\"metaDescription\",\"content\":\"content.html\",\"slugs\":\"seoLink\"},\"numeric_attributes\":{},\"localized_numeric_attributes\":{\"display\":\"active\"},\"datetime_attributes\":{\"published_at\":\"publishedAt\"},\"localized_datetime_attributes\":{}},\"languages\":{\"de\":\"de_CH\",\"fr\":\"fr_CH\"}}]" \
-H "Content-Type: application/json" \
-H "mode: F" \
-H "type: content"

...

Expand
titleJSON body content for the SAMPLE request
Code Block
languagejson
[
  {
    "connector": {
      "type": "prismic",
      "options": {
        "url": "https://rtux-integration.cdn.prismic.io/api/v2/",
        "access_token": "MC5ZSkU4SnhBQUFDSUFXSXZR.77-9QO-_vWR577-977-9HO-_ve-_ve-_vXPvv73vv71LeO-_vUNi77-9Ii3vv73vv73vv71sC2Xvv71A77-9IA",
        "query": [
          "[at(document.type, \"category\")]"
        ]
      }
    },
    "document": {
      "type": "content"
    },
    "mapping": {
      "id": "id",
      "type": "type",
      "creation": "first_publication_date",
      "last_update": "last_publication_date",
      "persona_type": "",
      "persona_id": "",
      "title": "data.name",
      "short_description": "",
      "description": "data.description",
      "images": "data.header_image.url",
      "link": "uid",
      "tags": {
        "default": "tags"
      },
      "parent_content_ids": "data.parent_category.id",
      "contents": [],
      "products": [],
      "customers": [],
      "stores": "",
      "status": "data.status",
      "string_attributes": {
        "default_tags": "tags",
        "version": "version"
      },
      "localized_string_attributes": {
        "category_title": "data.category_title",
        "slugs": "slugs",
        "linked_language_id": "alternate_languages[*].id"
      },
      "numeric_attributes": {
        "position": "data.position",
        "show_in_navigation": "data.show_in_navigation"
      },
      "localized_numeric_attributes": {},
      "datetime_attributes": {},
      "localized_datetime_attributes": {}
    },
    "languages": {
      "de": "en-de",
      "fr": "fr-ch"
    }
  },
  {
    "connector": {
      "type": "prismic",
      "options": {
        "url": "https://rtux-integration.cdn.prismic.io/api/v2/",
        "access_token": "MC5ZSkU4SnhBQUFDSUFXSXZR.77-9QO-_vWR577-977-9HO-_ve-_ve-_vXPvv73vv71LeO-_vUNi77-9Ii3vv73vv73vv71sC2Xvv71A77-9IA",
        "query": [
          "[at(document.type, \"blog\")]"
        ]
      }
    },
    "document": {
      "type": "content"
    },
    "mapping": {
      "id": "id",
      "type": "type",
      "creation": "first_publication_date",
      "last_update": "last_publication_date",
      "persona_type": "",
      "persona_id": "",
      "title": "data.title",
      "short_description": "",
      "description": "data.content",
      "images": "data.header_image.url",
      "link": "uid",
      "tags": {
        "default": "tags",
        "category": "data.category.tags"
      },
      "parent_content_ids": "data.category.id",
      "contents": [],
      "products": [],
      "customers": [],
      "stores": "",
      "status": "data.status",
      "string_attributes": {
        "tags": "tags",
        "category_uid": "data.category.uid"
      },
      "localized_string_attributes": {
        "slugs": "slugs",
        "alternate_languages": "alternate_languages[*].id",
        "meta_title": "data.meta_title",
        "content": "data.content"
      },
      "numeric_attributes": {
        "position": "data.position"
      },
      "localized_numeric_attributes": {
        "product_ids": "data.product_ids[*].id"
      },
      "datetime_attributes": {},
      "localized_datetime_attributes": {}
    },
    "languages": {
      "de": "en-de",
      "fr": "fr-ch"
    }
  },
  {
    "connector": {
      "type": "graphql",
      "options": {
        "endpoint": "https://api-eu-central-1.graphcms.com/v2/ckll4a83ni7og01yzfr3k9yc4/master",
        "token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImdjbXMtbWFpbi1wcm9kdWN0aW9uIn0.eyJ2ZXJzaW9uIjozLCJpYXQiOjE2MjI1NjIzMzMsImF1ZCI6WyJodHRwczovL2FwaS1ldS1jZW50cmFsLTEuZ3JhcGhjbXMuY29tL3YyL2NrbGw0YTgzbmk3b2cwMXl6ZnIzazl5YzQvbWFzdGVyIiwiaHR0cHM6Ly9tYW5hZ2VtZW50LW5leHQuZ3JhcGhjbXMuY29tIl0sImlzcyI6Imh0dHBzOi8vbWFuYWdlbWVudC5ncmFwaGNtcy5jb20vIiwic3ViIjoiZjZlMTcyNGYtOTI2NS00OTFjLWEwMzktYzFkNGI2ZDExZDA5IiwianRpIjoiY2twZTdweDVoZGR2bzAxejU1NjNwZjc1cCJ9.MjYP8I7OvwyOkiHiB22LPwOfRzEt_ilvp6jHTVufkQEs6UTxJeuOEDvcojbMAgiEa3lStbc3mOVDezOQhMoLdD-UYoSzGyKmzIBI76vsVv5xbkhKwnLBnmX2ssRHMfOgIuyEpG16SwNiyKuBOZdhC39dapEWwSn2bzWqSi4Y-LvIdsANlHfgdwzVzkJNfNAO-2oOMQC4h-QfBlUVoSEQPYLPmGDOUpcawnHXc60Lyg9rCdxooG9YVzXUeqoi4SIc8feHH4My4s_Eb9mprP6sewezTIb4ldPCVwAlh2xl5BrWYDLLNbhgVMmUVaNZjXSS40egT4xxIWiNPw4axCAKZbgsk78lgHo51t0hz8j6qIfn9G_ZNzMagKQRupx4guuMQXiXg30WjSE09HBv6QjDLQRz9A89eRAKCiGVddKGAvXy_cZrAi2OZ_gtsX993wR-kt6AtNZ7s2U5IZPribvLbiNBMtwh1kRfz_t_bUFLCJs7J332odSDkxL38LqR7oRNStZv6EqAXmelWYqBsUvnwZWI3DYqjysYfjb4JALSTwOa4zfDHDkzlaKOiIZwZkI0GroSed_fmL6cfkpmN63CRY3qNQfwG7cXT0mOuOTJSzRBw1QigfCVnM_M2881eBaBdpdwXw3zF7FlxJL1Y0uMSQ0RZ2l3WC81xH7KqUUlUPw",
        "type": "blogs",
        "filters": "active:true",
        "fields": "{\r\n    title\r\n    __typename\r\n    locale\r\n    createdAt\r\n    active\r\n    id\r\n    metaDescription\r\n    metaTitle\r\n    publishedAt\r\n    seoLink\r\n    updatedAt\r\n    content {\r\n      html\r\n      text\r\n    }\r\n    headerImage {\r\n      url\r\n      id\r\n    }\r\n    stage\r\n    background {\r\n      css\r\n      hex\r\n    }\r\n    brands {\r\n      id\r\n      name\r\n    }\r\n    createdBy {\r\n      id\r\n      name\r\n    }\r\n    history {\r\n      createdAt\r\n    }\r\n    publishedBy {\r\n      id\r\n      name\r\n    }\r\n    updatedBy {\r\n      id\r\n      name\r\n    }\r\n  }",
        "locales": [
          "de_CH",
          "fr_CH"
        ]
      }
    },
    "document": {
      "type": "content"
    },
    "mapping": {
      "id": "id",
      "type": "__typename",
      "creation": "createdAt",
      "last_update": "updatedAt",
      "persona_type": "createdBy.name",
      "persona_id": "createdBy.id",
      "title": "title",
      "short_description": "",
      "description": "content.text",
      "images": "headerImage.url",
      "link": "seoLink",
      "tags": {
        "brands": "brands[*].name"
      },
      "parent_content_ids": "",
      "contents": [],
      "products": [],
      "customers": [],
      "stores": "",
      "status": "stateactive",
      "string_attributes": {
        "background": "background.hex",
        "background_css": "background.css",
        "brand_ids": "brands[*].id"
      },
      "localized_string_attributes": {
        "meta_title": "metaTitle",
        "meta_description": "metaDescription",
        "content": "content.html",
        "slugs": "seoLink"
      },
      "numeric_attributes": {},
      "localized_numeric_attributes": {
        "display":"active"
      },
      "datetime_attributes": {
        "published_at": "publishedAt"
       },
      "localized_datetime_attributes": {}
    },
    "languages": {
      "de": "de_CH",
      "fr": "fr_CH"
    }
  }
]

...