Publish Languages are missing from Sitecore Publish Dialog

Sitecore Version10.1.1
Publishing Serviceremote
Indexing Serviceremote
Current Production setup

So you wanna publish but you don’t see languages in the Publish Dialog box! Never fear; there’s a quick fix for this.

A similar error is found at: and a thorough answer is provided. It turns out that the resolution fixes this exception as well.

Here are the symptoms:

Symptom #1

The publishing languages are missing from the Publish item dialog box!

Where are the Publishing languages? They were there yesterday!

Symptom #2

In the Publishing log on the CM server (or indexing server), there’s an exception about not being able to resolve the publishing service’s url.

"The remote name could not be resolved: '[publishing service url]'."

Publishing log on CM server or Indexing server

Symptom #3

In the Publishing log for the publishing server, there’s an exception regarding the missing languages! OK! We are getting somewhere!

System.ArgumentException: publishLanguages should not be empty.
Parameter name: publishLanguages

Publishing service log – System.ArgumentException: publishLanguages should not be empty.


It seems that things have gotten corrupt in the Temporary ASP.NET folder so if you clean that up on your Publishing Service server, you should be all set.

The path is: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files

You’ll need to stop IIS before, delete the contents of this folder and start IIS back up.

Recent media library functionality not working

While upgrading from Sitecore 8.2 to Sitecore 9.3, I experienced an issue that I couldn’t track down.

I’ve uploaded several media items and, after each one, I tried to use the handy dialog where you can select the following:

  • Recently uploaded images
  • Recently uploaded vidoes
  • Recently uploaded by me

Unfortunately, all of these options revealed “No items found” and nothing was in any of the Sitecore logs.

Media Library “Recent items” dialog not working

I submitted a Sitecore to Sitecore Support to track down the issue.

After providing required documents and such to the support team, they responded that this is an existing bug.

It turns out, someone accidentally deleted the Home item that comes with the installation (/sitecore/content/Home). This causes the “Recent Items” to not work in the Media library.

SOLUTION: Get a package of the Home item from a clean install and install the Home item!

Media Library “Recent items” dialog working!

Bug #359966 (select media dialog not showing anything if default Home item is deleted)

Thanks to Sitecore support for finding and getting this fixed for us.

Happy Sitecoring!!

Takeaways from Sitecore Symposium 2019 – Orlando

symposium 2019

I’m always happy to attend Symposium; to see familiar faces and meet some new ones. We gathered for a second time in Orlando’s Swan and Dolphin Resort and the weather cooperated once again for our evening adventures.  Here’s a quick rundown of some of my highlights of the conference:

Technical Keynote:  Emily Freeman

Emily is a world-renown expert on DevOps.  My main takeaway from her keynote is that collaboration between teams is key and that no team is more important than another.  It’s important to have trust, rapport, respect, and diversity between teams with the freedom to be able to share new ideas.

While some people are touting that DevOps is dead; Emily is taking a firm stand that it is not.  “DevOps is a journey” and there’s always room for improvement.  For instance, after delivery, focus on reliability via availability, latency, throughput, fidelity and durability.

Balance for Better:  Mentoring:  Kelly Brennan and Amy Turrin

I had a chance to meet with Kelly and Amy a few days before the conference started, to get an understanding of what their session on mentoring is about.  It sounded so interesting that I attended.  As part of the “Balance for Better” initiative, these women are providing resources for gender minorities to have a better chance at succeeding in tech.

They are betting that having an application to support matching mentors from the community with newer people joining the tech ranks will promote less drop-out in tech by women and minorities.  Mentees can seek advice, develop their leadership and tech skills, network, and it can help with career advancement.  Soon, Amy and Kelly will be releasing their mentor/mentee application.

Netflix Next with Sitecore Cortex:  Deepthi Katta and Richard Leiva

(My co-workers!) Deepthi and Richard introduced Cortex in a tangible way, by using Machine Learning to choose recommended movies from within Netflix.  Primarily, they touted that if they can use Cortex in a practical application, there’s no stopping you from doing the same.

