Leveraging Sitecore Data Exchange Framework to access your Data

Eric Stafford (aka Sitecore Superman) and myself had the opportunity to attend the Integration Bootcamp at Symposium.  The day was divided into 2 sections: xConnect in the morning with Todd Mitchell (xConnect Product Manager) and Niels Kuhnel (Sitecore Architect) in the afternoon Adam Conn (Director of Product Management) did a deep dive into the Data Exchange Framework. In this post will I take you through some of my takeaways on Data Exchange Framework which I shared recently with the Atlanta Sitecore User Group.

What do we call it?

First, we need to clarify one thing and that’s how Data Exchange Framework is abbreviated. There appears to be some confusion in the community and that’s because Sitecore has a fondness for the letter x.

Adam Conn was insistent that if we left the boot camp knowing one thing – it should be: “the Data Exchange Framework is DEF, not DXF!! And that referring to is as DXF is like Sitecore with a capital ‘C'”.

Enough said!!

What is it?

  • A Framework Designed for transferring Data into and out of Sitecore.
  • It’s an ETL – Extract, Transform and Load the 3 steps of data integration.
    • Extract – you’ve got a source system you are extracting data from.
    • Transform – we change the data to be compatible with the target system.
    • Load – we load the data it into the target system.

DEF_ETL

  • It standardizes how we do data integrations with Sitecore.
  • It promotes re-usability by providing patterns and components that help you with your integration leaving you to focus on the other tasks associated with data integration.
  • It is highly configurable and extendable allowing you to integrate with almost any 3rd party system.
  • It enables Synchronization of Systems and processes.
  • It reduces the amount of effort required to integrate 3rd party systems.

Why Do we need it?

Every Sitecore implementation I’ve worked on has had an element Data Integration with 3rd party application.

What happens to our integration when a new version of Sitecore is released?

  • Is it going to work or will it require further development which inevitably would require full regression testing?

Who is going to able to support our custom integrations?

  • Are you always going to be the go-to person when there is an issue?
  • Or will it be built in such a way that anyone can easily pick it up and understand it and be able to resolve any issues?

What happens when requirements for the integration change?

  • Will the customer have to come back to the developer to make those changes?

There has never been a standardized way of integrating data with Sitecore and these are some of the questions we need to consider when building custom integrations.  The Data Exchange Framework helps answers these questions by providing a standard way of integrating with Sitecore. So when a new version of Sitecore is released you know your integration will be compatible or at least have an upgrade path. Following the standard set patterns and practices for implementing DEF makes supporting your integrations easier and transferable. Due to DEF implementation of being highly configurable when requirements change those changes could be, in most scenarios applied through modifications to the existing DEF configuration and not require developers to get involved.

DEF – Release Train

  • June 2016 – Version 1.0 released – For Sitecore 8.1 Update 1
    • Fully configurable synchronization processes and data mapping
  • August 2016 – Version 1.1 released
    • Improved logging and troubleshooting features
    • Improved performance and reliability for synchronization processes
    • Bug fixes
  • December 2016 – Version 1.2 released – For Sitecore 8.1 update 1 or later
    • Improved logging and troubleshooting features
    • Improved performance and control over synchronization processes
    • Bug fixes
    • Support for Sitecore on Azure
  • February 2017 – Version 1.3 released
    • Improved control over work queue processing
    • Improved feedback when stopping pipeline batch that is running
    • Added support for multiple languages when working with Sitecore items
    • Bug fixes
  • April 2017 – Version 1.4 released
    • Usability enhancements
    • Work queue enhancements
    • Value mapping enhancements
    • SDK for provider developers
    • Bug fixes
  • August 2017 – Version 1.4.1 released
    • Usability enhancements
    • Work queue enhancements
    • Value mapping enhancements
    • SDK for provider developers
    • Bug fixes
  • October 2017 – Version 2.0 released – For Sitecore 9
    • Performance and API improvements.
    • Additional Providers

What Providers are available OOTB?

With DEF 2.0 Sitecore has updated the existing providers so they are compatible and released some new providers:

These providers offer a great starting point to understand how the providers work and help you build your own providers if necessary.

What do you need to get going?

