{"id":46,"date":"2019-08-01T23:07:05","date_gmt":"2019-08-01T23:07:05","guid":{"rendered":"http:\/\/naveedulhaq.com\/?p=46"},"modified":"2023-02-21T22:43:09","modified_gmt":"2023-02-21T22:43:09","slug":"episerver-personalisation-criteria-based-on-uk-postcodes","status":"publish","type":"post","link":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/episerver-personalisation-criteria-based-on-uk-postcodes\/","title":{"rendered":"Episerver Personalisation Criteria based on UK postcodes"},"content":{"rendered":"\n<p>Recently I come across the requirement to do personalization based on UK postcodes. The format of UK postal codes is very well structured. It consists of two alphanumeric codes called \u201cOutward code\u201d and \u201cInward code\u201d.<\/p>\n\n\n\n<p>Outward code consists of 2 to four-letter defining area and district whereas Inward code consists of three letters defining sector and unit. <\/p>\n\n\n\n<figure class=\"wp-block-gallery aligncenter has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"323\" height=\"173\" data-id=\"47\" src=\"https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2019\/08\/personalization-uk-postcode.gif\" loading=\"lazy\" alt=\"Episerver personalization uk postcode\" class=\"wp-image-47\"\/><\/figure>\n<\/figure>\n\n\n\n<p>Now for complete flexibility in this personalization criteria, I have taken two input field with the option to add wildcard char \u201c*\u201d<\/p>\n\n\n\n<p> The parameters are <\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>OutwardCode<\/li>\n\n\n\n<li>InwardCode<\/li>\n\n\n\n<li><\/li>\n<\/ol>\n\n\n\n<p>The combination of these parameters gives us options to do personalization as described in the following table<\/p>\n\n\n\n<figure class=\"wp-block-table aligncenter is-style-regular\"><table><tbody><tr><td><strong>Outward Code<\/strong><\/td><td><strong>Inward Code<\/strong><\/td><td> <strong>Behavior <\/strong><\/td><\/tr><tr><td>M1<\/td><td>4WB<\/td><td>Personalized content for customer on this postcode only (Same street)<\/td><\/tr><tr><td>SW1W<\/td><td>0*<\/td><td>Personalized content for customers on the same area, district but different units (So probably customer from nearby streets)<\/td><\/tr><tr><td>M1<\/td><td>4*<\/td><td>Personalized content for customers on the same area, district but different units (So probably customers from nearby streets)<\/td><\/tr><tr><td>M1<\/td><td>*<\/td><td>Personalized content for customers whose postcode starts with M1 (Manchester city center area)Personalized content for customers in the Manchester area<\/td><\/tr><tr><td>M*<\/td><td>*<\/td><td>Personalized content for customers in the Manchester area<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Getting Customer location.<\/h2>\n\n\n\n<p>There are multiple ways to get your customer (or visitor) postcode. The best way is if a customer is a registered customer and you have an address in a profile.<\/p>\n\n\n\n<p>Another option is to get visitor\u2019s geocoordinates (visitor\u2019s latitude and longitude) and after that do reverse geocoding to get address and postcode from latitude and longitude. Once we have a postcode, we can use it to apply this personalization criterion. <\/p>\n\n\n\n<p>In this example, I have a hard coded customer postcode. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Create Personalization criteria<\/h2>\n\n\n\n<p>UkPostcodeCriterionSettings Class:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public class UkPostcodeCriterionSettings : CriterionModelBase\n    {\n        &#91;Required]\n        public string OutwardCode { get; set; }\n        &#91;Required]\n        public string InwardCode { get; set; }\n        \n        public override ICriterionModel Copy()\n        {\n            return ShallowCopy();\n        }\n    }<\/code><\/pre>\n\n\n\n<p>UkPostcodeCriterion Class:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;VisitorGroupCriterion(\n        Category = \"Geolocation\",\n        DisplayName = \"UK Postal Codes\",\n        Description = \"Personalization criteria based on customer's UK address\")]\n\n    public class UkPostcodeCriterion : CriterionBase&lt;UkPostcodeCriterionSettings&gt;\n    {\n        public override bool IsMatch(IPrincipal principal, HttpContextBase httpContext)\n        {\n            \/\/user location\n            var visitorlocation = GetVisitorPostcode();\n\n            \/\/ Wildcard in OutwardCode\n            if (Model.OutwardCode.Contains(\"*\"))\n            {\n                var nOutwardcode = Model.OutwardCode.Replace(\"*\", \"\");\n\n                return visitorlocation.OutwardCode.StartsWith(nOutwardcode);\n            }\n\n            \/\/ Wildcard in InwardCode\n            if (Model.InwardCode.Contains(\"*\"))\n            {\n                var nInwardcode = Model.OutwardCode.Replace(\"*\", \"\");\n\n                return visitorlocation.OutwardCode == Model.OutwardCode &amp;&amp; visitorlocation.OutwardCode.StartsWith(nInwardcode);\n            }\n\n            \/\/ no Wildcard\n            if (!Model.OutwardCode.Contains(\"*\") &amp;&amp; !Model.InwardCode.Contains(\"*\"))\n            {\n               return visitorlocation.OutwardCode == Model.OutwardCode &amp;&amp; visitorlocation.InwardCode == Model.InwardCode;\n            }\n\n\n            return false;\n        }\n\n        private Postcode GetVisitorPostcode()\n        {\n\n            \/\/ToDo: Get Customer postcode\n            var postcode = \"M2 2AN\";\n\n            var userLocation = new Postcode();\n            \n            var codes = postcode.Split(new&#91;] {' '});\n\n            if (codes.Any() &amp;&amp; codes.Length == 2)\n            {\n                userLocation.OutwardCode = codes&#91;0].ToUpper();\n                userLocation.InwardCode = codes&#91;1].ToUpper();\n            }\n            \n            return userLocation;\n        }\n    }<\/code><\/pre>\n\n\n\n<p><strong>Source Code:<\/strong> The source code of this Personalisation criteria can be downloaded from this <a href=\"https:\/\/github.com\/nulhaq\/EpiPersonalization.Criteria.UkPostcodes\">link<\/a>.<\/p>\n\n\n\n<p> <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recently I come across the requirement to do personalization based on UK postcodes. The format of UK postal codes is very well structured. It consists&#8230;<\/p>\n","protected":false},"author":1,"featured_media":65,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[10,13,90],"class_list":["post-46","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-episerver","tag-cms","tag-episerver","tag-optimizely-cms"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Episerver Personalisation Criteria based on UK postcodes - Naveed Ul-Haq&#039;s blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/episerver-personalisation-criteria-based-on-uk-postcodes\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Episerver Personalisation Criteria based on UK postcodes - Naveed Ul-Haq&#039;s blog\" \/>\n<meta property=\"og:description\" content=\"Recently I come across the requirement to do personalization based on UK postcodes. The format of UK postal codes is very well structured. It consists...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/episerver-personalisation-criteria-based-on-uk-postcodes\/\" \/>\n<meta property=\"og:site_name\" content=\"Naveed Ul-Haq&#039;s blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-08-01T23:07:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-02-21T22:43:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2020\/01\/episerver.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"230\" \/>\n\t<meta property=\"og:image:height\" content=\"230\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Naveed Ul-Haq\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Naveed Ul-Haq\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/episerver-personalisation-criteria-based-on-uk-postcodes\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/episerver-personalisation-criteria-based-on-uk-postcodes\\\/\"},\"author\":{\"name\":\"Naveed Ul-Haq\",\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/#\\\/schema\\\/person\\\/dd6db5980b965fcae41e096d357c65c9\"},\"headline\":\"Episerver Personalisation Criteria based on UK postcodes\",\"datePublished\":\"2019-08-01T23:07:05+00:00\",\"dateModified\":\"2023-02-21T22:43:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/episerver-personalisation-criteria-based-on-uk-postcodes\\\/\"},\"wordCount\":300,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/#\\\/schema\\\/person\\\/dd6db5980b965fcae41e096d357c65c9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/episerver-personalisation-criteria-based-on-uk-postcodes\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.naveedulhaq.com\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/episerver.jpeg\",\"keywords\":[\"cms\",\"episerver\",\"Optimizely Content cloud\"],\"articleSection\":[\"Optimizely\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/episerver-personalisation-criteria-based-on-uk-postcodes\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/episerver-personalisation-criteria-based-on-uk-postcodes\\\/\",\"url\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/episerver-personalisation-criteria-based-on-uk-postcodes\\\/\",\"name\":\"Episerver Personalisation Criteria based on UK postcodes - Naveed Ul-Haq&#039;s blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/episerver-personalisation-criteria-based-on-uk-postcodes\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/episerver-personalisation-criteria-based-on-uk-postcodes\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.naveedulhaq.com\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/episerver.jpeg\",\"datePublished\":\"2019-08-01T23:07:05+00:00\",\"dateModified\":\"2023-02-21T22:43:09+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/episerver-personalisation-criteria-based-on-uk-postcodes\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/episerver-personalisation-criteria-based-on-uk-postcodes\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/episerver-personalisation-criteria-based-on-uk-postcodes\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.naveedulhaq.com\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/episerver.jpeg\",\"contentUrl\":\"https:\\\/\\\/www.naveedulhaq.com\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/episerver.jpeg\",\"width\":230,\"height\":230,\"caption\":\"episerver\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/episerver-personalisation-criteria-based-on-uk-postcodes\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.naveedulhaq.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Episerver Personalisation Criteria based on UK postcodes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/#website\",\"url\":\"https:\\\/\\\/www.naveedulhaq.com\\\/\",\"name\":\"Naveed Ul-Haq's blog\",\"description\":\"AI, Optimizely, Azure &amp; more\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/#\\\/schema\\\/person\\\/dd6db5980b965fcae41e096d357c65c9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.naveedulhaq.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/#\\\/schema\\\/person\\\/dd6db5980b965fcae41e096d357c65c9\",\"name\":\"Naveed Ul-Haq\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/362536aba6cc66917d7558cacd015a81c7cdf1a69b9a28c994764847c487b692?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/362536aba6cc66917d7558cacd015a81c7cdf1a69b9a28c994764847c487b692?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/362536aba6cc66917d7558cacd015a81c7cdf1a69b9a28c994764847c487b692?s=96&d=mm&r=g\",\"caption\":\"Naveed Ul-Haq\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/362536aba6cc66917d7558cacd015a81c7cdf1a69b9a28c994764847c487b692?s=96&d=mm&r=g\"},\"description\":\"I lead engineering delivery teams for digital commerce and digital experience platforms, combining hands-on architecture experience with strong delivery governance. Over 20+ years, I\u2019ve built and led cross\u2011functional teams (engineering, BA, QA) delivering modern cloud solutions on Azure, microservices, APIs and eCommerce\\\/CMS platforms. My recent focus includes AI-enabled commerce automation: product ingestion and enrichment workflows, content optimisation for SEO and shopping feeds, and agentic tooling to improve marketing and accessibility workflows. I\u2019m passionate about building high-performing teams, establishing quality\\\/release standards, and delivering measurable outcomes across performance, reliability, and speed of change.\",\"sameAs\":[\"https:\\\/\\\/www.naveedulhaq.com\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/naveedulhaq\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Episerver Personalisation Criteria based on UK postcodes - Naveed Ul-Haq&#039;s blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/episerver-personalisation-criteria-based-on-uk-postcodes\/","og_locale":"en_GB","og_type":"article","og_title":"Episerver Personalisation Criteria based on UK postcodes - Naveed Ul-Haq&#039;s blog","og_description":"Recently I come across the requirement to do personalization based on UK postcodes. The format of UK postal codes is very well structured. It consists...","og_url":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/episerver-personalisation-criteria-based-on-uk-postcodes\/","og_site_name":"Naveed Ul-Haq&#039;s blog","article_published_time":"2019-08-01T23:07:05+00:00","article_modified_time":"2023-02-21T22:43:09+00:00","og_image":[{"width":230,"height":230,"url":"https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2020\/01\/episerver.jpeg","type":"image\/jpeg"}],"author":"Naveed Ul-Haq","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Naveed Ul-Haq","Estimated reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/episerver-personalisation-criteria-based-on-uk-postcodes\/#article","isPartOf":{"@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/episerver-personalisation-criteria-based-on-uk-postcodes\/"},"author":{"name":"Naveed Ul-Haq","@id":"https:\/\/www.naveedulhaq.com\/#\/schema\/person\/dd6db5980b965fcae41e096d357c65c9"},"headline":"Episerver Personalisation Criteria based on UK postcodes","datePublished":"2019-08-01T23:07:05+00:00","dateModified":"2023-02-21T22:43:09+00:00","mainEntityOfPage":{"@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/episerver-personalisation-criteria-based-on-uk-postcodes\/"},"wordCount":300,"commentCount":0,"publisher":{"@id":"https:\/\/www.naveedulhaq.com\/#\/schema\/person\/dd6db5980b965fcae41e096d357c65c9"},"image":{"@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/episerver-personalisation-criteria-based-on-uk-postcodes\/#primaryimage"},"thumbnailUrl":"https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2020\/01\/episerver.jpeg","keywords":["cms","episerver","Optimizely Content cloud"],"articleSection":["Optimizely"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.naveedulhaq.com\/index.php\/episerver\/episerver-personalisation-criteria-based-on-uk-postcodes\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/episerver-personalisation-criteria-based-on-uk-postcodes\/","url":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/episerver-personalisation-criteria-based-on-uk-postcodes\/","name":"Episerver Personalisation Criteria based on UK postcodes - Naveed Ul-Haq&#039;s blog","isPartOf":{"@id":"https:\/\/www.naveedulhaq.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/episerver-personalisation-criteria-based-on-uk-postcodes\/#primaryimage"},"image":{"@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/episerver-personalisation-criteria-based-on-uk-postcodes\/#primaryimage"},"thumbnailUrl":"https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2020\/01\/episerver.jpeg","datePublished":"2019-08-01T23:07:05+00:00","dateModified":"2023-02-21T22:43:09+00:00","breadcrumb":{"@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/episerver-personalisation-criteria-based-on-uk-postcodes\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.naveedulhaq.com\/index.php\/episerver\/episerver-personalisation-criteria-based-on-uk-postcodes\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/episerver-personalisation-criteria-based-on-uk-postcodes\/#primaryimage","url":"https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2020\/01\/episerver.jpeg","contentUrl":"https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2020\/01\/episerver.jpeg","width":230,"height":230,"caption":"episerver"},{"@type":"BreadcrumbList","@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/episerver-personalisation-criteria-based-on-uk-postcodes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.naveedulhaq.com\/"},{"@type":"ListItem","position":2,"name":"Episerver Personalisation Criteria based on UK postcodes"}]},{"@type":"WebSite","@id":"https:\/\/www.naveedulhaq.com\/#website","url":"https:\/\/www.naveedulhaq.com\/","name":"Naveed Ul-Haq's blog","description":"AI, Optimizely, Azure &amp; more","publisher":{"@id":"https:\/\/www.naveedulhaq.com\/#\/schema\/person\/dd6db5980b965fcae41e096d357c65c9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.naveedulhaq.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"https:\/\/www.naveedulhaq.com\/#\/schema\/person\/dd6db5980b965fcae41e096d357c65c9","name":"Naveed Ul-Haq","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/362536aba6cc66917d7558cacd015a81c7cdf1a69b9a28c994764847c487b692?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/362536aba6cc66917d7558cacd015a81c7cdf1a69b9a28c994764847c487b692?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/362536aba6cc66917d7558cacd015a81c7cdf1a69b9a28c994764847c487b692?s=96&d=mm&r=g","caption":"Naveed Ul-Haq"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/362536aba6cc66917d7558cacd015a81c7cdf1a69b9a28c994764847c487b692?s=96&d=mm&r=g"},"description":"I lead engineering delivery teams for digital commerce and digital experience platforms, combining hands-on architecture experience with strong delivery governance. Over 20+ years, I\u2019ve built and led cross\u2011functional teams (engineering, BA, QA) delivering modern cloud solutions on Azure, microservices, APIs and eCommerce\/CMS platforms. My recent focus includes AI-enabled commerce automation: product ingestion and enrichment workflows, content optimisation for SEO and shopping feeds, and agentic tooling to improve marketing and accessibility workflows. I\u2019m passionate about building high-performing teams, establishing quality\/release standards, and delivering measurable outcomes across performance, reliability, and speed of change.","sameAs":["https:\/\/www.naveedulhaq.com","https:\/\/www.linkedin.com\/in\/naveedulhaq\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/posts\/46","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/comments?post=46"}],"version-history":[{"count":0,"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/posts\/46\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/media\/65"}],"wp:attachment":[{"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/media?parent=46"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/categories?post=46"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/tags?post=46"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}