They explained that Handlers order the tasks and sort the dependencies of the tasks, Agents organize and call the proper workers to perform the task at hand.  Workers perform the task either as a Distributed worker (in parallel) or Deferred (just called once, no parallel actions).  They chose to use Sitecore goals to determine their Netflix recommendations.

New Editing Experience:  What it means for Developers

The focus of this year’s conference was definitely Content.  Sitecore asks … how can we improve the experience for content editors?

…by introducing new tools, of course:

  • Horizon – new page editing
  • New Launchpad – user personalized
  • Zenith – accessing Sitecore content in a headless manner
  • Auto-personalization Insights – AI-based insights using xDB (and Sitecore AI SaaS)

The focus of this session was on Horizon’s features.  Horizon will be released with XP9.3 and will be an opt-in, SIF install.  It will include simple page editing, preview device simulator, and analytics insights.  9.3 will allow use of Horizon on single sites.  In the Summer of 2020, Horizon will support the ability for developers to extend Horizon.  Examples of extensions include switching content from left to right, to right to left or using an instant translator via client-side javascript.

Future releases will include the ability to use Horizon with multi-site configurations.

Facial Recognition and AI

Why facial recognition?  It is a key way to identify a person in a non-intrusive format; it’s cheap and simple and the person is recognized as an individual, not a login or group.  Is it controversial?  Sure.  It is important to get consent from the user.  It can be used online but also in brick-and-mortar.  As an example, imagine a smart bookshelf that provides you personally with book suggestions because it recognizes your face and has a history of your preferences.

Your machine learning model needs to be trained.  It can be trained through typical event tracking but with facial recognition, it can also be trained via emotion analysis.  We can now use text analysis and also facial reactions to to match the emotion of the face.

You see in the near future, instant recommendation feedback, bookstores with heat maps that prompt the store owner to re-organize the flow the the store based on ML and using emotion to drive the customer to products that align not only with their identified purchases but also their emotion.

Sitecore AI

Consumers are demanding that companies know when to contact them and ALSO when to NOT contact them.  This requires machine learning.  At present, Cortex is the only supported way to connect Sitecore 9.x to a machine learning service. Coming this December, there will be one more way.  Sitecore AI, an auto-personalization, machine learning SaaS will be available as an add-on.

This service, independent of Cortex, provides machine learning and auto-segmentation customized to Sitecore.  Sitecore AI has the ability to create marketing segments or use existing ones.  Site content is auto-tagged using text and image analysis.

The site visitor patterns and tagged content are used to create the segments.  All page components with auto-personalization turned on automatically adjust to the visitor based on segmentation.   Sitecore AI is best used with sites that have at least 12 million unique visits per year.  As of this writing, there are no announced plans to phase out Cortex.


Chicago Sitecore Symposium 2020

Looking forward to a midwest Symposium next year!

Check out some online content from Symposium 2019.


Sitecore Symposium 2019 – Women of Sitecore Speak! – Day 3

Thursday, November 7th – DAY 3

If you haven’t read about the Day 1 Women of Sitecore sessions or Day 2 Women of Sitecore sessions, start there!

There are two featured Women of Sitecore presenting on Day 3, Jill Grozalsky and Hiral Shah.  I sat down with them (well, virtually) to find out more about their sessions.

Proof of concept: Helping organizations overcome personalization paralysis and reach the promised land

When:  Thursday, 9:40 – 10:25am

Craig Burkart
Senior Manager, Interactive, Ecolab
Jill Grozalsky
Director Digital Strategy, Brainjocks
Sitecore MVP

We have all heard of the personalization powers of Sitecore.  Is your site using this feature to its potential?

“Sitecore is so strong as a CMS and there’s so much functionality available that people often struggle figuring out how and where to get started because personalization can be an unproven practice,” says Jill Grolzalsky of Brainjocks.

Last year at Symposium, Grolzalsky, along with Craig Burkart of Ecolab, presented a business case to move Ecolab through digital maturity phases that maximize the use of the Sitecore platform. “This year’s presentation is a continuation of that. We’ve really done a great job of following the roadmap that we agreed upon on, starting with baby steps,” adds Grolzalsky.

