Views and Variables


Views are the Voxa way of handling replies to the user, they’re templates of responses that can have a context as defined by your variables and Model

There are 5 responses in the following snippet: LaunchIntent.OpenResponse, ExitIntent.Farewell, HelpIntent.HelpAboutSkill, Count.Say and Count.tell

const views = {
  LaunchIntent: {
    OpenResponse: { tell: 'Hello! Good {time}' },
  ExitIntent: {
    Farewell: { tell: 'Ok. For more info visit {site} site.' },
  HelpIntent: {
    HelpAboutSkill: { tell: 'For more help visit' },
  Count: {
    Say: { say: '{count}' },
    Tell: { tell: '{count}' },


Variables are the rendering engine way of adding logic into your views. They’re dessigned to be very simple since most of your logic should be in your model or controllers.

A variable signature is:

variable(model, alexaEvent)
  • model – The instance of your model for the current alexa event.
  • AlexaEvent – The current alexa event.

The value to be rendered or a promise resolving to a value to be rendered in the view.

const variables = {
  site: function site(model) {
    return Promise.resolve('');

  count: function count(model) {
    return model.count;

  locale: function locale(model, alexaEvent) {
    return alexaEvent.locale;