I recently presented at the 2018 Atlanta Wordcamp conference on how to hookup Alexa (and other smart speakers) to WordPress. The slides are on Google Docs.
In a nutshell, I’m using WordPress as a headless CMS, although this could also live on a site that is web-viewable. The smart speaker content is stored in posts or pages. I’m using the Advanced Custom Fields plugin to setup the fields for the data.
I setup an Amazon Alexa skill in that uses a function in their AWS Lambda environment for the processing. You could do that part on your server if you wanted but the security on the request processing can be tricky. It’s easier to do it in Lambda. The Lambda function calls my WordPress site via the REST API. After fetching the data from the API, it formats the data into something Alexa will like and returns it. Then Alexa speaks!
It’s not brain science but a convenient setup. Lambda functions are pretty easy to maintain. Keeping the content management in WordPress lets us reproduce this setup for other smart speaker systems like Google’s Actions (for Home and Assistant), Cortana, Bixby, and maybe one day, Siri.