In this session, you’ll see how to go about ‘starting small’ in personalization and then building off that foundation.

Who should attend?  Sitecore clients and partners should attend “because there’s really no documentation around strategic initiatives like this; they are addressed in this session,” Grolzalsky points out.

More details about this Session


HIPAA compliance in Sitecore

When:  Thursday, 10:45 – 11:30 am

Dan Persson
CTO, MedTouch
Hiral Shah
Senior .NET Developer, MedTouch

Being in the healthcare industry means protecting your patients’ privacy and legal compliance is a must.  Health Insurance Portability and Accountability Act  is a law that establishes confidentiality protections for medical records of patients and other health information. Dan Persson and Hiral Shah from MedTouch will be providing many tips on security and compliance for your web presence. However, this session isn’t just for healthcare sectors.  It’s for any industry “because we are showing some options which we are using or practicing in terms of security or making your data more secure, in general,” says Hiral Shah.

We are “mainly focused on personal information which is stored electronically so with this presentation, we are trying to demonstrate certain ways that we have implemented or we are implementing now as a healthcare agency,” adds Shah.

Who should attend?  Healthcare industry AND …  It’s for developers and DevOps interested in providing top-level security for your (or your client’s) user data.

Don’t miss Day 1 and Day 2 posts!


Sitecore Symposium 2019 – Women of Sitecore Speak! – Day 2

Wednesday, November 6th – DAY 2

If you haven’t read about the Day 1 Women of Sitecore sessions, start there!

Sitecore Symposium 2019 is next week and I did some hand counting and speaker profile research; 80%* of the Symposium 2019 speakers are male. The tech industry is famously male-dominated so I’m actually impressed that women speakers are represented at 20%.  In 2018, Bloomberg found that only 30% of speakers at any type of conference were women.  Women in tech have a ways to go to be represented equally.  At Symposium, be on the lookout for my 50/50 pins that can apply to conference speakers, equal pay, or any other scenario where women aren’t yet represented equally. It’s meant to be an awareness tool for both men and women.

50 50

Nonetheless, this post is about our wonderful Day 2 Women of Sitecore speakers who WERE chosen to speak!

Day 2 Women of Sitecore speakers include Una Verhoeven, Deepthi Katta, Amanda Shiga, Ishraq Al Fataftah, Alison Sainsbury, and Rachael Ormiston.

*percentage is approximate


Marketers’ guide to getting started with Sitecore Cortex personalization suggestions

When:  Wednesday, 10:30 – 11:15am

Una Verhoeven
Managing Partner, AmpleEdge

Are you curious what powers Sitecore Cortex holds straight out of the box?  What will keep your visitor on your site?  The answers lie in the “Marketer’s guide to getting started with Sitecore Cortex personalization suggestions.”  Sitecore MVP Una Verhoeven will meld together your business value and customer site-browsing expectations.

In this culture of instant gratification, users visiting your site expect nothing less.  Visitors “are very well informed and they want everything fast and they expect to know everything up front … There are tricks to accommodate that; how to slow them down; how to grab their attention,” says Verhoeven and she will be sharing these techniques in her session.

Who should attend?  Cortex newbies, Marketers … AND Developers: “I don’t think there is such a difference as we think that there is between the marketers and developers, because in the end, the only way that you can get a positive outcome is if we work together … and understand marketers and their language,” adds Verhoeven.

More details about the session


What makes you trust me? Perspectives on trust in an age of privacy and digital caution

When:  Wednesday, 1:30 – 2:15pm

Ishraq Al Fataftah
CTO, Applez Tech

Rachael Ormiston
Director, Privacy Counsel, Sitecore

Alison Sainsbury
Senior Marketing Consultant, Sitecore

Amanda Shiga
Product Strategy, Sitecore

Luke Williams
Assoc. Director, Digital, Australian Catholic University

How can one trust what’s on the Internet?  When shopping around, what gives a customer the ‘warm and fuzzies’ when it comes to choosing one brand, product, service, or company over another?