In order to get up and running with DEF, you will need to install it.  This is done through Sitecore packages.

  1. Download and install the framework
    • this can 5-10 minutes to install as there are a lot of Sitecore templates and items to be installed.
    • once installed if navigate in Content Editor to Sitecore > System you will notice a new node ‘Data Exchange’.  This is where you can create new Tenants and configure your data integrations.
    • a node is also been added to Sitecore > Settings > Data Exchange – this is where the various configuration options for the framework itself are located.
  2. Download and Install the providers
    • these are installed separately.
    • they are made available as separate packages and that makes it easier to make updates to individual providers.
    • you can install all the OOTB providers or only the ones you need.
  3. Get Busy with configuration
    • now that its installed you need to configure DEF so that it knows about your data integrations.
    • there is a lot to be configured and when you first dive into the various settings it can seem a bit overwhelming.

Framework Components

It is really helpful if you have a basic understanding of the various framework components that you’ll need to configure. The configuration can seem a little overwhelming initially, but once you have an understanding of these components then the need for all the configuration makes sense.

defconfigcomponents_st

  • Tenant – is used to organize and isolate settings so that multiple configurations can coexist.
  • Endpoints – Allow you to define the Source and Destination endpoints.
  • Data Objects – These are the objects you are going to read data from and to.  For example, if your target system is Sitecore then you need to create a Sitecore template item to put the data in.
  • Value Accessors and Accessor Sets – values accessors are like the property getters and setters in a C# class. They associate the component used to read a value with the component used to write a value.  A value Accessor Set is used to model an object that can serve as a source object or a target object.
  • Mappings – allow you to map source values with target values and apply rules and tasks for transforming those values if necessary.
  • Pipelines – are a collection of pipeline steps that run in a specific order and each step performs a specific task. Each pipeline has a pipeline processors associated with it. A pipeline processor implements the logic to run a pipeline. Pipelines are similar to Sitecore pipelines with processors and context.
  • Pipeline Context –  is used to pass information between the different pipeline step processors that are run when a pipeline is run. When a pipeline is started, a pipeline context is created. When a pipeline step processor is run, this context is passed to the processor. The same pipeline context is passed to each processor. This provides a way for data to be passed from one processor to another.
  • Pipeline Batch – a pipeline batch is like a unit of execution for a pipeline in the DEF. these can be executed manually, through a Sitecore scheduled task or remotely using a console app or Windows service using the Data Exchange Framework Remote SDK.

These components are covered in depth on the Data Exchange Framework Component reference documentation.

Demo

During the user group, I did a quick demo utilizing the SQL Provider – to read from the customer table in Microsoft’s example Northwind database and create items in Sitecore.

def_sqlcustomerdemo3

I’ll walk through the necessary configuration required to set up this integration and some other cool features  in a follow-up post.

Building Custom Providers

As well as the OOTB Providers Sitecore you can build your own custom providers.  Sitecore has provided some good resources to help you get started. However, all these resources are currently for DEF 1.4.1 and below as they have not yet released the documentation for DEF 2.0.  But they are still a valuable resource to help you get started understanding the principles and patterns required to create your own provider. So go ahead and check out the Developers Guide for 1.4.1 and the API Guide.

Sitecore also provide the Data Exchange Framework SDK to help you create your custom providers. Once you’ve developed your custom provider you then need to create all the templates and configuration items required for DEF to support and use your provider.  The SDK provides tools to helps you with this and does most of the mundane work for you to make it much easier.

There are some good examples of custom providers online I’d encourage you to check these ones out:

Before you dive into and start creating your own providers I’d urge you to look at the existing OOTB providers as you can extend these existing providers and perhaps reuse a lot of what Sitecore have already implemented.

Well, I hope this has provided some helpful pointers to get you up and running with DEF. I know I’m really excited what Sitecore is doing with it and can’t wait to start implementing it in future integration projects. Look out for my followup posts where I’ll walk you through utilizing the SQL provider, configuring the verification database and run through the setup of xDB to xConnect migration toolkit.

Sitecore 9.0 SIF – Windows 8.1 & Server 2012 Gotchas

While attempting to install Sitecore 9.0 on a Windows 8.1 machine I ran into a few gotchas I thought worth sharing.

Gotcha #1 – Powershell Version

