VOGO Voice – Knowledge Base

Components Glossary

Estimated reading time: 5 min

Components are the building blocks to create and structure an interaction flow in relation to a Skill. These color-coded cards available on the interaction builder platform differ in terms of their role and function. The assembly of the series of components implements the input and logical conditions the user experiences throughout a conversation.

The color coding and the sequence in which they appear are determined by the purpose each of these components serves in the interaction flow.

Blue represents response cards that are used for responding with voice, display, audio, and video.
Green signifies persistent components that go beyond a single interaction and session.
Yellow indicates a condition or decision-making component.
Red denotes data components interacting with connector instances.


Response serves the output function by recognizing the user’s request and linking it to the right action or appropriate response. This action fulfilling the user’s input is yielded via voice, display, audio, and video in return of a request or action performed by the user. In other words, the Response is put to use to reciprocate the user’s request while interacting with a Skill.

Link Account

Link Account is another key response card that is implemented so that users can continue interacting with a Skill when additional account verification is needed to continue beyond that point in a flow. The request to link the account serves the purpose of authentication by accessing an end user’s identity. This interaction component manages the request which shows up on the Alexa & Google apps seeking permission to access the user’s personal information so as to enable the user to have an all or partial experience of the custom skill.

Request Permissions

Request Permissions is a response card put to use to prompt the user for permission to access his/her profile information or personalized data if they have not already granted that information. In the event of seeking permission to access the user’s location, the said component will prompt the user with a permission request based on the type specified in the settings.


Loop is a response card that performs the core function of iterating a set of results to the user based on the amount of data returned. It kick-starts a repetitive process of prompting a result by executing a popping of the data each time the user invokes ‘Yes’ to confirm his/her choice to hear the next response. The terminating condition of this cyclic process comes into effect the exact moment the user invokes ‘No’. This interaction component is thus put to use to allow the user to retrieve responses in a continuous cycle until the user’s conditions are satisfied.


Subscribe is one among the persistent components that go beyond a single interaction and session. The inclusion of this component in a skill facilitates users the choice to receive notifications to a topic. As a result, the interaction model using this component the opt them into a topic.


Unsubscribe is a persistent component implemented depending on the requirements of the skill to stop receiving notifications to an already subscribed topic.

Save Settings

Save Settings is put to use to save user values in the interaction flow at any given time.  It is able to capture the values at a specific state of the flow while interacting with the skill. This interaction component which allows access to the value saved can be used at any stage within any interaction.

Mark Notification Read

Mark Notification Read is yet another persistent component which when implemented in the interaction flow executes the function of marking a message as ‘Read’ when the user interacts with the notification itself.

Check Variable

Check Variable is one of the decision making components which when implemented helps to execute the decision making process in an interaction flow by making using of the condition ‘then’ or ‘otherwise’. The working of this component emulates the principle controlling a program flow driven by the If/else JavaScript conditional statement


When a decision across multiple choices is required, Switch executes statements by matching/comparing the values added within the component with the user’s choices/input cases. Being a condition or decision making component, Switch follows the principle underlying the common practice of a programming switch statement.

Add Variables

Add Variables is one among the data components which interacts with connector instances. It is persistent only during a session and is available during the flow/ interaction. It is implemented to store value/temporary data for an interaction. In other words, it allows the assignment of values interacting with the flow. This card can be used by its variable name to bring up the required value in a given interaction.

Retrieve Events

Similar to the other data components, Retrieve Events is predefined by the system and always available in the flow. It is implemented for the purpose of retrieving events based on the requirements of the skill.

Retrieve News

Retrieve News is yet another data component made available in the interaction flow to cater to the needs of the skill. The core purpose it serves when implemented in the flow is that it allows the user to retrieve news.

Retrieve Notifications

Retrieve Notifications is a data component that interacts with connector instances. It is made available throughout the interaction flow and when implemented in the skill it performs the function of retrieving notifications.

Retrieve Topics

Retrieve Topics is yet another data component predefined by the system. It is always available during the flow/interaction. It is one of the key data components that the user experiences based on the input in the event of retrieving topics.

Retrieve User Subscriptions

Retrieve User Subscription is a key data component that interacts with connector instances. The key purpose it serves during an interaction or flow is to retrieve the user’s subscription.

Delete Settings 

Delete Settings is put to use in order to delete the permanently saved values within the Save Settings component. It is persistent in nature, and therefore it can be called to action beyond a single interaction or session. The saved input that is to be deleted is represented within the Delete Settings card by the same arbitrary name as mentioned in the Save Settings component followed by setting its data type. 


If/Else is a decision-making component that serves the purpose of replacing the use of multiple Check Variable components within an interaction model. The choice of If/Else component in place of several Check Variables depends on whether or not it suits the scenario of the interaction flow to provide the expected outcome intended for the user. Putting this card to use, allows one to execute multiple conditions by selecting from among the different relational operators set within the component. The core working of the If/Else component emulates the principle controlling a program flow driven by the If/else JavaScript conditional statement.

Switch Interaction

Switch Interaction is a component that allows the flexibility to render intents to match the user’s specific request when launching a custom skill. All the created intents including the pre-defined ones will show up on the drop-down menu within this component to choose and set. As the label suggests, this card allows switching interactions within a custom skill. Thus, allowing users to jump to the intended part of the interaction flow. The component also allows passing intent-specific slot values to guide the user deeper into the interaction. Therefore, when a user’s spoken request matches any of the selected intents set within this component, an interaction matching the invoked intent or intent specific slot value will be relayed at once. 

Data Branching

The Data Branching component allows the modeling of three possible solutions, namely none, one, many within a custom interaction flow. The presence of these three expressions of possibilities within a single component allows to create a multipathing interaction flow without the addition of Check Variables and Add Variables or the {#if}} {{else}} {{#if}} template condition. To create the desired branching the necessary value needs to be set within the component along with its data type. The underlying working of this component emulates the principle made use of in programming languages while dealing with a variable that holds no object, one object, or many objects. Similarly, it closely resembles the analytic idea brought into effect while determining whether an algebraic equation has one, infinite, or no solutions.

Was this article helpful?
Dislike 0
Previous: Template Engine
Next: Switch Interaction