That’s the focus of this panel, which includes several Women of Sitecore.  They will discuss diverse ways of building trust. “It’s becoming an increasingly competitive factor for organizations and certainly something that consumers are much more aware of than they used to be in terms of their data and privacy and how much they trust the organizations that they interact with,” says Amanda Shiga of Sitecore.

Joined by customer Luke Williams of Australian Catholic University, the panel is made up of a diverse set of background and disciplines that include perspectives from implementer and Sitecore MVP, Ishraq Al Fataftah CTO of Applez Tech, Sitecore SBOS team member, Alison Sainsbury, Amanda Shiga, Sitecore Product Strategy and Rachael Ormiston of Sitecore’s legal team.

Privacy and trust “has become such a topic of conversation. … and not just, finding checkboxes to meet baseline requirements and compliance. It’s about really building up that relationship of trust within your data governance and trying to find ways that make people want to partner with you,” says Ormiston.

Who should attend? If customer retention as it relates to privacy and trust is one of your customer’s concern, this is a must-attend session.

More details about the session


Netflix Next with Sitecore Cortex

When:  Wednesday, 1:30 – 2:15pm

Deepthi Katta
Technical Architect, Verndale

Richard Leiva
Senior Engineer, Verndale

Hunker down in your seat with your favorite movie treat and tune in!  Both Sitecore MVPs, Richard Leiva and Women of Sitecore advocate, Deepthi Katta, are using Netflix recommendations to show the powers of Sitecore in a less intimidating light.  They will encourage you developers and architects to look at problems from another angle and give reasons to consider using Sitecore Cortex out of the box.

“Sitecore Cortex is a hook which allows you to connect to any machine learning platform that you would hypothetically want to, but you don’t have to get all the ducks in the row before you start,” says Sitecore MVP, Deepthi Katta. After this session you will “gain that confidence and walk away that yes, if these guys can do it, so can I.”

Who should attend?
Here’s another one for Cortex newbies.  Architects and developers looking to weave in some Cortex in their design and implementation repertoire.

More details about the session


Sitecore Symposium 2019 – Women of Sitecore Speak! – Day 1
Sitecore Symposium 2019 – Women of Sitecore Speak! – Day 3


Sitecore Symposium 2019: Women of Sitecore Speak! – Day 1

Tuesday, November 5th – DAY 1

Sitecore Symposium 2019 is next week! I’m looking forward to hearing the freshest perspectives on our favorite application.  I’m also excited to regroup with friends.  Last year, several of us lady MVPs got together to form a Women of Sitecore panel for Symposium.  While getting to know these fabulous women on the panel, I left the 2018 symposium with more confidence and connections than any previous year!

Some of these extraordinary women are presenting at Sitecore Symposium 2019.  I had the pleasure of sitting down with them over the past few weeks to talk about their sessions.

Here are some interesting sessions by Women of Sitecore advocates, Liz Spranzani, Kelly Brennan, and Amy Winburn that take place on Day 1 (Tuesday, November 5th).


Session: Not Impossible: Accessibility for all
When: Tuesday, 1:30 – 2:15pm

Mick Ebeling
Founder & CEO, Not Impossible Labs

Ross Lucivero
Managing Director, LA, Verndale

Liz Spranzani 
SVP, Development,Verndale
(Sitecore MVP and member of the Women of Sitecore community)


Sitecore partner, Verndale has set out to push the limits of the hot topic, Web Accessibility. One of the leaders of this movement within the company is Liz Spranzani.  Clients “truly want to make what they’ve got online accessible to all their potential users,” says Spranzani.

Along with running client workshops to demonstrate how to go beyond standard compliance, Verndale has teamed up with inspirational partner, Not Impossible Labs, to strive to sculpt the Most Accessible Website.  Spranzani and Verndale were inspired by last year’s Symposium presentation by Mick Ebeling of Not Impossible Labs where they are all about “an inclusivity of finding ways to solve these absurdities in the world that prevent people from doing what they should be able to do.”

In this session, Liz Spranzani, Ross Lucivero (Verndale) and Mick Ebeling will feature accessibility factors to consider when building or redesigning your website.

