Hello, everyone. We'll just get started in a couple of minutes. Just waiting for, everyone to enter the webinar. Powered search for Adobe. I'll be your hosts. My name is Steven, and I'm joined by our AEM guru and product manager for website solutions, Ali. Welcome, Ali. And I have a couple housekeeping items to cover quickly before we get started. First, everyone is is in listen only mode. However, we do wanna hear from you during today's presentation, so we'll be fielding questions via chat. Feel free to jump into the q and a section if you have comments, feedback, or questions that you want us to tackle. And the second piece is today's session will be recorded. You'll receive the presentation about twenty four hours, after its completion. So without further ado, let's jump right in. So I want to start with really a foundational belief for Coveo and that is we're no longer in the digital economy, we're in the experience economy. And experiences are really at the core of why you choose Adobe. Through its product portfolio, the company plays really a central role in helping you design and deliver digital experiences. But what we're finding with expectations and rising expectations from consumers is that it's not enough just to put your content or your products online to compete. You need to deliver experiences that are centered on the person, that understands intent and context, that are cohesive, and conversational no matter what channel you're interacting with the customer within, and they need to continuously improve. We need to learn from every interaction in order to elevate and create great experiences. And when we look at Adobe Experience Manager, again, Adobe is obviously a leader, one of the highest rated digital experience platforms, and part of its value as a DXP is in providing integrated set of experience components. But out of all of the components in AEM, the the native search capabilities can sometimes fall short in terms of being able to deliver to consumer expectations, in terms of understanding intent, understanding language, being able to unify content from multiple different systems. And the more content, the more product information that you publish, the harder that it can be to financers and to really elevate your experiences. And so what we're proposing today is is really if you could plug in a cognitive search capability just as seamlessly as within any other Adobe product to elevate search and content discovery, what could that do for your digital experiences? And so whether you're powering a single or multisite website experience, whether you're plugging a commerce engine into AEM to build and manage a shopping experience, or you're using AEM to author technical documentations for self-service, it's a chance to learn how to enhance those experiences. And so let me pass it, to Ali to really demonstrate how you can transform content search and discovery inside your AEM sites. Thank you, Steven. I made it easy on myself today. I have one slide, and the rest is just showing you actual stuff. The thing that I wanna highlight here is the fact that Kaveo, as a platform, has a set of capabilities, but those capabilities, are not kind of shoehorned into a single use case. We serve multiple use cases. When it comes to websites, for example, increasing engagement with, visitors on your website and commerce, serving to increase, revenue, to drive revenue growth, in service, to increase customer satisfaction, help users help themselves. And in workplace, we have, of course, the ability to increase proficiency among your employees and ensure that they get access to what they need when they need it, in addition to getting the stuff that they don't need. They need, for example know what they need, as recommendations. That's all I'll say about that. I'm not one to follow flowcharts on, on slides. So, I think I'll I can start start the sharing from here. For today, what I will show you is going to be and let me just go here. I'm gonna give you just a quick, look at two, sites that are using AEM, so two of our customers, what the search looks like. Then I'm gonna walk you through our current offering, what we have available, and what's upcoming for AEM. So our integration that we're currently building and the things that we have already released. The first one that I'm looking at right now is, Ansys who offer, engineering simulation software. So they have a really good looking site, I find, with the the top search box when you arrive here. As soon as I type something in, I'm gonna get the query suggestions. For those of you who are unaware of how these work, there's an important distinction between just matching the letters that we're seeing and the keywords that show up and, providing suggestions that are actually successful. So the reason these are suggested is because someone has actually searched for these items. They went on the search page, and they ended up clicking on something. So we know that that journey is successful, and we know that, people will tend to get what they need once they click on this here. So we arrive on a page that has a tab for all the content merged into one. There's a nice big, filter here, facet for free trials. So, software that you can try out immediately. I think that's very appealing. You have, of course, the ability to break this down. So if you have news, the blogs, or product tabs, you can narrow this down and find anything you need. The results themselves are going to be influenced, by machine learning as well. So we have something called automated relevance tuning, which is going to reorder the results based on, what the user has done. So if they clicked on it, if they search for a certain keyword, certain facet values, everything is going to be taken into account to ensure that at the top, you get the best results. And that's also gonna vary by tab. So the machine learning model itself is capable of making the distinction between, if you wanted to. In the news tab, for example, the same query, is not gonna lead to the same kind of results necessarily. Someone who uses the same keywords is perhaps not looking for the same kind of interaction. So all of that is taken into account. So these guys have a a great, search, page built. The content is extracting using our site map connector, which is generic connectivity built to extract, data from pretty much any site and, with numerous, abilities on how to extract metadata content, in whichever way you prefer. So I'm not gonna go through those today, but just to say that it works, using our JavaScript search framework and the sitemap connector, which is more generic. Now something that I find interesting, another one of our clients running on AEM Poly, they have, on their main site, a search, which is going to be more product oriented, kind of a mix of everything. And they have their support site, which is a separate use case. So we have the support. We have the website experience here. And you'll see that when we type in, for example, a first letter here. I'm gonna get a set of query suggestions. On the support side, it's possible that I get something similar, but they're not going to be exactly the same here. And in some cases, they're not gonna be at all the same. See here, for example, I have studio firmware update. I don't believe I have that on this side. We're more talking about people who want, in this case, products. They wanna purchase something perhaps. They want more information on the product. And here, it's possible that they want, you know, specific, for example, firmware or something for, or software for these products, but they also wanna know more support oriented tasks. So we have this search here, which is kept purposefully simple. So we have kind of a just a a clean list. You have some some tabs here as well, so you're able to go, into those, find whatever you're looking for. And in here, much more detail, and that's something that we see often in communities. So you want, you know, this kind of, interactions that we're tracking here, if you're talking, for example, about forum posts and things like that, there's a lot of user created content in there. So you wanna have the ability to highlight keywords, to provide specific details so that the user is not wasting any time on finding what they need. So in this case, we see that the content source is guides and manuals. The product line is something. It's very, very detailed detailed, and you can narrow it down by community answers. In the result template here, for example, they also have things like an indicator for whether an issue is solved or not. So it happens that all of these are solved, but in some cases, you'll know that by clicking on this, you won't actually find an answer. You'll maybe just be more frustrated by a bunch of people, you know, who who don't have an answer to this yet. But, apparently, Polly is doing a great job on on keeping the community here up to date. That's it for the just the the sites that I wanted to show you kind of running on AEM here. We have, of course, Adobe themselves who run, with Caveo on AEM. But when it comes to, AEM, currently so earlier, I mentioned that we have the sitemap connector available to index the content. We are currently in the process of building our AEM connector in the later stages. The connector is scheduled for the release on the week of September thirteenth, but I am going to show you here a better version, which doesn't have everything, yet that we're gonna add to it in the coming weeks. So we're kind of doing here a final rush to get all the nice to have features in there before the initial release. But once it's installed, this is basically what we're looking at in terms of configuration. So you can select your environment here, but that's mostly for us, not something that you'll have available in the final release. You'll be using the production environment, or in some cases, our HIPAA certified environment as well is going to be something that you can use by overriding configuration. You set the region that you're gonna be using. Kaveo has multi region capabilities. So you have the ability to, either mirror your content in different region and and retain everything in the US or the ability to do full data residency. If you're, for example, in Europe, you have GDPR requirements, then your entire content can stay in Europe and not move out of there for any reason. Basically, everything is processed. It's possible here that you would have, for example, EU, as a region. We have our Kuveo organization. And if you're not aware, so Kuveo organization is basically, this, administration console is is what's in front of it. It's your own, instance in the cloud hosting your content, allowing you to do any kind of configuration. It has an ID as well as a name. We use that ID to be referenced here. We, mention a source ID for a push content source. So you create a push content source on the cloud, and then you take its ID simply by clicking here. We have a nice copy source ID to clipboard functionality. You paste that on this side. And, when you create an, an an API, sorry, push API source, you get prompted to create an API key, if you don't have one already. So we enter an API key as well on that front. Once that's done, it's really simple to get started. Right now, I'm in the in the regular re retail demo site that comes with AEM. If I wanna index content, for example, here from the US, the English section, which is going to contain, you know, the products, the community, things like that, All I have to do is select that item, and we've created a workflow. So we can select our Kaveo reindex workflow, call that, so reindex, re retail, for example. Let me me click the next button here. And then I can select my content, and I'm gonna include the children here, for example. I'm just gonna throw me some little warning. That's all I need to do here. So as soon as I hit create, the reindex workflow is going to be created, and the content is going to be pushed to Caveo Cloud. Now this is the source, that I have here. So this has already been pushed. Something that I like to do in live webinars is, do risky stuff like reindex my my, my content while I'm doing it. So instead, I've taken the less risky route. I'm going to switch just to show you kind of the speed of how how fast this can go, from indexing in this source to indexing in this source. So I'm gonna go ahead and copy the source ID to the clipboard. I'm going to change my source ID here. Gonna save that. And now that it's saved, I can go ahead and just create this workflow. So this workflow has been created. Normally, you can monitor its status in your workflows here like that. So we see that it's running. It's going to be finished, pretty quickly. Normally, when you when you go ahead and, you take a look inside your content here and maybe I'm gonna shoot myself from the foot, but it's it's, incredibly quick to to get that stuff, out and going. So I'm gonna set this here. I'll let it process, for a second. Earlier when I did it, it took, basically less than a minute to show up fully populated. And the kind of results that you get are going to be, so a full item. And let me show you here, for example, a a product page. I think I'm still in the community here. So let's take a look at an item here. What do we get in there? So we get a bunch of default metadata that gets sent sent along with it. So we get the title of the page as a default item. We're gonna get, a few different automatically extracted values. But most importantly, we get a quick view here. So the quick view is basically, we request the the full HTML of the page, and everything that we're retrieving here becomes a searchable keyword. So you have the ability to match against all of these keywords. It's the fully assembled content. In the final release, something well, in the in the first release, something that we'll be doing as well is making sure to loop through all the child components on a single page, to get you all of the metadata. And we're basically gonna shoot everything to Caveo Cloud. On the cloud side, you can take that metadata and map it to a field. So if your products, you know, you have an ecommerce experience or something, they have, they have, categories of some kind, you can map that to a field, use it to create facets in, in search as well. So that's gonna work really nicely. Alright. Let's take a look here. So, yeah, that's all in. So the the exact same content, basically, that I just, had in my other source, it's already available. So that took about maybe it was ready before, but about a minute, minute and a half maybe to get all of my content in here. Now once I have my content, I can actually do stuff with it, which is something that's fun too. And in the administration interface on Caveo Cloud, you have the ability, to create these hosted search pages. So once you click through the content here, you end up with, kind of this kind of search page. So this is a very simple one here that currently has no modifications to it from from the start. And you have the ability to edit, through this interface, through a code view, but we also have the ability to create those pages locally and push them to the cloud. Now it's not much use to me, when it's just sitting here in the cloud. I can still modify it, of course. I can do things like drag and drop tabs in it. And apologies if this is a bit laggy. I'm in a in a virtual machine. I'm not on my local computer, so, normally, the interface is quite responsive. So I would have the ability here to add a tab to drag anything sorry. To to add a tab here at the top if I wanted to and to make some modifications. But what if I want this page to actually show up locally in AEM and render that out? Well, we have another component called the hosted search page component. And what it allows you to do is to insert here a single component, and this is really here. Let me just highlight this. This single component, once dragged and dropped, onto your page, renders the full interface that we have. So earlier, I had made a modification to it. Let me just reload here quickly. So we see now that exactly what I have in here, I'm going to have on this side as well. Right? I can match that up. And any modification I make so if I wanna, for example, change let me go here into my content browser sorry, into my search page editor. And in the code view, I'm gonna make a small modification to change my layout of results from a list to a card view, and that's going to look like this. Right? So now I have my my card viewing here. You can modify that result template further, have it, you know, nice images showing up. This here is going to, be the the quick view that's available. You can have that or disable it. Assigning page, not very useful, something that we can filter out. And let me just go a bit further here. So I'm gonna refresh here, and my page is going to be dynamically updated exactly in the way that I had it on the cloud. Now what if I wanna make this, a search page that is exclusive for products? It's very simple to do that. So let me just show you here on the component itself. We're gonna go into edit mode. I'm gonna show you the configuration that you need. These API keys will be destroyed after this webinar, so, you can have fun trying them while we're here, but, they'll be nuked. Basically, the only thing we need is this organization ID. We have an API key, which is meant to retrieve the HTML of the search page. We have a search API key that's allowed to make, queries, and we have the ID of the search page that I created, which is the one that I've been demonstrating. But, one of the important concepts here is that we have a search hub. It's basically a way of designating the origin of the query. So I could have a search hub that's AEM here, but I can change this to something like community, for example, if I want to. And on the cloud side, what will happen is I have the ability with a concept called a query pipeline to make modifications, all sorts of modifications to how search is returned. I have the ability to group kind of these rules together. If I wanted to, I can, add machine learning models, to that pipelines, but it's only applied, to the the section I choose. But I can also do things like apply filters. And I've gone ahead, and I've, created some filters here in advance. So when I'm actually on my hosted search page here, we see that the results are already filtered down. And let me just go into preview mode like this. So here I have only basically the pages which are under let me open up that that page here. Uh-huh. That is good. I'm getting some errors thrown live. So all of these pages basically start with a similar path. So when I'm creating this rule, I'm gonna go into the edit tab here. I can say, I want the URI of that page. So that's a field on the the item itself. I wanted to start with products if the search hub so the origin of the query is AEM. Right? And that's all that's required to kind of narrow it down here. I can add multiple filters based on multiple conditions, have only men or women's, search if I wanted to. I can have facets for that as well, of course. And on the other hand, if I change my search up to community, I'll want only community results. So I can do that here very easily going into edit mode, clicking on my configuration, and I'm gonna change this to community. So now our condition has changed. I can reload, and all of my results will be only from the community side. I can, of course, filter out the items that I want. I can in the in the final release, you also have the ability to to specify, root paths for the the content that you wanna index. So if you only wanna index the content in the product catalog, you'll have the ability to do that. Right now, the way that it works is that we're gonna be, indexing pretty much everything by default. So you can launch your your, workflows from wherever you want. But in reality, the other aspect of the connector that's, going to happen is that any content that gets published or activated is going to be automatically indexed with the connector. So that's an immediate process. And the same thing goes for deletion. So as soon as something is deleted, we'll keep that in sync, and we'll remove that content from Caveo Cloud. So, basically, with these two components to start with, it's a really easy way, to get started in AEM and have everything working, in the way that you want it. So you have your hosted search pages. You have, your ability to control your search in in numerous ways. So to influence, result ranking by adding kind of boosting or deboosting for certain set of results, to manage multiple sources of content. Here, I'm not only, obliged to stay within the scope of AEM content. I can add a a variety of different sources. So other websites with the more generic, web or site map connectivity, if you have a YouTube channel with some interesting content that you wanna bring in there, those are usually quite dynamic. We can bring in a ton of different content and have everything be served from the same search page by configuring it through Caveo Cloud and choosing to include, based on the origin of the query, only a subset of our content or everything in any way that we desire. I feel like I've been doing a speed run, but, we're actually doing good on time. So Ali, there's a question that have come in around connectivity specifically. So as you're talking about it, one question. Can you address what fields, slash data sources in AEM are indexed by Coveo? Right. So for the moment, on the item itself, the only thing that will be indexed and let me just, go back here to my content. Alright. So let's go here. English. Let's grab one of these pages, for example. Right. So the properties of this page, basically, the actual properties I should have, not left there. Here, right now, in the current version of the connector, I'm gonna get all of the different, properties on the page itself and send those as metadata. They're not automatically mapped to a field. What we want to what what clients normally do is that they decide which part of the metadata on that item, they want to to have available as a field. And then, in between now and the moment that we release the the the final, the first release I keep saying final, but the first one is definitely not the final one. The first release, then you're gonna have, also, we're gonna what we're gonna be doing is looping through a child components. So, for example, this component here, grabbing, all of the metadata on it, adding a prefix to identify it uniquely, and do the same for everything that's on a page. So anything that shows up on this page as metadata will be available. As well, currently, in the connector, we're filtering out assets, so we're not indexing those right now. But But in the connector on release, we will also, index the the assets themselves. So if you wanna have an asset search and, or if you have PDFs and things like that, of course, those will become searchable as well, with along with all of their metadata, directly on the item available. Does that answer There's another question that I think you answered, at least in parts. It's sort of a two part question. One was, does the connector have the ability to send AEM page properties as facets into Coveo, which, you just mentioned. Yeah. And So how how do you map AEM page properties to facets in Coveo? Okay. So that's, well, it's kind of the same question here, so I'll address it. Basically, let's say that, we've we're indexing, this, here, and we have some kind of property on it. You know, it's going to be, let's say, product category or something or, you know, maybe it's a page for for men only, a men a a product for men. And if that property and metadata is called, let's say, product type or or, product category in AM, once we receive the content here, what happens is that well, first of all, you'll need to create yourself a field. So I would go ahead and add a field here. I'm gonna call this product category. Oh, sorry. Let me just add underscore here. Lower case. Me and my proper typing. So product category like this, and you set it as a facet. Right? So you set it as a facet value here, and that will make it, be treated as a facet on the Kaleo side. I'm gonna add that field. And then in my source, for example, here, this one here, I can manage my mappings. And all I would have to do is add here a mapping. I select my product category field, and I enter a map mapping rule, which the format looks like this. And let me see if I'm in English keyboard. I mean, Canadian French, which is one of the worst keyboards invented for those of you who know it. So like this come on. Okay. Well, you can see the brackets here. I'm gonna use parentheses, but you can see that these are square brackets. So, basically, you would have something like this, and that's all you need. So you apply your mapping. And now the metadata that gets sent with this value, so the product category value, is going to be mapped to the product category field. Once that's done in my search page editor, I could go ahead and add a facet. Let me see if the VM here is going to respond normally. Not really. But, normally, I could just drag this to super laggy on on the virtual machine, connect to our VPN as well. But, normally, you could add it here, specify I mean, I could modify this one, for example, if I wanted to. Come on. It's not letting me do anything. So I could just click here, and I could, say that I want this file type instead to be a product category facet based on the mapping and on that metadata that we've received from AEM. So really, really simple. In a few clicks, you have everything you need, and all of this can be managed programmatically as well. So if you wanna take a look at, for example, the the documentation that we have. So we have our API. You just go on our platform, and I'm on the QA version, but you could go on the regular version like this and add docs at the end. So all of our API calls are here, and I can do things like manage fields. I can manage anything I want really, update them, manage mappings, manage really anything that you want if you wanna do so programmatically instead of three d UI, for example, for a large number of operations. Ali, there's a few more questions in one. The first one is when you speak to looping through child components and grabbing their metadata, Can you expand on that? Is the system indexing the components content or just its metadata? So it's going to grab the HTML that gets rendered already has all the components. But by default, when we send the item, in the way that we're indexing it right now, we only send the page properties, so the page metadata, but not the metadata from the components themselves, so anything that they have tagged on them. When we mean looping through that, it's basically retrieving all of the child items on the page and getting their individual metadata as well. Hopefully, that answers it. Let me see if there I can check-in the chat directly. Yeah. I'll see if there's anything else comes through. Nothing so far. There's one oh, there's Oh, so there's a question of, does the connector index content from the author environment? In the first release, we're only going to be indexing content, that's in a published state. So it's going to be equivalent to the, publish, instance. The future release of the connector, what we'll do is we'll have both available so that you have kind of a way to preview an author without having to have the content be published. It's similar to the way that we work currently in Kavera for Sitecore. If you are familiar with Sitecore, it's a a a experience platform, so CMS as well. And you have both both of these environments. So master and, master and web indexes separated. And here, author and publish will separate those also in an upcoming release. That's part of our plan. Another thing that I wanna mention before our time is up here is that, at release, we won't have support for permissions on a connector, but it's one of the first things that we're gonna be working on, following our our initial release. So any kind of bug fixes that we'll have to do, of course, we'll do them quickly with feedback from our partners and our clients, and we'll work to add permission support as well so that if you have secured content, everything will be reflected, within the permissions that you have set up. Ali, I think there's a couple more questions we can maybe squeeze in. The release date for the AM connector, I think you mentioned it, but maybe just reiterating it. Yeah. So it's the week of September thirteenth, probably towards the start of the week there. And there was a follow-up question to around, your response to to looping through child components and grabbing metadata. A question around, does the actual page contents, is the actual page content indexed? Yes. It is. So that's what we saw earlier. When I go into the content browser here let me close all of this quickly. You can see that for the product pages, and I think those were the best to kind of showcase it here. Let me go. Oh, the community all shows up, first. Let's see. It's because I'm in the let me just empty this here. Alright. That I wanna show you a good example here. Apologies if I make you wait. Product. So hiking poles, for example, here. And if I go into my quick view, this is what's essential. So it's all of the content that's on the page. So, this could be potentially different components as well. But, the HTML values, those are what matter really to us is, when we when we, ask, for the HTML and the AEM side, we retrieve everything in the fully assembled version. The thing is if you have a child component which contains some sort of metadata that you wanna use faceting on, then we wanna have that as well. And that's not what we get when we make this request. But by default, anything that's on a page will be searchable. And we also have scripts available. If you wanna, for example, strip away the header and the footer on all your pages because they're repeated everywhere, We have a way of adding what's called a indexing pipeline extension, and we have examples on our documentation where this is a script that, in Python allows you to modify the content of an item, so the HTML body, for example, before it gets sent to the index. So we are able to give you a a little, script here that uses CSS selectors to strip away parts of the HTML that you don't need if you wanna clean up your index even further. Ali, this is super helpful, super insightful. Thanks to everyone that's, jumped on and and attended the live webinar and the questions, the feedback, the comments as well. Very helpful. Hopefully, it's helpful for you in terms of, really getting a better understanding of of Coveo and AEM and how those two work together. One last question, maybe we'll squeeze in. Where can we find the extension? The connector, meaning? Oh, the extension this exact thing that I'm showing here? Yes. I think the best ways on our server for site core documentation let me just find out here for site core. Remove HTML extension. That sounds a lot like the right keyword. There we go. Thank you, Google, and thank you to my Google kung fu. So this page here, if you search Kavero site core remove HTML extension, the first page here has a sample of everything that's needed and, of course, all the the explanations on it as well. So here, you see that we're gonna be removing, the a Caveo no index class that's been added and the footer as well. But you could add multiple CSS classes that'll all be removed. Perfect. In a response that this is really helpful. So, again, Ali, thanks again for sharing your expertise. Thanks again for everybody attending, and we'll, of course, send the recording, twenty four hours after, the completion of this event. Thanks again. Have a great day. Oh, I don't know if it's too late already, but we have a beta testing starting with the select clients as early as next week. So I I believe, maybe some of you are in who are attending today are gonna be part of that. Looking forward to having you in our beta and to to have you on the final release as well. Have a great day.