SIF requires Powershell 5.1 or later not 5.0 as stated in the install guide Section 2.3.2.

Sitecore9powershellerror

Sitecore Support have stated the documentation will be updated to show the correct prerequisites, i.e. PowerShell 5.1 instead of 5.0.

Gotcha #2 – Sitecore Fundamentals Not Supported

Having upgraded powershell I happily and very eagerly carried on. Util my install script hit another error:

SIFFundamentalissue

I checked my the xconnect-createcert.json settings and everything looked fine and I could see Signer as one of the params specified for the NewSignedCertificate task:

"CreateSignedCert": {
// Create a certificate signed by the root authority.
"Type": "NewSignedCertificate",
"Params": {
"Signer": "[GetCertificate(variable('Root.Cert.DnsName'), variable('Root.Cert.Store'))]",
"Path": "[parameter('CertPath')]",
"CertStoreLocation": "[variable('Client.Cert.Store')]",
"Name": "[parameter('CertificateName')]",
"DnsName": "[parameter('CertificateName')]",
"ErrorAction": "Continue"
}
}

I took a closer look at the script New-SignedCertificate.ps1, part of Sitecore Fundamentals module. This calls a Windows Cmdlet: New-SelfSignedCertificate, however the version of this cmdlet on Windows 8.1 and Server 2012 does not have a param called Signer, hence the error.

Pay close attention to the install guide!!

The IIS Requirements(Section 2.1.1) for Sitecore XP 9.0 Install guide states IIS 8.5 is supported:

hostingrequirements

But the Sitecore Fundamentals module dependency, used to generate the security certificates automatically, does not support IIS 8.0\8.5 and this is mentioned later in the Install Guide (Chapter 5.1):

important

To get around the issue – you need to generate the certificates manually and then continue with the installation. Alternatively you could extend SIF and call your own version of New-SignedCertificate.ps1 to handles signing of certs for Win 8.1 & Server 2012 – that’s the beauty of SIF.

Hopefully Sitecore will update the guide and make the details of this limitation clearer.

Sitecore Symposium 2017 is here!!

With Sitecore Symposium 2017 about to kick off, the excitement is building. Everyone and anyone that has ever touched Sitecore knows about the Symposium.  If you haven’t then you are probably only starting out or have recently been introduced to Sitecore.

So whats the big deal? You might ask!!

Well, it’s a probably a bit like what the Oscars are to the Film industry except instead of red carpet we have a red logo that’s instantaneously recognizable. You won’t see any of Hollywood’s celebrities here either… Erm, actually that’s not entirely true!! This year we will be joined by Mark Hamill aka Luke Skywalker who will be sharing an insight on playing his famous Star Wars character, and more recently the Joker, also his career as a voice actor and how he managed to establish a whopping 2 million followers on social media.  Okay, so Mark may be the exception if that are other celebs I don’t think you’ll be that interested!! That’s because the Symposium attracts people in a completely different league.  These are some of the greatest minds and thinkers in business, marketing, and the technology industry today.

People from some of the worlds leading companies, who are utilizing Sitecore Experience Platform to help promote and build an online presence.

It attracts Sitecore Partners from across the globe, the implementation and technology specialists who help the Sitecore customer’s dreams become a reality.

So why are we gathering?

We share a similar Passion whether it’s for the Sitecore Experience platform itself or the end goal of what it can achieve.  The Symposium offers a great opportunity to learn about the upcoming release and exciting new features it has to offer.

We’ll hear about and share our experiences of how it’s been used and any tools, tips, and tricks that when put into practice help ensure we get the most from the platform.

It’s about connecting with people

Sitecore has such a rich community of professional people who do so much to help cultivate an online environment where experiences and insights are shared. When I first started out as a Sitecore developer this really set it apart from other CMS platforms I had used. I’m excited to be able to put some faces to twitter handles @adc_sitecore, @AgileStCyr, @Alexshyba, @briancaos, @DanSolovay, @jammykam, @Kamsar, @KayeeNL, @markstiles, @MichaelWest101, @mikeedward82, @Seanholmesby, @tbraga01. This is just a handful of the contributors and there are many more who have helped me along the Sitecore path of discovery.