Who should attend?  After listening to all of what is being covered in this human-interest presentation, I’d say that the benefits of attendance extend from Sitecore clients, XA, and front-end developers out to the back-end developers and marketers.

More details on the session


Session:  Balance for better: Building a mentoring community with Sitecore
When: Tuesday, 1:30 – 2:15pm

Kelly Brennan
Solution Architect, EPAM

Amy Winburn
Sitecore Architect, Focus Brands


Women of Sitecore pioneers and Sitecore MVPs, Kelly Brennan and Amy Winburn, pair up to introduce a new program launching during Symposium that fills a need to draw in and retain women in technology … Mentoring.

“We knew that we wanted to have a way of connecting people in Symposium; it’s one of the things that everybody’s spoken about,” says Brennan.  “Wouldn’t it be great if we could find mentors within the Women of Sitecore community and take advantage of the platform that we have at Symposium.”

The outcome of this session is to provide an ‘approachable’ environment for those just starting out in their tech careers or looking for more direction to meet up and get advice from others more advanced in their careers.  “[Mentoring] is open to anyone. I would love to get executives to sign up because I’m sure there’s a lot of people that want to be on that path. And that’s especially a hard path for women to take,” adds Winburn.

The targeted Mentees for this program are women and those who identify as a marginalized gender.

Who should attend? The session is not limited to specific disciplines. If you have interest in mentoring or see that your career lacks a support system, this is a great session to attend.

Also, if you’re new to Sitecore or Sitecore 9.2, you’ll see all the parts and modules used to build up this mentoring site.

More details on the session


Sitecore Symposium 2019 – Women of Sitecore Speak! – Day 2
Sitecore Symposium 2019 – Women of Sitecore Speak! – Day 3

Powershell Table output

So you wanna create a clean, readable Powershell table with Sitecore data and are a newbie to Powershell?  Here’s a tutorial for you.

It’s assumed that you already have Sitecore Powershell Extensions installed.  (This link shows you where to download from the Sitecore Marketplace and also a brief tutorial on SPE).


This powerful PSE command offers a table viewer which supports a multitude of functionality.  If displaying the data onscreen in a dialog is desirable, this is a good option.  Bonus! You can easily export your list as a CSV, Excel, HTML, JSON, or XML doc. and even filter.

Get-Item -Path master:\* | Show-ListView -Property Name, DisplayName, ProviderPath, TemplateName, Language

list-view basic

In the example above, the columns represented are standard properties available from within the Sitecore item.

Let’s do some customization

In the ListView table below, a table title, and some detail table information (in the yellow strip) was added.  Pagination is turned on with a page size of 10.

Also, not all the values in the columns shown are available directly from the Sitecore item.  Columns can be set up with ‘Expressions’ that can range from a simple variable value to an output of a function.

finish listview

To achieve the columns with custom expressions, functions were created and then called during the report building.  NOTE:  Make sure that Powershell has already read in the function (i.e. put the functions at the top), otherwise, it will not detect the function prior to building the report.

In the screenshot below, see two functions at the top that are used within the table report call.  Also, within the variable called ‘$props’ report metadata can be set.

showlistview example code.png

Objects built from reports

In addition, a [pscustomobject] can be built that has references to an array of items.

This is easily displayed with the Show-ListView command:

$newCustomObject | Show-ListView

That’s it!

For a complete list of properties, visit the Show-ListView explanation within the PSE documentation.


Language Fallback Gotchas Sitecore 8.2.x

So you say that you’ve implemented Sitecore 8 but are having problems with Language Fallback?  You may need one or more patches.

Scenario setup:

  • Sitecore 8.2
  • Languages:
    • en (fallback language)
    • de-DE
  • Language fallback type:  field-level fallback


  1. Create and publish an EN item with several fields populated.
  2. Check Solr (en item is present)
  3. Check site. (en item is present as a web page and within website search)
  4. Create and publish a de-DE version of the item.
  5. Check Solr (de-DE item is present but computed fields are not populated)
  6. Check site. (de-DE item is present as a web page BUT not in the website search)

