{"id":1328,"date":"2025-04-25T23:19:35","date_gmt":"2025-04-25T23:19:35","guid":{"rendered":"https:\/\/www.naveedulhaq.com\/?p=1328"},"modified":"2025-04-26T00:17:53","modified_gmt":"2025-04-26T00:17:53","slug":"natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search","status":"publish","type":"post","link":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\/","title":{"rendered":"Natural Language Q&amp;A in Optimizely CMS Using Azure OpenAI and AI Search"},"content":{"rendered":"\n<p>In <a href=\"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/personalized-optimizely-cms-website-search-experiences-azure-ai-search-personalizer\/\">Part 2<\/a>, we integrated Azure AI Search with Azure Personalizer to build a smarter, user-focused experience in Optimizely CMS. We used ServiceAPI to send CMS content to Azure AI Search. In Part 3, we\u2019ll take things a step further: enabling users to ask natural language questions and get AI-powered answers.<\/p>\n\n\n\n<p>But here&#8217;s the twist: instead of using ServiceAPI, this time we\u2019ll explore how to query indexed content <em>directly<\/em> using Azure AI Search\u2019s REST API.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why Natural Language Q&amp;A?<\/h2>\n\n\n\n<p>Sometimes users don\u2019t know the exact keywords. They ask things like:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u201cHow do I return a product?\u201d<br>\u201cCan I book a demo?\u201d<\/p>\n<\/blockquote>\n\n\n\n<p>With OpenAI on Azure and the semantic capabilities of Azure AI Search, your website can now understand those queries and provide helpful, contextual responses.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Architecture Overview<\/h2>\n\n\n\n<p>The updated flow<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>CMS content is indexed by Azure AI Search (via ServiceAPI or crawler).<\/li>\n\n\n\n<li>The search index is enriched with semantic settings.<\/li>\n\n\n\n<li>A user types a natural language query.<\/li>\n\n\n\n<li>Your backend uses Azure Search\u2019s Semantic Search + Azure OpenAI (chat\/completion API) to return a contextual answer.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2025\/04\/ai-search-chatbot-optimizely-1024x683.png\" loading=\"lazy\" alt=\"AI &amp; Optimizely\" class=\"wp-image-1334\" srcset=\"https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2025\/04\/ai-search-chatbot-optimizely-1024x683.png 1024w, https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2025\/04\/ai-search-chatbot-optimizely-300x200.png 300w, https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2025\/04\/ai-search-chatbot-optimizely-768x512.png 768w, https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2025\/04\/ai-search-chatbot-optimizely.png 1536w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Using Azure Search API to Extract Content<\/h2>\n\n\n\n<p>You can directly access indexed content using the Azure Search REST API. Here\u2019s an example of how to fetch top 5 results:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public async Task&lt;List&lt;string>> SearchAzureContentAsync(string query)\n{\n    var searchServiceName = \"&lt;your-search-service-name>\";\n    var indexName = \"&lt;your-index-name>\";\n    var apiKey = \"&lt;your-api-key>\";\n\n    using var client = new HttpClient();\n    client.DefaultRequestHeaders.Add(\"api-key\", apiKey);\n\n    var url = $\"https:\/\/{searchServiceName}.search.windows.net\/indexes\/{indexName}\/docs?api-version=2021-04-30-Preview&amp;search={query}&amp;$top=5\";\n    var result = await client.GetStringAsync(url);\n    \n    var json = JsonDocument.Parse(result);\n    var docs = new List&lt;string>();\n\n    foreach (var item in json.RootElement.GetProperty(\"value\").EnumerateArray())\n    {\n        docs.Add(item.GetProperty(\"content\").GetString());\n    }\n\n    return docs;\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Generate Answer Using Azure OpenAI<\/h2>\n\n\n\n<p>Once we retrieve relevant documents, we\u2019ll pass them into Azure OpenAI to generate a contextual answer:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public async Task&lt;string> AskOpenAiAsync(string question, List&lt;string> context)\n{\n    var prompt = $\"\"\"\nYou are a helpful assistant. Based on the following content, answer the question:\n\n{string.Join(\"\\n\\n\", context)}\n\nQuestion: {question}\nAnswer:\n\"\"\";\n\n    var openAiKey = \"&lt;your-openai-key>\";\n    var endpoint = \"https:\/\/&lt;your-openai-endpoint>.openai.azure.com\/openai\/deployments\/&lt;deployment-name>\/completions?api-version=2022-12-01\";\n\n    var payload = new\n    {\n        prompt = prompt,\n        temperature = 0.7,\n        max_tokens = 200\n    };\n\n    using var client = new HttpClient();\n    client.DefaultRequestHeaders.Add(\"api-key\", openAiKey);\n    var response = await client.PostAsync(endpoint, new StringContent(JsonSerializer.Serialize(payload), Encoding.UTF8, \"application\/json\"));\n\n    var result = JsonDocument.Parse(await response.Content.ReadAsStringAsync());\n    return result.RootElement.GetProperty(\"choices\")&#91;0].GetProperty(\"text\").GetString();\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Integrate with Optimizely CMS<\/h2>\n\n\n\n<p>You can create a controller like this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public class QnAController : Controller\n{\n    &#91;HttpPost]\n    public async Task&lt;ActionResult> Ask(string question)\n    {\n        var docs = await SearchAzureContentAsync(question);\n        var answer = await AskOpenAiAsync(question, docs);\n        return Json(new { answer });\n    }\n}<\/code><\/pre>\n\n\n\n<p>And on your view:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;form method=\"post\" id=\"qnaForm\">\n  &lt;input type=\"text\" name=\"question\" placeholder=\"Ask a question...\" \/>\n  &lt;button type=\"submit\">Ask&lt;\/button>\n&lt;\/form>\n&lt;div id=\"answer\">&lt;\/div>\n\n&lt;script>\n  $('#qnaForm').submit(function(e) {\n    e.preventDefault();\n    const question = $('input&#91;name=question]').val();\n    fetch('\/QnA\/Ask', {\n      method: 'POST',\n      headers: {'Content-Type': 'application\/json'},\n      body: JSON.stringify({ question })\n    })\n    .then(r => r.json())\n    .then(data => $('#answer').text(data.answer));\n  });\n&lt;\/script><\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<p>This wraps up the final puzzle piece: letting users speak freely with your Optimizely site, while AI interprets and responds in real-time. From content indexing to re-ranking to full-on Q&amp;A, your CMS is now intelligent, conversational, and user-first.<\/p>\n\n\n\n<p>Want to see this in action? Stay tuned for the sample repo and video walkthrough!<\/p>\n\n\n\n<p>The first part of this series, <a href=\"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/integrating-optimizely-azure-ai-search-anger-for-site-search\/\">Integrating Optimizely CMS with Azure AI Search \u2013 A Game-Changer for Site Search<\/a><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Part 2, we integrated Azure AI Search with Azure Personalizer to build a smarter, user-focused experience in Optimizely CMS. We used ServiceAPI to send&#8230;<\/p>\n","protected":false},"author":1,"featured_media":599,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[11,34,141,10,32],"class_list":["post-1328","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-episerver","tag-dot-net-core","tag-ai","tag-azure","tag-cms","tag-developer"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Build AI Q&amp;A in Optimizely with Azure AI Search + OpenAI - Naveed Ul-Haq&#039;s blog<\/title>\n<meta name=\"description\" content=\"Add natural language Q&amp;A to your Optimizely CMS using Azure AI Search and OpenAI. Boost UX with smart, AI-powered search &amp; real-time answers.\" \/>\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\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Build AI Q&amp;A in Optimizely with Azure AI Search + OpenAI - Naveed Ul-Haq&#039;s blog\" \/>\n<meta property=\"og:description\" content=\"Add natural language Q&amp;A to your Optimizely CMS using Azure AI Search and OpenAI. Boost UX with smart, AI-powered search &amp; real-time answers.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\/\" \/>\n<meta property=\"og:site_name\" content=\"Naveed Ul-Haq&#039;s blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-25T23:19:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-04-26T00:17:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2021\/08\/optimizely.png\" \/>\n\t<meta property=\"og:image:width\" content=\"232\" \/>\n\t<meta property=\"og:image:height\" content=\"235\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\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=\"2 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\\\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\\\/\"},\"author\":{\"name\":\"Naveed Ul-Haq\",\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/#\\\/schema\\\/person\\\/dd6db5980b965fcae41e096d357c65c9\"},\"headline\":\"Natural Language Q&amp;A in Optimizely CMS Using Azure OpenAI and AI Search\",\"datePublished\":\"2025-04-25T23:19:35+00:00\",\"dateModified\":\"2025-04-26T00:17:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\\\/\"},\"wordCount\":334,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/#\\\/schema\\\/person\\\/dd6db5980b965fcae41e096d357c65c9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.naveedulhaq.com\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/optimizely.png\",\"keywords\":[\".net core\",\"AI\",\"Azure\",\"cms\",\"developer\"],\"articleSection\":[\"Optimizely\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\\\/\",\"url\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\\\/\",\"name\":\"Build AI Q&A in Optimizely with Azure AI Search + OpenAI - Naveed Ul-Haq&#039;s blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.naveedulhaq.com\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/optimizely.png\",\"datePublished\":\"2025-04-25T23:19:35+00:00\",\"dateModified\":\"2025-04-26T00:17:53+00:00\",\"description\":\"Add natural language Q&A to your Optimizely CMS using Azure AI Search and OpenAI. Boost UX with smart, AI-powered search & real-time answers.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.naveedulhaq.com\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/optimizely.png\",\"contentUrl\":\"https:\\\/\\\/www.naveedulhaq.com\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/optimizely.png\",\"width\":232,\"height\":235,\"caption\":\"optimizely (Episerver)\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.naveedulhaq.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Natural Language Q&amp;A in Optimizely CMS Using Azure OpenAI and AI Search\"}]},{\"@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":"Build AI Q&A in Optimizely with Azure AI Search + OpenAI - Naveed Ul-Haq&#039;s blog","description":"Add natural language Q&A to your Optimizely CMS using Azure AI Search and OpenAI. Boost UX with smart, AI-powered search & real-time answers.","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\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\/","og_locale":"en_GB","og_type":"article","og_title":"Build AI Q&A in Optimizely with Azure AI Search + OpenAI - Naveed Ul-Haq&#039;s blog","og_description":"Add natural language Q&A to your Optimizely CMS using Azure AI Search and OpenAI. Boost UX with smart, AI-powered search & real-time answers.","og_url":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\/","og_site_name":"Naveed Ul-Haq&#039;s blog","article_published_time":"2025-04-25T23:19:35+00:00","article_modified_time":"2025-04-26T00:17:53+00:00","og_image":[{"width":232,"height":235,"url":"https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2021\/08\/optimizely.png","type":"image\/png"}],"author":"Naveed Ul-Haq","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Naveed Ul-Haq","Estimated reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\/#article","isPartOf":{"@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\/"},"author":{"name":"Naveed Ul-Haq","@id":"https:\/\/www.naveedulhaq.com\/#\/schema\/person\/dd6db5980b965fcae41e096d357c65c9"},"headline":"Natural Language Q&amp;A in Optimizely CMS Using Azure OpenAI and AI Search","datePublished":"2025-04-25T23:19:35+00:00","dateModified":"2025-04-26T00:17:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\/"},"wordCount":334,"commentCount":0,"publisher":{"@id":"https:\/\/www.naveedulhaq.com\/#\/schema\/person\/dd6db5980b965fcae41e096d357c65c9"},"image":{"@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\/#primaryimage"},"thumbnailUrl":"https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2021\/08\/optimizely.png","keywords":[".net core","AI","Azure","cms","developer"],"articleSection":["Optimizely"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.naveedulhaq.com\/index.php\/episerver\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\/","url":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\/","name":"Build AI Q&A in Optimizely with Azure AI Search + OpenAI - Naveed Ul-Haq&#039;s blog","isPartOf":{"@id":"https:\/\/www.naveedulhaq.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\/#primaryimage"},"image":{"@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\/#primaryimage"},"thumbnailUrl":"https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2021\/08\/optimizely.png","datePublished":"2025-04-25T23:19:35+00:00","dateModified":"2025-04-26T00:17:53+00:00","description":"Add natural language Q&A to your Optimizely CMS using Azure AI Search and OpenAI. Boost UX with smart, AI-powered search & real-time answers.","breadcrumb":{"@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.naveedulhaq.com\/index.php\/episerver\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\/#primaryimage","url":"https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2021\/08\/optimizely.png","contentUrl":"https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2021\/08\/optimizely.png","width":232,"height":235,"caption":"optimizely (Episerver)"},{"@type":"BreadcrumbList","@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/natural-language-qa-in-optimizely-cms-using-azure-openai-and-ai-search\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.naveedulhaq.com\/"},{"@type":"ListItem","position":2,"name":"Natural Language Q&amp;A in Optimizely CMS Using Azure OpenAI and AI Search"}]},{"@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\/1328","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=1328"}],"version-history":[{"count":0,"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/posts\/1328\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/media\/599"}],"wp:attachment":[{"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/media?parent=1328"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/categories?post=1328"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/tags?post=1328"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}