Spending time with customers, sharing in their excitement of what the future of Sitecore means for their business and how we can help them implement those new features.

Meeting the technology partners that help deliver solutions for our customers. Technology partners like CoveoDigizuite and uCommerce.

Catching up with friends and colleagues you’ve not seen in a while over a cold beer!!!

You might even see some well known Sitecore legends or rockstars you might feel the urge to try and snap a quick #SitecoreSelfie:

What happens in Vegas doesn’t stay in Vegas!!

The excitement will be hard to contain. Everyone will want to share it with their colleagues and friends that couldn’t make it. Throughout the Symposium and afterwards there will be a plethora of Sitecore feature updates hitting the social media channels from tweets, blogs, Sitecore Stack Exchange and Sitecore Slack. Stay tuned.

When the lights are turned off and the door closes on that last presentation and we all go home, we will take that excitement with us and a renewed sense of what the future holds for our Sitecore implementations.

We will leave with some new friends and strengthened working relationships.

Let’s do this!!

 

Sitecore PXM & Adobe InDesign Compatibility Gotcha

While visiting with a client recently, there was a slot on the agenda to discuss Sitecore Print Experience Manager (PXM) and how its potential as part of their Sitecore ecosystem. Early that morning while sitting in my hotel room, I thought wouldn’t it be great if I could fire up a quick demo, for the benefit of anyone who wasn’t familiar with the product and show them it in action using actual content from their Sitecore instance.

The customer is currently running Sitecore 8.1 update 3 (rev. 160519).  So I headed over to Developer Portal Downloads to locate a compatible version of Sitecore Print Experience Manager (PXM):