DIAGNOSIS:  Computed fields (which are used in search) are not populated for de-de.


  • Create and publish an EN item and not populating any fields.
  • Check Solr (en item is present)
  • Create and publish a de-DE version of the item.
  • Check Solr (de-DE item is present)
  • Populate a couple of fields in the EN item and SMART publish both languages.
  • Check Solr (en fields are populated for item)
  • Check Solr (de-DE fields are NOT populated for item)
  • Publish using REPUBLISH both languages
  • Check Solr (en fields are populated for item)
  • Check Solr (de-DE fields are populated for item)

DIAGNOSIS: Edited fallback fields do not propagate to the de-de indexed item upon Smart Publish but do upon Republish. 


Remember to always create a Sitecore Support ticket prior before applying any Sitecore patch on your own.  That said, here are the Sitecore patches that were applied to a Sitecore 8.2.1 environment that resolved many language fallback issues.  Please note that some of them were not earmarked as built for “Sitecore 8.2” however they were advised by Sitecore Support to be applied and still addressed our issue.

Sitecore.Support.217877 – Language fallback cache is not subscribed to remote events.
Sitecore.Support.222670 – The value which is specified in Standard Values for DateTime field is not added to the index.
Sitecore.Support.96931 – Computed index fields do not respect field-level language fallback settings. Item-level language fallback settings are also not respected if computed index fields are processed in parallel.
Sitecore.Support.130860 – Field level fallback indexing fails to update fallback value when original one got changed

Connecting Voice Assistants and Sitecore via Cognigy Part 3: Putting it all Together

So you wanna have an Alexa skill use Sitecore as its content source?  Sure, you can make a direct call from the Alexa Skill to a Sitecore web API but this approach can leave your code in a tangled web of ‘ifs.’  In this blog series, I’ll explain how Cognigy.AI can be used to effectively bridge the connection–and handle most of the logic–between voice assistants (like Alexa and Google Home) and Sitecore content.

Pre-requisites: Part 1: Overview and Part 2: Connecting Alexa and Cognigy

Part 3:  Putting it all Together

In Part 1, I offered a brief overview of Cognigy.AI and explained how using Cognigy.AI can save time and code by handling the conversational logic when working with a digital channel (like a voice assistant, IoT device. or AR/VR) while pulling data from an external repository such as Sitecore.

In Part 2, I dove into the necessary components to create an Alexa skill that can be used as the conversation starter with Cognigy.AI. Part 2 leaves us with a handful of JSON given to Cognigy.AI from Alexa.  What do we do with it?

json alexa intent example

Cognigy Input Store

When data is passed from an endpoint into Cognigy.AI, it is saved as JSON in the ‘data’ node of the store called the “Cognigy Input” store (or ci).  This data lasts the lifetime of the current request.

Target Flow for an Endpoint

We’ll use the JSON data in a Cognigy flow. A Cognigy.AI project is made up several components including flows and endpoints.  The endpoint defines from where the conversation can start.  An endpoint has a Target Flow.  It is within this flow that we can start to evaluate this JSON data.

Based on the number of intents that exist within your connected Alexa skill, you’ll use the appropriate conditional logic node (either if..then or switch) in your Target Flow.  If you have three intents, it might look like this (below) with the bottom node acting as a catch-all.

switch statement

The switch statement is evaluating the property from the Alexa data.  In this example, the Target Flow is being used to route to other flows based on the intent name.

Http Request

Now that we’ve identified the intent, we can call a web API endpoint in Sitecore to gather the data for the intent.  This can be accomplished with the Http Request node.

In the example below, we are using a GET Http Request.

Within the Url field, I am passing the City slot value to the Api WeatherController’s GetCurrent(string city) action. In the Headers area, the OAuth access token from Alexa’s Account Linking is passed.  The data returned from the API call is stored in the ContextStore, currentweather.

http request.png

Custom Modules

Cognigy.AI also offers the ability to set up Custom Modules within their Cognigy Integration Framework.  This Http Request node could be replaced by a module for Sitecore that contains pre-canned API calls.  This allows for more flexibility when creating flows.  With Custom Modules, flows can be set up without a non-technical user knowing all the details necessary for making an API call such as the one illustrated above.  Github sample of existing Custom Modules.

