---
layout: page
title: "Intents"
description: "Intents are helping Home Assistant to gather "
date: 2017-07-23 20:00
sidebar: true
comments: false
sharing: true
footer: true
---

An intent is a description of a user's intention. Intents are generated by user actions, like asking Amazon Echo to turn on a light.

<p class='img'>
<a href='https://docs.google.com/drawings/d/1i9AsOQNCBCaeM14QwEglZizV0lZiWKHZgroZc9izB0E/edit'><img src='/images/architecture/intents.png' /></a>
Architectural overview of intents in Home Assistant
</p>

Intents are fired by components that receive them from external sources/services. Conversation, Alexa, API.ai and Snips are currently sourcing intents.

Any component can handle intents. This makes it very easy for developers to integrate with all voice assistants at once.

Intents are implemented using the `homeassistant.helpers.intent.Intent` class. It contains the following properties:

| Name | Type | Description |
| ---- | ---- | ----------- |
| `hass` | Home Assistant | The Home Assistant instance that fired the intent.
| `platform` | string | The platform that fired the intent
| `intent_type` | string | The type (name) of the intent
| `slots` | dictionary | Contains the slot values keyed by slot name.
| `text_input` | string | Optional. The raw text input that initiated the intent.

Description of the slots dictionary values.

| Name | Type | Description |
| ---- | ---- | ----------- |
| Value | anything | Value of the slot.
