--- title: IFTTT description: Instructions on how to setup IFTTT within Home Assistant. ha_category: - Automation ha_iot_class: Cloud Push ha_release: 0.8 ha_config_flow: true ha_domain: ifttt ha_platforms: - alarm_control_panel --- [IFTTT](https://ifttt.com) is a web service that allows users to create chains of simple conditional statements, so-called "Applets". With the IFTTT component, you can trigger applets through the **"Webhooks"** service (which was previously the **"Maker"** channel). ## Prerequisites To be able to receive events from IFTTT, your Home Assistant instance needs to be accessible from the web and you need to have the external URL [configured](/docs/configuration/basic). {% include integrations/config_flow.md %} ### Using the incoming data Events coming in from IFTTT will be available as events in Home Assistant and are fired as `ifttt_webhook_received`. The data specified in IFTTT will be available as the event data. You can use this event to trigger automations. For example, set the body of the IFTTT webhook to: ```json { "action": "call_service", "service": "light.turn_on", "entity_id": "light.living_room" } ``` You then need to consume that incoming information with the following automation: {% raw %} ```yaml automation: - id: this_is_the_automation_id alias: "The optional automation alias" trigger: - event_data: action: call_service event_type: ifttt_webhook_received platform: event condition: [] action: - target: entity_id: '{{ trigger.event.data.entity_id }}' service: '{{ trigger.event.data.service }}' ``` {% endraw %} ## Sending events to IFTTT ```yaml # Example configuration.yaml entry ifttt: key: YOUR_API_KEY ``` `key` is your API key which can be obtained by viewing the **Settings** of the [Webhooks applet](https://ifttt.com/services/maker_webhooks/settings). It's the last part of the URL (e.g., https://maker.ifttt.com/use/MYAPIKEY) you will find under **My Applets** > **Webhooks** > **Settings**.

Property screen of the Maker Channel

Once you have added your key to your `configuration.yaml` file, restart your Home Assistant instance. This will load up the IFTTT integration and make a service available to trigger events in IFTTT.
After restarting the server, be sure to watch the console for any logging errors that show up in red, white or yellow.
### Multiple IFTTT keys If you have multiple IFTTT users you can specify multiple IFTTT keys with: ```yaml # Example configuration.yaml entry ifttt: key: YOUR_KEY_NAME1: YOUR_API_KEY1 YOUR_KEY_NAME2: YOUR_API_KEY2 ``` ### Testing your trigger You can use **Developer Tools** to test your [Webhooks](https://ifttt.com/maker_webhooks) trigger. To do this, open the Home Assistant sidebar, click on Developer Tools, and then the **Services** tab. Fill in the following values: Field | Value ----- | ----- domain | `ifttt` service | `trigger` Service Data | `{"event": "EventName", "value1": "Hello World"}`

When your screen looks like this, click the 'call service' button.

By default, the trigger is sent to all the API keys from `configuration.yaml`. If you want to send the trigger to a specific key use the `target` field: Field | Value ----- | ----- domain | `ifttt` service | `trigger` Service Data | `{"event": "EventName", "value1": "Hello World", "target": "YOUR_KEY_NAME1"}` The `target` field can contain a single key name or a list of key names. ### Setting up a recipe Press the *New applet* button and search for *Webhooks*.

Choose "Webhooks" as service.

You need to setup a unique trigger for each event you sent to IFTTT.

{% raw %} ```yaml # Example configuration.yaml Automation entry automation: alias: "Startup Notification" trigger: platform: homeassistant event: start action: service: ifttt.trigger data: {"event":"TestHA_Trigger", "value1":"Hello World!"} ``` {% endraw %} IFTTT can also be used in scripts and with templates. Here is the above automation broken into an automation and script using variables and templates. {% raw %} ```yaml # Example configuration.yaml Automation entry automation: alias: "Startup Notification" trigger: platform: homeassistant event: start action: service: script.ifttt_notify data: value1: "HA Status:" value2: "{{ trigger.event.data.entity_id.split('_')[1] }} is " value3: "{{ trigger.event.data.to_state.state }}" ``` {% endraw %} {% raw %} ```yaml #Example Script to send TestHA_Trigger to IFTTT but with some other data (homeassistant UP). ifttt_notify: sequence: - service: ifttt.trigger data: {"event":"TestHA_Trigger", "value1":"{{ value1 }}", "value2":"{{ value2 }}", "value3":"{{ value3 }}"} ``` {% endraw %}