{"id":721,"date":"2022-09-20T21:14:02","date_gmt":"2022-09-20T21:14:02","guid":{"rendered":"https:\/\/www.naveedulhaq.com\/?p=721"},"modified":"2023-02-21T22:19:22","modified_gmt":"2023-02-21T22:19:22","slug":"optimizely-hubspot-forms-block","status":"publish","type":"post","link":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/optimizely-hubspot-forms-block\/","title":{"rendered":"Optimizely: HubSpot forms Block"},"content":{"rendered":"\n<p>There are several options to integrate Optimizely CMS\/Commerce with HubSpot CRM. You can use the HubSpot connector or maybe your requirement is just to collect data from customers and submit it to HubSpot. <\/p>\n\n\n\n<p>There are 2 ways HubSpot can capture form data from the website<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>HubSpot Tracking Code<\/li>\n\n\n\n<li>HubSpot Form<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">HubSpot Tracking Code<\/h2>\n\n\n\n<p>You can add HubSpot tracking code on every page of your website (or the pages that use forms). HubSpot tracking code basically looks for the submit event on the button and sends form data to HubSpot.<\/p>\n\n\n\n<p>Now, this approach looks really simple. All you have to do is create a Global property in Site Settings and render a Js snippet code on every page (or the pages that use forms).  The problem with this approach is these form submissions are stored in Hubspot as &#8220;non-hubspot forms&#8221;. That means it is very difficult for CRM users to link these forms&#8217; data with any workflows or prospect deals.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Hubspot form Block<\/h2>\n\n\n\n<p>Another option is to create a custom block type and render the Hubspot form. There are a lot of benefits of this approach like<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>HubSpot forms can be used as CRM workflows &amp; Deal forecast and conversion. <\/li>\n\n\n\n<li>HubSpot forms offer progressive profiling on HubSpot<\/li>\n\n\n\n<li>All spam &amp; security is being handled by HubSpot<\/li>\n\n\n\n<li>You can style it using your CSS <\/li>\n<\/ul>\n\n\n\n<p>HubSpot form snippet is usually the same with the exception of following<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Region<\/li>\n\n\n\n<li>Portal Id<\/li>\n\n\n\n<li>Form Id<\/li>\n<\/ul>\n\n\n\n<p>Following is a sample HubSpot form snippet<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;script charset=\"utf-8\" type=\"text\/javascript\" src=\"\/\/js.hsforms.net\/forms\/v2.js\"&gt;&lt;\/script&gt;\n&lt;script&gt;\nhbspt.forms.create({\nregion: <strong>--region--<\/strong>,\nportalId: <strong>--portal Id--<\/strong>,\nformId: <strong>--Form id--<\/strong>\n});\n&lt;\/script&gt;<\/code><\/pre>\n\n\n\n<p> I have added flexibility of styling form and added the option to open it in the model window<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">HubSpot Form Block Model<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;SiteImageUrl(\"CMS-icon-block-hubspot-form.png\")]\n    &#91;ContentType(DisplayName = \"Hubspot Form Block\",\n        GUID = \"00000000-0000-0000-0000-000000000000\", \n        Description = \"Provides the space inside which the Hubspot Form will be placed\",\n        GroupName = TRM.Web.Constants.StringConstants.Groups.Social)]\n    public class HubspotFormBlock : TrmBlock, IControlDisplayOptions\n    {\n        #region SiteSettings\n        &#91;Display(\n            Name = \"Region\", \n            Order = 10, \n            GroupName = Constants.StringConstants.Tabs.SiteSettings)]\n        &#91;Required]\n        public virtual string Region { get; set; }\n        \n        &#91;Display(\n            Name = \"Portal Id\", \n            Order = 20, \n            GroupName = Constants.StringConstants.Tabs.SiteSettings)]\n        &#91;Required]\n        public virtual string PortalId { get; set; }\n        \n        &#91;Display(\n            Name = \"Form Id\", \n            Order = 30, \n            GroupName = Constants.StringConstants.Tabs.SiteSettings)]\n        &#91;Required]\n        public virtual string FormId { get; set; }\n        #endregion\n\n        #region Apperance\n        &#91;Display(\n            Name = \"Enable modal window\",\n            Description = \"Changes the style of the block to open in modal view.\",\n            Order = 40,\n            GroupName = Constants.StringConstants.Tabs.Appearance)]\n        public virtual bool EnableModalWindow { get; set; }\n        \n        &#91;Display(\n            Name = \"Call-To-Action button text\",\n            Description = \"The text displayed on the Call-To-Action button (if the block is used as a modal window).\",\n            Order = 50,\n            GroupName = Constants.StringConstants.Tabs.Appearance)]\n        public virtual string CtaButtonText { get; set; }\n        \n        &#91;Display(\n            Name = \"Modal window header text\",\n            Description = \"The text displayed as header in a modal window (if the block is used as a modal window).\",\n            Order = 60,\n            GroupName = Constants.StringConstants.Tabs.Appearance)]\n        public virtual string ModalHeaderText { get; set; }\n        \n        &#91;Display(\n            Name = \"Enable submit button solid colour style\",\n            Description = \"Setting additional button styling.\",\n            Order = 70,\n            GroupName = Constants.StringConstants.Tabs.Appearance)]\n        public virtual bool EnableButtonStyling { get; set; }\n        \n        &#91;Display(\n            Name = \"Enable white form background colour\",\n            Description = \"Setting additional background styling.\",\n            Order = 80,\n            GroupName = Constants.StringConstants.Tabs.Appearance)]\n        public virtual bool EnableBackgroundStyling { get; set; }\n        \n        &#91;Display(\n            Name = \"Enable white modal button colour\",\n            Description = \"Setting additional button styling.\",\n            Order = 80,\n            GroupName = Constants.StringConstants.Tabs.Appearance)]\n        public virtual bool EnableWhiteModalButtonStyling { get; set; }\n        #endregion\n        \n        public virtual string GetDisplayOptionClasses(string tag)\n        {\n            var contentAreaTags = ServiceLocator.Current.GetInstance&lt;IContentAreaTags&gt;();\n            if (tag == contentAreaTags.FullWidth)\n            {\n                return StringConstants.GridClasses.ColXs12;\n            }\n            if (tag == contentAreaTags.HalfWidth)\n            {\n                return StringConstants.GridClasses.ColXs6;\n            }\n            if (tag == contentAreaTags.OneThirdWidth)\n            {\n                return string.Format(\"{0} {1}\", StringConstants.GridClasses.ColXs6,\n                    StringConstants.GridClasses.ColSm4);\n            }\n            if (tag == contentAreaTags.OneQuarterWidth)\n            {\n                return string.Format(\"{0} {1}\", StringConstants.GridClasses.ColXs6,\n                    StringConstants.GridClasses.ColSm3);\n            }\n            if (tag == contentAreaTags.OneSixthWidth)\n            {\n                return string.Format(\"{0} {1} {2}\", StringConstants.GridClasses.ColXs6,\n                    StringConstants.GridClasses.ColSm4, StringConstants.GridClasses.ColMd2);\n            }\n            if (tag == contentAreaTags.TwoThirdsWidth)\n            {\n                return string.Format(\"{0} {1}\", StringConstants.GridClasses.ColXs12,\n                    StringConstants.GridClasses.ColSm8);\n            }\n            if (tag == contentAreaTags.ThreeQuartersWidth)\n            {\n                return string.Format(\"{0} {1}\", StringConstants.GridClasses.ColXs12,\n                    StringConstants.GridClasses.ColSm9);\n            }\n            return StringConstants.GridClasses.ColXs12;\n        }\n\n        public override void SetDefaultValues(ContentType contentType)\n        {\n            base.SetDefaultValues(contentType);\n            EnableBackgroundStyling = false;\n            EnableButtonStyling = false;\n            EnableModalWindow = false;\n            EnableWhiteModalButtonStyling = false;\n            CtaButtonText = \"Subscribe Now\";\n            ModalHeaderText = \"Subscribe to our newsletter\";\n        }\n    }<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">HubSpot Form Block View<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>model TRM.Web.Models.Blocks.HubspotFormBlock\n\n@{\n\tvar classBackground = Model.EnableBackgroundStyling ? \"hbspt-form-white-background\" : \"\";\n\tvar classButton = Model.EnableButtonStyling ? \"hbspt-form-btn2\" : \"\";\n\tvar classModalButton = Model.EnableWhiteModalButtonStyling ? \"hs-light\" : \"btn-secondary\";\n\t\n}\n\n@if (@Model.EnableModalWindow)\n{\n\t&lt;button type=\"button\" class=\"btn @classModalButton\" data-toggle=\"modal\" data-target=\"#@Html.Raw(Model.FormId)\"&gt;\n\t\t@Model.CtaButtonText\n\t&lt;\/button&gt;\n\n\n\t&lt;div class=\"modal hs-modal fade\" id=\"@Html.Raw(Model.FormId)\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"@Html.Raw(Model.FormId)Label\" aria-hidden=\"true\"&gt;\n\t\t&lt;div class=\"modal-dialog\" role=\"document\"&gt;\n\t\t\t&lt;div class=\"modal-content\"&gt;\n\t\t\t\t&lt;div class=\"modal-header\"&gt;\n\t\t\t\t\t&lt;h2 class=\"modal-title\" id=\"@Html.Raw(Model.FormId)Label\"&gt;@Model.ModalHeaderText&lt;\/h2&gt;\n\t\t\t\t\t&lt;button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\"&gt;\n\t\t\t\t\t\t&lt;span aria-hidden=\"true\"&gt;X&lt;\/span&gt;\n\t\t\t\t\t&lt;\/button&gt;\n\t\t\t\t&lt;\/div&gt;\n\t\t\t\t&lt;div class=\"modal-body\"&gt;\n\t\t\t\t\t&lt;div class=\"@classBackground @classButton\"&gt;\n\t\t\t\t\t\t&lt;!--&#91;if lte IE 8]&gt;\n\t\t\t\t\t\t\t&lt;script charset=\"utf-8\" type=\"text\/javascript\" src=\"\/\/js.hsforms.net\/forms\/v2-legacy.js\"&gt;&lt;\/script&gt;\n\t\t\t\t\t\t&lt;!&#91;endif]--&gt;\n\t\t\t\t\t\t&lt;script charset=\"utf-8\" type=\"text\/javascript\" src=\"\/\/js.hsforms.net\/forms\/v2.js\"&gt;&lt;\/script&gt;\n\t\t\t\t\t\t&lt;script&gt;\n\t\t\thbspt.forms.create({\n\t\t\t\tregion: \"@Html.Raw(Model.Region)\",\n\t\t\t\tportalId: \"@Html.Raw(Model.PortalId)\",\n\t\t\t\tformId: \"@Html.Raw(Model.FormId)\"\n\t\t\t});\n\t\t\t&lt;\/script&gt;\n\t\t\t\t\t&lt;\/div&gt;\n\t\t\t\t&lt;\/div&gt;\n\t\t\t&lt;\/div&gt;\n\t\t&lt;\/div&gt;\n\t&lt;\/div&gt;\n}\nelse\n{\n\t&lt;div class=\"@classBackground @classButton\"&gt;\n\t\t&lt;!--&#91;if lte IE 8]&gt;\n\t\t\t&lt;script charset=\"utf-8\" type=\"text\/javascript\" src=\"\/\/js.hsforms.net\/forms\/v2-legacy.js\"&gt;&lt;\/script&gt;\n\t\t&lt;!&#91;endif]--&gt;\n\t\t&lt;script charset=\"utf-8\" type=\"text\/javascript\" src=\"\/\/js.hsforms.net\/forms\/v2.js\"&gt;&lt;\/script&gt;\n\t\t&lt;script&gt;\n      hbspt.forms.create({\n    \tregion: \"@Html.Raw(Model.Region)\",\n    \tportalId: \"@Html.Raw(Model.PortalId)\",\n    \tformId: \"@Html.Raw(Model.FormId)\"\n    });\n    &lt;\/script&gt;\n\t&lt;\/div&gt;\n}<\/code><\/pre>\n\n\n\n<p>You can use block-specific CSS to style your form according to your website template<\/p>\n","protected":false},"excerpt":{"rendered":"<p>There are several options to integrate Optimizely CMS\/Commerce with HubSpot CRM. You can use the HubSpot connector or maybe your requirement is just to collect&#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":[10,32,23,13,63,90],"class_list":["post-721","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-episerver","tag-cms","tag-developer","tag-development","tag-episerver","tag-optimizely","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>Optimizely: HubSpot forms Block - 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\/optimizely-hubspot-forms-block\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Optimizely: HubSpot forms Block - Naveed Ul-Haq&#039;s blog\" \/>\n<meta property=\"og:description\" content=\"There are several options to integrate Optimizely CMS\/Commerce with HubSpot CRM. You can use the HubSpot connector or maybe your requirement is just to collect...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/optimizely-hubspot-forms-block\/\" \/>\n<meta property=\"og:site_name\" content=\"Naveed Ul-Haq&#039;s blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-09-20T21:14:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-02-21T22:19:22+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=\"4 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\\\/optimizely-hubspot-forms-block\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/optimizely-hubspot-forms-block\\\/\"},\"author\":{\"name\":\"Naveed Ul-Haq\",\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/#\\\/schema\\\/person\\\/dd6db5980b965fcae41e096d357c65c9\"},\"headline\":\"Optimizely: HubSpot forms Block\",\"datePublished\":\"2022-09-20T21:14:02+00:00\",\"dateModified\":\"2023-02-21T22:19:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/optimizely-hubspot-forms-block\\\/\"},\"wordCount\":290,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/#\\\/schema\\\/person\\\/dd6db5980b965fcae41e096d357c65c9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/optimizely-hubspot-forms-block\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.naveedulhaq.com\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/optimizely.png\",\"keywords\":[\"cms\",\"developer\",\"development\",\"episerver\",\"Optimizely\",\"Optimizely Content cloud\"],\"articleSection\":[\"Optimizely\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/optimizely-hubspot-forms-block\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/optimizely-hubspot-forms-block\\\/\",\"url\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/optimizely-hubspot-forms-block\\\/\",\"name\":\"Optimizely: HubSpot forms Block - Naveed Ul-Haq&#039;s blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/optimizely-hubspot-forms-block\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/optimizely-hubspot-forms-block\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.naveedulhaq.com\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/optimizely.png\",\"datePublished\":\"2022-09-20T21:14:02+00:00\",\"dateModified\":\"2023-02-21T22:19:22+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/optimizely-hubspot-forms-block\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/optimizely-hubspot-forms-block\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/www.naveedulhaq.com\\\/index.php\\\/episerver\\\/optimizely-hubspot-forms-block\\\/#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\\\/optimizely-hubspot-forms-block\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.naveedulhaq.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Optimizely: HubSpot forms Block\"}]},{\"@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":"Optimizely: HubSpot forms Block - 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\/optimizely-hubspot-forms-block\/","og_locale":"en_GB","og_type":"article","og_title":"Optimizely: HubSpot forms Block - Naveed Ul-Haq&#039;s blog","og_description":"There are several options to integrate Optimizely CMS\/Commerce with HubSpot CRM. You can use the HubSpot connector or maybe your requirement is just to collect...","og_url":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/optimizely-hubspot-forms-block\/","og_site_name":"Naveed Ul-Haq&#039;s blog","article_published_time":"2022-09-20T21:14:02+00:00","article_modified_time":"2023-02-21T22:19:22+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":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/optimizely-hubspot-forms-block\/#article","isPartOf":{"@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/optimizely-hubspot-forms-block\/"},"author":{"name":"Naveed Ul-Haq","@id":"https:\/\/www.naveedulhaq.com\/#\/schema\/person\/dd6db5980b965fcae41e096d357c65c9"},"headline":"Optimizely: HubSpot forms Block","datePublished":"2022-09-20T21:14:02+00:00","dateModified":"2023-02-21T22:19:22+00:00","mainEntityOfPage":{"@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/optimizely-hubspot-forms-block\/"},"wordCount":290,"commentCount":0,"publisher":{"@id":"https:\/\/www.naveedulhaq.com\/#\/schema\/person\/dd6db5980b965fcae41e096d357c65c9"},"image":{"@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/optimizely-hubspot-forms-block\/#primaryimage"},"thumbnailUrl":"https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2021\/08\/optimizely.png","keywords":["cms","developer","development","episerver","Optimizely","Optimizely Content cloud"],"articleSection":["Optimizely"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.naveedulhaq.com\/index.php\/episerver\/optimizely-hubspot-forms-block\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/optimizely-hubspot-forms-block\/","url":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/optimizely-hubspot-forms-block\/","name":"Optimizely: HubSpot forms Block - Naveed Ul-Haq&#039;s blog","isPartOf":{"@id":"https:\/\/www.naveedulhaq.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/optimizely-hubspot-forms-block\/#primaryimage"},"image":{"@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/optimizely-hubspot-forms-block\/#primaryimage"},"thumbnailUrl":"https:\/\/www.naveedulhaq.com\/wp-content\/uploads\/2021\/08\/optimizely.png","datePublished":"2022-09-20T21:14:02+00:00","dateModified":"2023-02-21T22:19:22+00:00","breadcrumb":{"@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/optimizely-hubspot-forms-block\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.naveedulhaq.com\/index.php\/episerver\/optimizely-hubspot-forms-block\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.naveedulhaq.com\/index.php\/episerver\/optimizely-hubspot-forms-block\/#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\/optimizely-hubspot-forms-block\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.naveedulhaq.com\/"},{"@type":"ListItem","position":2,"name":"Optimizely: HubSpot forms Block"}]},{"@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\/721","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=721"}],"version-history":[{"count":0,"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/posts\/721\/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=721"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/categories?post=721"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.naveedulhaq.com\/index.php\/wp-json\/wp\/v2\/tags?post=721"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}