Sitecore PXM Version Sitecore Compatibility
Sitecore PXM 8.2 rev. 170509
(released May 16, 2017)
Sitecore 8.2 update 3
Sitecore PXM 8.0 update 2
(released Jan 12, 2017)
Sitecore 8.0, 8.1 and 8.2 (and also Sitecore 7.1 – 7.5)
Sitecore PXM 8.0 update 1
(released Dec 11, 2015)
Sitecore 8.0, 8.1 and 8.2 (and also Sitecore 7.1 – 7.5
Sitecore PXM 8.0
(released Feb 12, 2015)
Sitecore 7.1 – 7.5

I grabbed a copy Installation Guide for PXM 8.0 update 2, which is pretty meaty at 32 pages.  There are two flavors of PXM setup you can perform, the install guide talks you through both:

  1. Individual Workstation – enables you to connect to the Sitecore PXM repository and use content within your documents using Indesign or InCopy.
  2. Automated Document Service – use Sitecore content in automatically generated Indesign documents (requires Indesign Server).

For the purposes of the demo, I was only interested in setting up the individual workstation using InDesign.  I’m not a designer and don’t use InDesign so I’ll need a copy of that too. The 30-day trial will do nicely.

To setup Sitecore PXM you need to:

  1. Download and install the PXM Core Package. This includes:
    • Sitecore items related to publishing (templates, rules, field types, and so on)
    • Web service for InDesign Connector
    • Http handler for InDesign Connector
    • Publishing Engine Library
    • Configuration (base configuration file and web service)
  2. Configure PXM
  3. Download and Install the InDesign Connector.

Compatibility Gotcha

The only available version of the InDesign Connector for PXM 8.0 update 2 is CC 2015, but my trial version of Adobe InDesign is CC 2017. So I tried the CC 2015 connector but it didn’t work.

Now PXM 8.2 does provide a connector for CC 2017 as well as CC 2015 so I tried it,  unfortunately, that didn’t work either.  By this stage, I was pretty much out of time to get my demo up and running and wishing I had just gone for breakfast and enjoying some bacon instead.

Shortly after our meeting, I checked with Sitecore Support on the compatibility of PXM 8.2 InDesign Connector CC 2017 with Sitecore 8.1 (rev. 160519). It turns out the “InDesign Connector CC 2017 was created specifically for the PXM 8.2 release, and other PXM versions are not compatible with it.”

So what are my options?

I do have some options if I wanted to push ahead and complete the setting up of the demo:

a. Downgrade Adobe Indesign to CC 2015.  Is that even possible? According to Adobe support, InDesign 2015 CC is not available as a trial version. However, if you purchase an InDesign license you can download InDesign 2015 CC. I could get a License for a month while I play with PXM.

b. Upgrade my Sitecore dev instance Sitecore 8.2 Update 3.

c. Fire up a vanilla Sitecore 8.2 update 3 or later and install the latest version of PXM 8.2 with InDesign CC 2017 connector.  I could install the Launch Sitecore package to provide some rich content for the purposes of the demo.

Lesson Learned

As you can see, if you are thinking about using Sitecore PXM there are some compatibility restrictions based on the version of Sitecore and the Adobe CC Product version your designer/content authors can use.  You might also want to consider the features the various PXM versions offer too.

Oh! And plan ahead for demos.

Useful PXM Material

Download Sitecore Support patches directly: An Urban Legend?

How often have you had to install Sitecore support dll and wondered where on earth do I download it from? I know I have.

My good friend and MVP Ian Graham did a pretty good job at answering this question on Sitecore.StackExchange back in November 2016, excerpt included for reference:

You can try searching for it here:

https://kb.sitecore.net

The dll will have a reference number associated with it Sitecore.Support.xxxxx.dll.

For example: https://kb.sitecore.net/SearchResults#term=442487

If you can’t find it just raise a ticket with Sitecore and they will provide you with the dll.

Also recently released is this Github project containing source code for support fixes

https://github.com/SitecoreSupport

Yes, you can search and download support dll’s from https://kb.sitecore.net but only if the support patch has been written up and article relating to it exists on the KB.

If you can find it on the KB then you will be provided with a link to the dll and any supporting config which you can easily download.

What about https://github.com/SitecoreSupport?

If you have recently tried to access a support dll on https://github.com/SitecoreSupport, using a path you were previously given by Sitecore Support you will receive a 404 error.

Why? I asked the question recently on Slack and Rob Earlam, Technical Evangelist @ Sitecore answered: “We don’t have Support DLL’s on GitHub anymore, if you need a specific fix then you’ll need to open a Support ticket yourself and make the request there.”

So, there you have it – if you cannot find the Support patch publicly available on Sitecore’s KB you need to raise a support ticket requesting the support patch.  Any other method of accessing a support dll is most likely an Urban Legend!!

Benefits of Coveo Cloud vs On-Premise

I was recently asked by a client about the benefits of Coveo Cloud vs On-premise. So back in 2016 Coveo released of Coveo For Sitecore v4 which coincided with the release of Coveo Cloud v2, this now provided the option of hosting your Coveo for Sitecore index in the cloud as well as on-premise.

Hosting your index in the cloud has some obvious benefits:

  • Speed – developers can be up and running with an index in the cloud in 30 minutes or less.
  • Reduced Infrastructure – you don’t need to procure additional servers for hosting your Coveo indexes across all your various environments.
  • Easier – A Cloud installation of Coveo for Sitecore is easier to maintain than an On-Premises one, as mirrors and redundancy are handled by the Cloud platform.
  • Availability – Cloud architecture is distributed across multiple availability zones and geographical regions for data resiliency and high availability.
  • Scalability – Coveo Cloud solutions are constantly monitored for performance, and measured against performance thresholds and target response times. Built on dynamic processing power environments and thanks to its scalable architecture, Coveo Cloud is able to seamlessly scale computing systems to maintain optimal user experience.

Cloud Only Features

As you can see from Coveo For Sitecore Edition Comparison Coveo Cloud offers features that are only available in the cloud:

  • Machine Learning Relevance Tuning – provides users with a more relevant search result set, based on previous users search interactions. The value is end users can find the content they are looking for much easier and driving them into that sales funnel quicker.
  • Machine Learning Query Suggestion – means users could be presented with alternate searches based upon aggregated, past user behavior. The value here is we get more interaction on the search page from users who might otherwise abandon the search.
  • Machine Learning Recommendations – provide accurate recommendations for related content that reflect what other users making similar searches have also viewed. The value here is you create more opportunities to cross-sell to the user.

Before we take a deeper dive into these features lets first mention the underlying technology behind of these features: Coveo Machine Learning (Coveo ML). This is a cloud and analytics-based machine learning service that continually analyzes search behavior patterns to understand which results and content lead to the best outcomes, such as customer self-service success. In addition to intuitively enhancing search results so the best-performing content always rises to the top, Coveo ML automatically delivers the most relevant search results and proactive recommendations with minimal effort.

Coveo ML continuously learns the evolving user activity and rapidly adapts recommendations following changes such as seasons, new product adoption, or industry news.

CoveoCloudPlatform

Behind the scene, Coveo ML features actually process usage analytics data to build and maintain complex Coveo-managed predictive models to make recommendations.

Now because Coveo ML relies on usage analytics data to start providing relevant recommendations for search results and query suggestions it requires a history search data of at least 3 months.

The Coveo ML Relevance Tuning (or Automatic Relevance Tuning ART) feature analyzes user behavior patterns from many usage analytics search visit actions (such as query reformulation, clicked results, if a support case was submitted) to understand which clicked results and content lead to successful outcomes such as self-service success, and automatically adjusts future search results so that the best performing content always rises to the top.

ART excels with popular and ambiguous queries where users enter only one or two terms. ART is robust to common typographical errors and learns implicit synonyms. When your Coveo index content includes secured items, ART queries the index to ensure to only recommend items the user performing the query is allowed to access.

In practice, ART boosts the ranking weight of recommended items so that they appear among the top search results.

CoveoART

The Coveo ML Query Suggestion feature recommends significantly more relevant queries to users as they type in the search box. The original usage analytics query suggestions are limited to top queries in which the typed characters exactly match a suggested query part. The Coveo ML Query Suggestions feature:

  • Identifies typed characters exact, partial, or fuzzy matches anywhere in any individual keyword appearing in any order.
  • Stems query suggestion keywords to remove duplicates.
    Offers the most relevant recommendations by ranking query suggestions considering:

    • The number of times the query was performed.
    • The degree of matching.
    • The query performance based on the Relevance Index and Click-Through usage analytics metrics.
  • Only considers queries performed at least 10 times and for which at least 5 had a search result clicked to eliminate outliers.

In the end, suggested queries are surprisingly tolerant to typos and get better as your usage analytics data set size increases.

coveoquerysuggestion

The Coveo ML Recommendation feature learns from your website user page and search navigation history to return the most likely relevant content for each user in his current session. The recommendations can be interpreted as “People who viewed this page also viewed the following pages”.

The recommendation algorithm is based on the co-occurrence of the events such as page views within a user session. When two events abnormally frequently co-occur within sessions, the algorithm learns that they are linked. When one event is seen, the model recommends the other.

coveomachinelearningrecommendations

Query Pipelines

Another great feature of Coveo ML is query pipelines. A query pipeline is an alternate set of rules or models that can be defined to modify queries.  You can take advantage of query pipelines when you have more than one search interface with distinct users and purpose and want to apply different rules or models for each.

The query pipeline rules can define:

  • Thesaurus entries – replacing or expanding queries with synonyms.
  • Featured results – items appearing at the top of search results when the query meets a specific condition.
  • Stop words – ignoring unimportant words in queries.
  • Ranking rules – modifying the order of results matching specified expression and condition.
  • Ranking weights – establishing the impact of ranking factors when establishing the order or results.
  • Triggers – establishing actions to be performed in the user search interface following an event when a condition is met.

The rules can be applied on the query before it is sent to the index (like thesaurus and stop words) or on the results returned by the index before they are sent back to the search interface.

The query pipeline models can define:

  • Automatic relevance tuning – optimizing search results relevance based on user search behavior.
  • Query suggestions – suggesting queries to users as they type in a search box.
    Recommendations – predicting and proposing the most relevant content for the current user in the current session.

Query pipelines are easily managed in the Coveo Cloud administration console for your cloud organization.

Coveo Cloud has impacted On-Premise

The Analytics module helps Content managers measure and improve what users are searching for and accessing. Essentially, events performed by end-users in Coveo search interfaces (and optionally in other web page types) are recorded by the usage analytics service in your Coveo Organization. You can then use the administration console Analytics pages to learn what end-users do by reviewing usage events, metrics, and dimensions in explorers and dashboards.

While the Usage Analytics module is available in on-prem the module has been deprecated and is no longer maintained by Coveo.  Instead, to use this module with an on-premise index Coveo recommend using Coveo Usage Analytics cloud service to connect to and monitor you on-premise search usage (see scenario 4 of the Coveo Cloud usage analytics use cases).

Coveo Cloud Concerns

Let’s address some concerns you might have when considering Coveo Cloud:

Q. How secure is data in the cloud?
A. Coveo is dedicated to the security, privacy, and integrity of their customers’ data. Coveo perform regular automated and manual application security tests and patch any potential vulnerabilities or bugs. Data processed by the Coveo Cloud is encrypted both at rest and in transit using best-in-class industry standards. Coveo’s commitment to security is affirmed by their SOC II examination and HIPAA compliance.

Q. Who owns the data in the cloud?
A. Currently the cloud solution is hosted in US East with backup in West so you will have to accept that your data is in the US. Although the product manager (Simon Langevin) confirmed that in the near future, hosting your local Elastic cluster and connecting Coveo Cloud on top of it could be a possibility.  Also Coveo is very transparent with their procedures pertaining to data retention and destruction that are in place and are also audited.

Q. How do you measure the success of Coveo Cloud ML features?
A. You can use the following 2 traditional marketing metrics to evaluate how successfully your community search connects users with the information they need to solve their specific issue: Click-Through Rate (CTR) – The percentage of users clicking on any link on the search results page. Higher values are better, meaning that users are more often opening search result items following their queries.

  • Click-Through Rate (CTR) – The percentage of users clicking on any link on the search results page. Higher values are better, meaning that users are more often opening search result items following their queries.
  • Average Click Rank (ACR) – Similar in concept to page rank, this metric measures the average position of opened items in a given set of search results. Lower values are better, as a value of 1 represents the first result in a list.

Coveo ML optimizes search results and query suggestions, and will, therefore, improve CTR and ACR metrics and contribute to increasing self-service.

Q. Can I separate my Production, Test and Development environment indexes in the Cloud?
A. Yes, all the Coveo for Sitecore cloud plans offer a Production and Sandbox cloud organization. For development, you can either purchase an additional organization or use trial organizations. The trial organizations are only valid for one month, but creating a new one is very easy.  This allows each developer to have their own organization to use during development.

Q. What happens if I go over the monthly query limit on Cloud Enterprise or Pro?
A. You should speak with your Coveo Client executive regarding the pricing structure for exceeding query limit as this depends in your license term. It is helpful if you have an idea of the anticipated monthly queries.  But don’t worry you won’t experience and degradation of service as Coveo will not block queries should you exceed the thresholds.

Resources

Coveo For Sitecore Edition Comparison

Coveo Machine Learning

Coveo Machine Learning Features

Coveo Machine Learning FAQ

Managing Query Pipelines

How does Coveo Secure your Data and Services

Best Practices for deploying Coveo for Sitecore Cloud

How to Backup and Restore your Coveo CES Index Configuration

There have been several occasions when I have had to copy a Coveo index from one environment to another.  From standing up and lower Test environment or helping onboard a developer setup a local instance.  It is also recommended you take regular backups of your CES config files, as you can rebuild the entire index from a restored copy of the config, should your index ever become corrupt.

Steps

  1. Connect to the Source Coveo Master Index Administration tool (http://localhost:8081 by default) and put the index in read-only mode and backup the entire contents of the config directory (C:\CES7\config – by default).  Putting the index in read-only mode will prevent further content changes to the index but will still enable search queries to return results.   CESreadonlymode
  2. Put the Source Index back into read-write mode.
  3. On the destination environment open the local services and locate and stop the CES7 service.  Restoring a backup of the CES configuration files while indexing or while in read-only mode will most likely result in a corrupt index.CESService2
  4. Delete all the files and folders under the destination index directory (C:\CES7\ – by default).  This is necessary as the index must be rebuilt from the configuration files.
  5. Recreate the destination config folder in the destination index location (C:\CES7\config – by default) and restore the backed up config into this directory.
  6. If your destination index is installed in a different location, for example D:\CES7 you must edit the config.txt and replace all occurrences of the index path with the correct location.
  7. Restart the CES7 Service.
  8. Rebuild the sources.

Resources