Cognigy Context Store

The Cognigy context store (or cc) is another data store that is available for the lifetime of the current session with Alexa (as opposed to the current request lifetime for ci).
Within the Http Request node properties, the ContextStore name is defined and JSON returned from the api call is stored in cc.[ContextStore].

In the image above, note the {{cc.apiBaseUrl}}. Cognigy.AI also allows you to store default data in the cc by defining the “Default Context” of each flow.  Flows can share the Default Context as well.

default context

Say Nodes

So, now you have your data back from Sitecore and you want to send it to Alexa.  Alexa accepts data using the Speech Synthesis Markup Language (SSML) format (which is based on XML) to assist with context and intonation.  Take a look at the Alexa SSML documentation.

The SSML is added to a Say node “Alexa” channel via the SSML Editor and it is sent to Alexa so she can convert the text to speech. Cognigy.AI also supports sending visual imagery (text only or text and image … video coming soon?) to devices with a display monitor.

Note that the Say node is reused among other channels (see the channel icons at the top).  This allows you to have a single set of flows used by every channel but allowing for the proper channel input.

say node

Finishing the Conversation

When a flow is complete, the Say node SSML is passed back to Alexa via the Alexa endpoint in Cognigy.

output json to alexa.png

Alexa then notes the outputSpeech in the response and speaks the SSML!

End Notes

I have just touched the tip of the iceberg of Cognigy.AI capabilities but this blog series should give you a starting point for your exploration into voice technologies.  Stay tuned for an upcoming post regarding using Sitecore data within a Cognigy.AI chatbot!


cognigy logo
Special thanks to Andy and Derek of Cognigy for allowing use of their demo site!

  • Andy Van Oostrum – VP Sales North America :
  • Derek Roberti – VP Technology North America:

See other posts in this blog series:

Connecting Voice Assistants and Sitecore via Cognigy Part 2: Connecting Alexa and Cognigy

So you wanna have an Alexa skill use Sitecore as its content source?  Sure, you can make a direct call from the Alexa Skill to a Sitecore web API but this approach can leave your code in a tangled web of ‘ifs.’  In this blog series, I’ll explain how Cognigy.AI can be used to effectively bridge the connection–and handle most of the logic–between voice assistants (like Alexa and Google Home) and Sitecore content.

Pre-requisite: Part 1: Overview

Blog Series Part 2:  Connecting Alexa and Cognigy.AI

In the previous post, I offered a brief overview of Cognigy.AI and explain how using Cognigy.AI can save time and code by taking on the conversational logic when working with a digital channel (like a voice assistant, IoT device. or AR/VR) and pulling data from an external repository such as Sitecore.  Let’s dive into the Alexa Skills side of things and also see how to hook it up via Cognigy.AI’s endpoint.

Amazon Alexa Skills Kit Developer Console

The Alexa Skills Kit Developer Console is already well-documented so I won’t go into too much detail.  Instead, I’ll focus on what you need to know to get started with an Alexa Skill.


When you set up a new skill, it needs to be invoked with a phrase.  Example invocations:

daily horoscopes Alexa, enable daily horoscopes
current weather Alexa, load current weather


To connect Alexa and Cognigy.AI, you’ll need the Cognigy.AI generated endpoint url and you’ll place it in the Alexa Skills Service Endpoint setting OR you can deploy the endpoint url to the skill from Cognigy.AI by selecting the skill.  For faster throughput, Alexa allows for multiple endpoints based on region.

alexa service endpoint


An intent is an interpretation of a user request and responds with an action to fulfill the request.

For example, let’s say that your local system stores the local daily forecast of every major city in a designated area. An Alex Skill intent would be the starting point to fulfill the request of getting the daily weather (“DailyWeatherIntent”).  To match the Alexa user’s spoken word to an intent, the intent must have utterances.

Alexa also has some built-in intents that you can incorporate within your skill.

built in intents


