{"id":2958404,"date":"2026-02-26T13:30:31","date_gmt":"2026-02-26T21:30:31","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2958404"},"modified":"2026-03-16T13:22:41","modified_gmt":"2026-03-16T20:22:41","slug":"introducing-ai-components-beta-in-the-js-maps-sdk","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-ai-components-beta-in-the-js-maps-sdk","title":{"rendered":"Introducing AI components (beta) in the ArcGIS Maps SDK for JavaScript"},"author":6561,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[770712,37101,738191],"tags":[758311,781002,769562,780994,780938],"industry":[],"product":[36831,36551,36601],"class_list":["post-2958404","blog","type-blog","status-publish","format-standard","hentry","category-geoai","category-announcements","category-developers","tag-ai","tag-ai-components","tag-arcgis-maps-sdk-for-javascript","tag-web-components","tag-whats-new-february-2026","product-js-api-arcgis","product-arcgis-online","product-developers"],"acf":{"short_description":"We're pleased to announce the beta release of the AI components package in the ArcGIS Maps SDK for JavaScript (JS Maps SDK). ","flexible_content":[{"acf_fc_layout":"content","content":"<p>We are pleased to announce the beta release of the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/references\/ai-components\/\">AI components package<\/a> in version 5.0 of the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/\">ArcGIS Maps SDK for JavaScript<\/a> (JS Maps SDK).<\/p>\n<p>This package contains a set of components that enables developers to build agentic web mapping applications. <strong><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/agentic-apps\/ai-introduction\/\">Agentic web mapping applications<\/a><\/strong> provide a chat interface for users to navigate and explore data in web maps using natural language queries. This has the benefit of allowing end users to interact with web maps with a simplified, accessible UX.<\/p>\n"},{"acf_fc_layout":"content","content":"<h2>Assistant component<\/h2>\n<p>The primary star of this package is the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/references\/ai-components\/components\/arcgis-assistant\/\">arcgis-assistant<\/a> component. This component provides a chat interface for end users to interact with a web map via one or more agents.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2958570,"id":2958570,"title":"ai-assistant-component","filename":"ai-assistant-component.png","filesize":691482,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/ai-assistant-component.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-ai-components-beta-in-the-js-maps-sdk\/ai-assistant-component","alt":"The Assistant component with a red border highlighting its place in the UI.","author":"6561","description":"","caption":"The arcgis-assistant component (outlined in red), provides a chat interface for users to interact with web maps using natural language.","name":"ai-assistant-component","status":"inherit","uploaded_to":2958404,"date":"2026-02-26 16:43:19","modified":"2026-02-26 16:44:34","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":2550,"height":1430,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/ai-assistant-component-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/ai-assistant-component.png","medium-width":464,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/ai-assistant-component.png","medium_large-width":768,"medium_large-height":431,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/ai-assistant-component.png","large-width":1920,"large-height":1077,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/ai-assistant-component-1536x861.png","1536x1536-width":1536,"1536x1536-height":861,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/ai-assistant-component-2048x1148.png","2048x2048-width":2048,"2048x2048-height":1148,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/ai-assistant-component-826x463.png","card_image-width":826,"card_image-height":463,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/ai-assistant-component-1920x1077.png","wide_image-width":1920,"wide_image-height":1077}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/ai-assistant\/"},{"acf_fc_layout":"content","content":"<p><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/references\/ai-components\/#get-started\">To get started<\/a>, simply import the 5.0 version of the JS Maps SDK, and add the <code>arcgis-assistant<\/code> component to your application. The assistant must reference a <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/agentic-apps\/ai-webmap-setup\/\">web map<\/a>, and contain at least one <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/agentic-apps\/ai-introduction\/#agents\">agent<\/a> to function.<\/p>\n<pre><code><span>&lt;<span style=\"color: #22863a\">arcgis-map<\/span> <span style=\"color: #005cc5\">id<\/span>=<span style=\"color: #032f62\">&quot;wheat-map&quot;<\/span> <span style=\"color: #005cc5\">item-id<\/span>=<span style=\"color: #032f62\">&quot;dd6e8957e7a94765bf32bc07097cbf46&quot;<\/span>&gt;<\/span><span>&lt;\/<span style=\"color: #22863a\">arcgis-map<\/span>&gt;<\/span>\r\n<span>&lt;<span style=\"color: #22863a\">arcgis-assistant<\/span> <span style=\"color: #005cc5\">reference-element<\/span>=<span style=\"color: #032f62\">&quot;#wheat-map&quot;<\/span>&gt;<\/span>\r\n  <span>&lt;<span style=\"color: #22863a\">arcgis-assistant-navigation-agent<\/span>&gt;<\/span><span>&lt;\/<span style=\"color: #22863a\">arcgis-assistant-navigation-agent<\/span>&gt;<\/span>\r\n  <span>&lt;<span style=\"color: #22863a\">arcgis-assistant-data-exploration-agent<\/span>&gt;<\/span><span>&lt;\/<span style=\"color: #22863a\">arcgis-assistant-data-exploration-agent<\/span>&gt;<\/span>\r\n  <span>&lt;<span style=\"color: #22863a\">arcgis-assistant-help-agent<\/span>&gt;<\/span><span>&lt;\/<span style=\"color: #22863a\">arcgis-assistant-help-agent<\/span>&gt;<\/span>\r\n<span>&lt;\/<span style=\"color: #22863a\">arcgis-assistant<\/span>&gt;<\/span>\r\n<\/code><\/pre>\n<p>Each agent is an unrendered subcomponent of <code>arcgis-assistant<\/code>.<\/p>\n<p><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/ai-assistant\/\">Check out the sample<\/a> in the JS Maps SDK documentation to see this component in action.<\/p>\n"},{"acf_fc_layout":"sidebar","content":"<p>Users who access apps built with the <code>arcgis-assistant<\/code> component will always be prompted for a sign in. To interact with the component and its associated agents, <strong>you must be signed in as a named user to an ArcGIS Online organization<\/strong>. See the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/agentic-apps\/ai-faq\/#access-and-security\">Access and security FAQ<\/a> for more details.<\/p>\n","image_reference":false,"layout":"standard","image_reference_figure":"","snippet":"","spotlight_name":"","section_title":"","position":"Center","spotlight_image":false},{"acf_fc_layout":"content","content":"<h2>Agents<\/h2>\n<p>One or more <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/agentic-apps\/ai-introduction\/#agents\">agents<\/a> must be registered to the <code>arcgis-assistant<\/code> component. Agents process natural language inputs using a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Large_language_model\">large language model (LLM)<\/a> to generate responses as either plain text or by executing a tool or action that interacts with the map. <\/p>\n<p>Behind the scenes, agents ask the LLM to determine a user&#8217;s intent, determine tool parameters, or summarize information. While the LLM calls are made to a server, the JS Maps SDK defines and executes an agent&#8217;s core logic <em>within the browser<\/em>, making for performant interactions between users and the client application.<\/p>\n<p>The JS Maps SDK provides three out-of-the-box agents for interacting with a web map:<\/p>\n<ul>\n<li>Navigation agent<\/li>\n<li>Data exploration agent<\/li>\n<li>Help agent<\/li>\n<\/ul>\n<h2>Navigation agent<\/h2>\n<p>The <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/references\/ai-components\/components\/arcgis-assistant-navigation-agent\/\">Navigation agent<\/a> enables the end user to navigate to different areas of a web map. This includes navigating to an address or place name, layer extents, features within a layer, web map bookmarks, or coordinates.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2958569,"id":2958569,"title":"navigation2-optimize","filename":"navigation2-optimize.gif","filesize":2936984,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/navigation2-optimize.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-ai-components-beta-in-the-js-maps-sdk\/navigation2-optimize","alt":"Animation showing a navigation workflow.","author":"6561","description":"","caption":"Several user interactions that invoke various navigation tools from the Navigation agent.","name":"navigation2-optimize","status":"inherit","uploaded_to":2958404,"date":"2026-02-26 16:43:16","modified":"2026-02-26 17:11:48","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1110,"height":746,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/navigation2-optimize-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/navigation2-optimize.gif","medium-width":388,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/navigation2-optimize.gif","medium_large-width":768,"medium_large-height":516,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/navigation2-optimize.gif","large-width":1110,"large-height":746,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/navigation2-optimize.gif","1536x1536-width":1110,"1536x1536-height":746,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/navigation2-optimize.gif","2048x2048-width":1110,"2048x2048-height":746,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/navigation2-optimize-692x465.gif","card_image-width":692,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/navigation2-optimize.gif","wide_image-width":1110,"wide_image-height":746}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/ai-assistant\/"},{"acf_fc_layout":"content","content":"<p>See the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/references\/ai-components\/components\/arcgis-assistant-navigation-agent\/\">Navigation agent documentation<\/a> for details of this agent\u2019s capabilities, its limitations, and examples of how a user can interact with it.<\/p>\n<h2>Data exploration agent<\/h2>\n<p>The <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/references\/ai-components\/components\/arcgis-assistant-data-exploration-agent\/\">Data exploration agent<\/a> enables the end user to query features and statistics based on attributes and geometry from a layer within a web map. It also allows users to visually filter data in the map.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2958568,"id":2958568,"title":"dataexploration-optimize","filename":"dataexploration-optimize.gif","filesize":3226882,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/dataexploration-optimize.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-ai-components-beta-in-the-js-maps-sdk\/dataexploration-optimize","alt":"Animation showing a data exploration workflow.","author":"6561","description":"A user interaction that invokes the Help agent.","caption":"User interactions that invoke various tools from the Data exploration agent.","name":"dataexploration-optimize","status":"inherit","uploaded_to":2958404,"date":"2026-02-26 16:43:12","modified":"2026-02-26 17:12:35","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1110,"height":746,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/dataexploration-optimize-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/dataexploration-optimize.gif","medium-width":388,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/dataexploration-optimize.gif","medium_large-width":768,"medium_large-height":516,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/dataexploration-optimize.gif","large-width":1110,"large-height":746,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/dataexploration-optimize.gif","1536x1536-width":1110,"1536x1536-height":746,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/dataexploration-optimize.gif","2048x2048-width":1110,"2048x2048-height":746,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/dataexploration-optimize-692x465.gif","card_image-width":692,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/dataexploration-optimize.gif","wide_image-width":1110,"wide_image-height":746}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/ai-assistant\/"},{"acf_fc_layout":"content","content":"<p>As you try out the data exploration agent, take note of the questions and conversations that feel natural related to data queries. If you discover questions this agent can&#8217;t answer well, please <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/agentic-apps\/ai-faq\/#how-can-i-provide-feedback-or-request-features-for-ai-components\">let us know!<\/a> And we&#8217;ll do our best to make improvements to its performance.<\/p>\n<p>See the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/references\/ai-components\/components\/arcgis-assistant-data-exploration-agent\/\">Data exploration agent documentation<\/a> for more details of this agent&#8217;s capabilities, its limitations, and examples of how a user can interact with it.<\/p>\n<h2>Help agent<\/h2>\n<p>The <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/references\/ai-components\/components\/arcgis-assistant-help-agent\/\">Help agent<\/a> provides guidance about the capabilities of the assistant, the agents registered to it, and can answer general questions about the data included in the web map.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2958567,"id":2958567,"title":"help-optimize","filename":"help-optimize.gif","filesize":1737977,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/help-optimize.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-ai-components-beta-in-the-js-maps-sdk\/help-optimize","alt":"Animation showing a help workflow.","author":"6561","description":"","caption":"Users can ask the help agent about the map and the capabilities of the assistant.","name":"help-optimize","status":"inherit","uploaded_to":2958404,"date":"2026-02-26 16:43:06","modified":"2026-02-26 18:22:10","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1110,"height":746,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/help-optimize-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/help-optimize.gif","medium-width":388,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/help-optimize.gif","medium_large-width":768,"medium_large-height":516,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/help-optimize.gif","large-width":1110,"large-height":746,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/help-optimize.gif","1536x1536-width":1110,"1536x1536-height":746,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/help-optimize.gif","2048x2048-width":1110,"2048x2048-height":746,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/help-optimize-692x465.gif","card_image-width":692,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/help-optimize.gif","wide_image-width":1110,"wide_image-height":746}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/ai-assistant\/"},{"acf_fc_layout":"content","content":"<p>See the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/references\/ai-components\/components\/arcgis-assistant-help-agent\/\">Help agent documentation<\/a> for details of this agent\u2019s capabilities, its limitations, and examples of how a user can interact with it.<\/p>\n<h2>Custom agents<\/h2>\n<p>In addition to the agents provided by JS Maps SDK, developers can create <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/agentic-apps\/ai-custom-agents\/\">custom agents<\/a> to extend the capabilities of the <code>arcgis-assistant<\/code> component. A custom agent could be created to provide specialized data analysis, integrate with external services, or support domain-specific queries specific to an application.<\/p>\n<p>For example, in the video below, a custom agent calculates a drive time from a location using natural language.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2958576,"id":2958576,"title":"drivetime-optimize","filename":"drivetime-optimize.gif","filesize":950333,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/drivetime-optimize.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-ai-components-beta-in-the-js-maps-sdk\/drivetime-optimize","alt":"Animation showing a user calculating drive time from natural language.","author":"6561","description":"","caption":"","name":"drivetime-optimize","status":"inherit","uploaded_to":2958404,"date":"2026-02-26 16:56:16","modified":"2026-02-26 16:56:31","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1110,"height":746,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/drivetime-optimize-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/drivetime-optimize.gif","medium-width":388,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/drivetime-optimize.gif","medium_large-width":768,"medium_large-height":516,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/drivetime-optimize.gif","large-width":1110,"large-height":746,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/drivetime-optimize.gif","1536x1536-width":1110,"1536x1536-height":746,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/drivetime-optimize.gif","2048x2048-width":1110,"2048x2048-height":746,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/drivetime-optimize-692x465.gif","card_image-width":692,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/drivetime-optimize.gif","wide_image-width":1110,"wide_image-height":746}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>Learn more about how to create <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/agentic-apps\/ai-custom-agents\/\">custom agents in the documentation<\/a>, which includes links to the code for this example and others.<\/p>\n<h2>Web map setup<\/h2>\n<p>The primary context of the out-of-the box agents are the feature layers within a <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/agentic-apps\/ai-webmap-setup\/\">web map<\/a>. User questions often target data in specific layers. To resolve these user requests, agents send layer metadata to the LLM along with the user\u2019s input so the agent will know which layers and fields to target.<\/p>\n<p>To work within the LLM context limits and improve response accuracy, web maps used in the <code>arcgis-assistant<\/code> component must have <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/agentic-apps\/ai-webmap-setup\/#embeddings\">vector embeddings<\/a> stored as a resource to the web map item. Embeddings are generated in the &#8220;Manage AI vector embeddings&#8221; section of the settings tab of the web map item.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2958574,"id":2958574,"title":"embeddings ui","filename":"embeddings-ui.png","filesize":18088,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/embeddings-ui.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-ai-components-beta-in-the-js-maps-sdk\/embeddings-ui","alt":"The UI for generating embeddings in the settings tab of a web map item.","author":"6561","description":"","caption":"","name":"embeddings-ui","status":"inherit","uploaded_to":2958404,"date":"2026-02-26 16:48:06","modified":"2026-02-26 16:48:31","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":844,"height":166,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/embeddings-ui-213x166.png","thumbnail-width":213,"thumbnail-height":166,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/embeddings-ui.png","medium-width":464,"medium-height":91,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/embeddings-ui.png","medium_large-width":768,"medium_large-height":151,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/embeddings-ui.png","large-width":844,"large-height":166,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/embeddings-ui.png","1536x1536-width":844,"1536x1536-height":166,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/embeddings-ui.png","2048x2048-width":844,"2048x2048-height":166,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/embeddings-ui-826x162.png","card_image-width":826,"card_image-height":162,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/embeddings-ui.png","wide_image-width":844,"wide_image-height":166}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>If you don&#8217;t see this option in the web map settings, then you must first <a href=\"https:\/\/doc.arcgis.com\/en\/arcgis-online\/administer\/configure-assistants.htm\">enable AI assistants<\/a> for your ArcGIS Online organization.<\/p>\n<p>Web map embeddings are vector representations of the layer titles and field metadata for all feature layers in the web map. This allows agents to determine the layers and fields that are most relevant to the user\u2019s natural language query before sending the information to the LLM. <\/p>\n<p>Once the embeddings are generated, the web map may be used by any of the out-of-the-box agents.<\/p>\n<h2>Layer metadata<\/h2>\n<p>Vector embeddings require good <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/agentic-apps\/ai-webmap-setup\/#layer-metadata\">layer metadata<\/a>, including <strong>field aliases<\/strong> and <strong>descriptions<\/strong>. It is best if these are authored by someone familiar with the data, but this metadata can also be generated using the <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-enterprise\/announcements\/introducing-item-details-assistant-beta\">Item details assistant (beta)<\/a>. <\/p>\n<p>Read more about <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/agentic-apps\/ai-webmap-setup\/#embeddings\">embeddings<\/a> and <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/agentic-apps\/ai-webmap-setup\/\">setting up your web map for agentic applications<\/a> in the documentation.<\/p>\n<h2>Conclusion<\/h2>\n<p>We look forward to seeing the apps you create with these components! Remember, AI components are currently in beta. Due to the non-deterministic nature of generative AI, there may be inaccuracies or unexpected behavior when using the out-of-the-box ArcGIS agents. We are actively working on improving the accuracy and capabilities of the agents. During the beta period, <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/agentic-apps\/ai-faq\/#how-can-i-provide-feedback-or-request-features-for-ai-components\">we welcome your feedback<\/a> to help us improve and shape the future of these capabilities.<\/p>\n<p>Also, check out this <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/agentic-apps\/ai-faq\/\">FAQ<\/a> for more information.<\/p>\n"}],"authors":[{"ID":6561,"user_firstname":"Kristian","user_lastname":"Ekenes","nickname":"Kristian Ekenes","user_nicename":"kekenes","display_name":"Kristian Ekenes","user_email":"KEkenes@esri.com","user_url":"https:\/\/github.com\/ekenes","user_registered":"2018-03-02 00:18:32","user_description":"Kristian Ekenes is a Principal Product Engineer at Esri specializing in data visualization on the web. He works on the ArcGIS Maps SDK for JavaScript, ArcGIS Arcade, and Map Viewer in ArcGIS Online. Kristian's work focuses on researching and developing new and innovative data visualization capabilities of geospatial data in web maps, Arcade integration in web maps, and applications of generative AI assistants in web maps. Prior to joining Esri, he worked as a GIS Specialist for an environmental consulting company. Kristian has degrees from Brigham Young University and Arizona State University.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/10\/ekenes-zurich-213x200.png' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"related_articles":[{"ID":2956662,"post_author":"330302","post_date":"2026-02-24 07:00:56","post_date_gmt":"2026-02-24 15:00:56","post_content":"","post_title":"ArcGIS Maps SDK for JavaScript: What's New in 5.0","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"arcgis-maps-sdk-for-javascript-whats-new-in-5-0","to_ping":"","pinged":"","post_modified":"2026-02-27 09:24:05","post_modified_gmt":"2026-02-27 17:24:05","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2956662","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":2933661,"post_author":"358732","post_date":"2026-02-25 00:00:16","post_date_gmt":"2026-02-25 08:00:16","post_content":"","post_title":"Introducing the Item Details assistant (beta) - helping you create and enhance information about your content","post_excerpt":"","post_status":"publish","comment_status":"closed","ping_status":"closed","post_password":"","post_name":"introducing-item-details-assistant-beta","to_ping":"","pinged":"","post_modified":"2026-02-26 05:27:23","post_modified_gmt":"2026-02-26 13:27:23","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2933661","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":2954481,"post_author":"7641","post_date":"2026-02-25 21:52:36","post_date_gmt":"2026-02-26 05:52:36","post_content":"","post_title":"What's new in ArcGIS Online (February 2026)","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"whats-new-in-arcgis-online-february-2026","to_ping":"","pinged":"","post_modified":"2026-03-02 19:30:44","post_modified_gmt":"2026-03-03 03:30:44","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2954481","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":2957712,"post_author":"412218","post_date":"2026-02-25 17:05:13","post_date_gmt":"2026-02-26 01:05:13","post_content":"","post_title":"What's New in AI Assistants (February 2026)","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"whats-new-in-ai-assistants-february-2026","to_ping":"","pinged":"","post_modified":"2026-03-16 19:05:41","post_modified_gmt":"2026-03-17 02:05:41","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2957712","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"}],"show_article_image":false,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/card.jpg","wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/banner.jpg"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Introducing AI components (beta) in the ArcGIS Maps SDK for JavaScript<\/title>\n<meta name=\"description\" content=\"We are pleased to announce the beta release of the AI components package in the ArcGIS Maps SDK for JavaScript.\" \/>\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.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-ai-components-beta-in-the-js-maps-sdk\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introducing AI components (beta) in the ArcGIS Maps SDK for JavaScript\" \/>\n<meta property=\"og:description\" content=\"We are pleased to announce the beta release of the AI components package in the ArcGIS Maps SDK for JavaScript.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-ai-components-beta-in-the-js-maps-sdk\" \/>\n<meta property=\"og:site_name\" content=\"ArcGIS Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/esrigis\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-16T20:22:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/card.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"826\" \/>\n\t<meta property=\"og:image:height\" content=\"465\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-ai-components-beta-in-the-js-maps-sdk#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-ai-components-beta-in-the-js-maps-sdk\"},\"author\":{\"name\":\"Kristian Ekenes\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/5469f723fbfb78138efbb1da56e6aa9b\"},\"headline\":\"Introducing AI components (beta) in the ArcGIS Maps SDK for JavaScript\",\"datePublished\":\"2026-02-26T21:30:31+00:00\",\"dateModified\":\"2026-03-16T20:22:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-ai-components-beta-in-the-js-maps-sdk\"},\"wordCount\":11,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"AI\",\"AI components\",\"ArcGIS Maps SDK for JavaScript\",\"web components\",\"what's new february 2026\"],\"articleSection\":[\"AI\",\"Announcements\",\"Developers\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-ai-components-beta-in-the-js-maps-sdk#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-ai-components-beta-in-the-js-maps-sdk\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-ai-components-beta-in-the-js-maps-sdk\",\"name\":\"Introducing AI components (beta) in the ArcGIS Maps SDK for JavaScript\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2026-02-26T21:30:31+00:00\",\"dateModified\":\"2026-03-16T20:22:41+00:00\",\"description\":\"We are pleased to announce the beta release of the AI components package in the ArcGIS Maps SDK for JavaScript.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-ai-components-beta-in-the-js-maps-sdk#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-ai-components-beta-in-the-js-maps-sdk\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-ai-components-beta-in-the-js-maps-sdk#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Introducing AI components (beta) in the ArcGIS Maps SDK for JavaScript\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"name\":\"ArcGIS Blog\",\"description\":\"Get insider info from Esri product teams\",\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\",\"name\":\"Esri\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"width\":400,\"height\":400,\"caption\":\"Esri\"},\"image\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/esrigis\/\",\"https:\/\/x.com\/ESRI\",\"https:\/\/www.linkedin.com\/company\/5311\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/5469f723fbfb78138efbb1da56e6aa9b\",\"name\":\"Kristian Ekenes\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/10\/ekenes-zurich-213x200.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/10\/ekenes-zurich-213x200.png\",\"caption\":\"Kristian Ekenes\"},\"description\":\"Kristian Ekenes is a Principal Product Engineer at Esri specializing in data visualization on the web. He works on the ArcGIS Maps SDK for JavaScript, ArcGIS Arcade, and Map Viewer in ArcGIS Online. Kristian's work focuses on researching and developing new and innovative data visualization capabilities of geospatial data in web maps, Arcade integration in web maps, and applications of generative AI assistants in web maps. Prior to joining Esri, he worked as a GIS Specialist for an environmental consulting company. Kristian has degrees from Brigham Young University and Arizona State University.\",\"sameAs\":[\"https:\/\/github.com\/ekenes\",\"https:\/\/www.linkedin.com\/in\/kristian-ekenes\/\",\"https:\/\/x.com\/kekenes\"],\"gender\":\"male\",\"jobTitle\":\"Principal Product Engineer\",\"worksFor\":\"Esri\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/kekenes\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Introducing AI components (beta) in the ArcGIS Maps SDK for JavaScript","description":"We are pleased to announce the beta release of the AI components package in the ArcGIS Maps SDK for JavaScript.","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.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-ai-components-beta-in-the-js-maps-sdk","og_locale":"en_US","og_type":"article","og_title":"Introducing AI components (beta) in the ArcGIS Maps SDK for JavaScript","og_description":"We are pleased to announce the beta release of the AI components package in the ArcGIS Maps SDK for JavaScript.","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-ai-components-beta-in-the-js-maps-sdk","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2026-03-16T20:22:41+00:00","og_image":[{"width":826,"height":465,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/card.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_site":"@ESRI","twitter_misc":{"Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-ai-components-beta-in-the-js-maps-sdk#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-ai-components-beta-in-the-js-maps-sdk"},"author":{"name":"Kristian Ekenes","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/5469f723fbfb78138efbb1da56e6aa9b"},"headline":"Introducing AI components (beta) in the ArcGIS Maps SDK for JavaScript","datePublished":"2026-02-26T21:30:31+00:00","dateModified":"2026-03-16T20:22:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-ai-components-beta-in-the-js-maps-sdk"},"wordCount":11,"commentCount":2,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["AI","AI components","ArcGIS Maps SDK for JavaScript","web components","what's new february 2026"],"articleSection":["AI","Announcements","Developers"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-ai-components-beta-in-the-js-maps-sdk#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-ai-components-beta-in-the-js-maps-sdk","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-ai-components-beta-in-the-js-maps-sdk","name":"Introducing AI components (beta) in the ArcGIS Maps SDK for JavaScript","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2026-02-26T21:30:31+00:00","dateModified":"2026-03-16T20:22:41+00:00","description":"We are pleased to announce the beta release of the AI components package in the ArcGIS Maps SDK for JavaScript.","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-ai-components-beta-in-the-js-maps-sdk#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-ai-components-beta-in-the-js-maps-sdk"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/introducing-ai-components-beta-in-the-js-maps-sdk#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Introducing AI components (beta) in the ArcGIS Maps SDK for JavaScript"}]},{"@type":"WebSite","@id":"https:\/\/www.esri.com\/arcgis-blog\/#website","url":"https:\/\/www.esri.com\/arcgis-blog\/","name":"ArcGIS Blog","description":"Get insider info from Esri product teams","publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization","name":"Esri","url":"https:\/\/www.esri.com\/arcgis-blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","width":400,"height":400,"caption":"Esri"},"image":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/esrigis\/","https:\/\/x.com\/ESRI","https:\/\/www.linkedin.com\/company\/5311\/"]},{"@type":"Person","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/5469f723fbfb78138efbb1da56e6aa9b","name":"Kristian Ekenes","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/10\/ekenes-zurich-213x200.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/10\/ekenes-zurich-213x200.png","caption":"Kristian Ekenes"},"description":"Kristian Ekenes is a Principal Product Engineer at Esri specializing in data visualization on the web. He works on the ArcGIS Maps SDK for JavaScript, ArcGIS Arcade, and Map Viewer in ArcGIS Online. Kristian's work focuses on researching and developing new and innovative data visualization capabilities of geospatial data in web maps, Arcade integration in web maps, and applications of generative AI assistants in web maps. Prior to joining Esri, he worked as a GIS Specialist for an environmental consulting company. Kristian has degrees from Brigham Young University and Arizona State University.","sameAs":["https:\/\/github.com\/ekenes","https:\/\/www.linkedin.com\/in\/kristian-ekenes\/","https:\/\/x.com\/kekenes"],"gender":"male","jobTitle":"Principal Product Engineer","worksFor":"Esri","url":"https:\/\/www.esri.com\/arcgis-blog\/author\/kekenes"}]}},"text_date":"February 26, 2026","author_name":"Kristian Ekenes","author_page":"https:\/\/www.esri.com\/arcgis-blog\/author\/kekenes","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2026\/02\/banner.jpg","primary_product":"ArcGIS Maps SDK for JavaScript","tag_data":[{"term_id":758311,"name":"AI","slug":"ai","term_group":0,"term_taxonomy_id":758311,"taxonomy":"post_tag","description":"","parent":0,"count":29,"filter":"raw"},{"term_id":781002,"name":"AI components","slug":"ai-components","term_group":0,"term_taxonomy_id":781002,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":769562,"name":"ArcGIS Maps SDK for JavaScript","slug":"arcgis-maps-sdk-for-javascript","term_group":0,"term_taxonomy_id":769562,"taxonomy":"post_tag","description":"","parent":0,"count":27,"filter":"raw"},{"term_id":780994,"name":"web components","slug":"web-components","term_group":0,"term_taxonomy_id":780994,"taxonomy":"post_tag","description":"","parent":0,"count":4,"filter":"raw"},{"term_id":780938,"name":"what's new february 2026","slug":"whats-new-february-2026","term_group":0,"term_taxonomy_id":780938,"taxonomy":"post_tag","description":"","parent":0,"count":38,"filter":"raw"}],"category_data":[{"term_id":770712,"name":"AI","slug":"geoai","term_group":0,"term_taxonomy_id":770712,"taxonomy":"category","description":"","parent":0,"count":51,"filter":"raw"},{"term_id":37101,"name":"Announcements","slug":"announcements","term_group":0,"term_taxonomy_id":37101,"taxonomy":"category","description":"","parent":0,"count":1957,"filter":"raw"},{"term_id":738191,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":738191,"taxonomy":"category","description":"","parent":0,"count":420,"filter":"raw"}],"product_data":[{"term_id":36831,"name":"ArcGIS Maps SDK for JavaScript","slug":"js-api-arcgis","term_group":0,"term_taxonomy_id":36831,"taxonomy":"product","description":"","parent":36601,"count":361,"filter":"raw"},{"term_id":36551,"name":"ArcGIS Online","slug":"arcgis-online","term_group":0,"term_taxonomy_id":36551,"taxonomy":"product","description":"","parent":0,"count":2419,"filter":"raw"},{"term_id":36601,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":36601,"taxonomy":"product","description":"","parent":0,"count":761,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=js-api-arcgis","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2958404","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/users\/6561"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=2958404"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2958404\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=2958404"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=2958404"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=2958404"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=2958404"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=2958404"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}