Connect Amazon’s Alexa to Sitecore

Delivering an enterprise skill for Amazon Alexa means preparing and supporting loads of content so why not to use Sitecore the leader eXperience platform to manage your Alexa skill related content?

Here at VoiceCase we think that Sitecore is a perfect tool to manage complex SSML messages to support your Alexa skill via the Sitecore multi-channel capabilities…

Alexa skill provide different voice messages using SSML a markup language fairly similar to HTML – here  you can find extensive reference to SSML syntax

ssml

The simpler way to integrate your custom skill with Sitecore is via a synchronous call from your AWS Lambda to the Sitecore endpoint to provide the required SSML via a simple webApi endpoint (via json)

architecture

Other valid reasons for using Sitecore to store your SSML?

  • Multilanguage support
  • Approval Workflow
  • Rich Text Editor Customizations to support SSML creation for business users
  • SSML validation
  • Skill configuration settings on Sitecore

In addition to the simple integration, you may want to use Sitecore combined with Polly to generate custom audio messages to support your skill or Sitecore Media Library capabilities to host custom MP3 files to support your Alexa skill…

Here you can see how it looks a SSML message within Sitecore Rich Text Editor

sitecorerte

We also strongly recommend the use of snipped withing the Sitecore rich text editor to support SSML speechons, this would allow business users to create wow effects for your Alexa users….

speechon

Other possible advantages of this integration would be the use of the Sitecore Personalisation features simple examples could be:

  • Personalization for anonymous devices (offer different messages for anonymous and registered users
  • Account Linking + Personalisation – deliveing personalized Voice messages for different customers, depending on the customer segment defined in Sitecore via XDB facets
  • Single view of the customer + Analytics – Sitecore Analytics could hold a 360 view of your customers across different channels and Alexa would be just an additional channel for Sitecore
  • Personalized Content leveraging XDB capabilities (behavior personalisation)
  • A/B testing capabilities to identify the more effective paths and customers preferred application paths
  • Sitecore Commerce to deliver conversational commerce

In the case you find this topic interesting, reach out stelio@voicecase.co.uk and will be happy to help you to get the most out of your Amazon Alexa integration with Sitecore….

I have been presenting this topic to few user groups and here you can find additional slides–  a video & additional pictures of the presentation…

@steliodibello demonstrating Alexa integration with #sitecore @bekagool #SitecoreUGpic.twitter.com/ZpR2btYQf7

— Ian Graham (@ianjohngraham) June 14, 2017

dctcoj1wsai53tk

 

dctcjwzxkaejo_g

Advertisements

SQL Azure and Sitecore Retryer

If you are deploying Sitecore on Azure and you are using SQL Azure, you should know that you could experience some connectivity issue between your Sitecore instance and your database…

Therefore it is strongly recommended to enable a retry mechanism on Sitecore data provider to recover these intermittent connectivity issues.

This is the default configuration that you will find in your web config, and what you need to do is to switch disabled to false….

you can either keep the logging enabled/disabled to log these connectivity issues and change the interval setting, but I would recommend to keep the default value…

<retryer disabled="true" type="Sitecore.Data.DataProviders.Retryer, Sitecore.Kernel">
      <param desc="Number of tries">6</param>
      <param desc="Interval between tries">00:00:00.500</param>
      <param desc="Log each exception (should be used for debug only)">true</param>
</retryer>

Sitecore on Azure

When it come to deploy Sitecore on the cloud and more specifically to Azure there are several approaches and alternatives.

The biggest decision is to go with a PAAS or IAAS or decide for an Hybrid approach

 

PAAS

In order to deploy Sitecore on PAAS you need to ensure that your license allow you to do it:

There are 2 way to achieve it:

Azure Module

This is recommended if you have to deploy environments across multiple datacenters easily

WebApp

You can convert your web application in VS to a cloud service in order to deploy it, this guideline explain the steps

https://github.com/olegburov/sitecore-azure-content/blob/master/articles/how-to-deploy-sitecore-72-solution-to-microsoft-azure-cloud-service-using-visual-studio.md#how-to-deploy-sitecore-databases

Pro

  • Less infrastructure (no windows update, security fix etc)
  • Easier to configure Auto Scaling
  • Easier to provision dedicated environments

Cons

  • Less control on when an instance got recycled
  • Less knowledge and experience in the team and worldwide
  • Not supporting some of the Sitecore Modules in the market place
  • Increasing the complexity level to monitor the infrastructure

Challenges:

  • Cold deployment, it could be achieved having a staging infrastructure to switch the traffic during the deployment. Having all the CD the same config, you would have only one publishing target.
  • Less control on Indexes
  • Provisioning time of a single instance could take long time
  • Continuous Delivery instrumentation is a bit more difficult
  • Verify if logs can be stored on the Application log or use an azure storage account or custom appender

IAAS

You deploy Sitecore on Azure VM

Pro

  • Allows more complex and tailored deployments scenario
  • Easier to instrument Continuous Delivery
  • Support multiple targets and simplify cold deployments
  • Lower the complexity level of the solution
  • Easier to switch to Amazon / other cloud provider

Cons

  • More infrastructure to worry about windows update, security fix etc
  • Provisioning of new environments could take longer
  • Higher overall cost (TBC)

 

IAAS with SQL AZURE and XDB Cloud

This approach it is an hybrid approach between PAAS and IAAS.

We are envisioning the use of VM for hosting the Sitecore Instances and the use of SQL Azure for the databases and Cloud XDB service for the analytics (a decision if we want to use Sitecore analytics and the best infrastructure to use has still not be taken and it will be considered later on)

Sitecore recommend to deploy the database tier on SQL Azure V12 using Standard or Premium tiers for better performances

Pro

  • Allows more complex and tailored deployments
  • Easier to instrument Continuous Delivery
  • Support multiple targets and cold deployments
  • Lower the complexity level of the solution
  • Lower the cost and maintenance of SQL
  • Lower the cost and maintenance of XDB for analytics
  • Easier to switch to Amazon / other cloud provider

Cons

  • Still need VM with IIS to deploy Sitecore

Hybrid scenario

It is fairly common an hybrid scenario deployment where CM are hosted on premises / IAAS and the CD servers are hosted as WebApps. The reason for it  is  that generally you don’t need to scale the CM instance.

Hybrid scenario can point the IAAS server to SQL Azure and to XDB cloud as well.