An utterance is a sample phrase assigned to an intent that represents an anticipated request from the user.  This user request is accurately fulfilled with the action provided by the intent.

Utterances for the “DailyWeatherIntent” example might be the following:

  • What is the current weather?
  • What’s going on outside for today?
  • Is it going to rain?

While we are on the topic of utterances, we must talk about Natural Language Processors (NLPs).  Their primary responsibility is to convert text-to-speech and speech-to-text. With machine learning, they are able to handle variations of an utterance and still provide a positive match to an intent.  This allows you to minimize the number of utterances that you have to list for an intent.  An example, the phrase “Tell me the weather” could be uttered and auto-matched to the utterance “What is the current weather?”  Each NLP has different levels of sophistication so the number of utterances that you’ll need for an intent will vary based on the NLP used.  As you would expect, Alexa’s has been around for a while and is quite sophisticated.  Cognigy.AI has its own configurable NLP and is growing more intelligent with every release.


Aside from the NLP, utterances can be minimized with the use of slots.  Slots are words found in utterances that can be used in two ways:

  • as a synonym – to extend the NLP matching logic for an intent
  • as a variable – to pass on to the data repository (e.g. Sitecore)

A slot is represented within an utterance surrounded by curly braces {}. Let’s look at examples of both.

Synonym Slots

Utterance: What is the {weather}?

If the slot, {weather}, is defined with alternative context phrases like ‘forecast’ or ‘chance of rain,’ the following utterances are implied along with the utterance above and therefore do not need to be defined within an intent:

What is the forecast?
What is the chance of rain?

Variable Slots

Utterance: What is the current weather in {city}?

What is the current weather in Los Angeles?
What is the current weather in LA?

The slot can also represent a variable that is passed on to the data repository. The slot type can be a finite list of acceptable slot values stored in the skill.  Each slot value can also have synonyms (like “Los Angeles” and “LA”) and an optional ID which could be used to better match to a value in the data repository.  The Alexa Developer Skill kit comes with pre-defined slot types or you can spin up your own.

A slot value could also be a true variable (without a list of possible values in the skill) and simply passed to the data repository for reconciliation.  Use the AMAZON.SearchQuery slot type.  Only one such slot type can be used per utterance.

Utterance: Switch to customer account {accountNumber}.

“Switch to customer account 12345.”

Required Slots

An intent may require that a slot is populated prior to its fulfillment.  In the example directly above, accountNumber is a slot that is important to have to be able to switch customer accounts.   The value for this could be gathered as shown in the utterance above or by a dialog between Alexa and the user.  Notice below that the utterance does not have a slot.

Utterance:  Switch the customer account


User: “Switch my customer account”
Alexa:  “To which account would you like to switch?”
User: “12345”
Alexa: “OK, one moment …”

slot filling

Account Linking

It is worth mentioning Account Linking.  Through OAuth and the Alexa App on the user’s phone, the user can log in one time to the data repository (like Sitecore) and establish an OAuth connection for the Alexa Skill.  This allows the user to access account information that would normally be exposed by logging in to their account on your web application.  Some great documentation is located on the Alexa Skills Kit site.

Account linking will enable Alexa to fulfill questions like:

Alexa, ask [your invocation] what is the next course that I should take?

Alexa, tell [your invocation] that I’d like to pay my invoice.

Alexa, ask [your invocation] for the balance on my account.

Alexa and Cognigy.AI JSON

And finally, let’s take a look at the JSON being sent from Alexa to Cognigy.AI.

Below we see that under context, the OAuth access token is sent (if account linking is set up).  This can be passed on to Sitecore from within Cognigy.AI.

Under request, we see the name of the intent and also any slots that have been fulfilled for the intent.  In the example, below we have a “WeatherIntent” with a slot of “City” fulfilled with the value of “Seattle.”

json alexa intent example

In the next post of the series, we’ll see how to consume this data within Cognigy.AI, grab data from Sitecore, and send an answer back to Alexa!  Stay tuned!

cognigy logo

  • Andy Van Oostrum – VP Sales North America :
  • Derek Roberti – VP Technology North America:

See other posts in this blog series: