IFTTT with Voiceflow

As more and more users asking for a way to control IoT devices (like lights, tv and more), here is a quick start on how to use IFTTT in Voiceflow.

First, you definitely need an IFTTT account, you can create one here: https://ifttt.com/

After creating your account, you need to add services for the things you want to control or actions you want to make. Here are some of the services you can use in IFTTT

Once you have added the services you need, you want to set up the webhook service

And here is the Documentation page with all the info you need to make the API call in Voiceflow.

Copy and paste somewhere the url https://maker.ifttt.com/trigger/{event}/with/key/xxxxxxxx for later use in Voiceflow.

So now you need to create your first applet, in the top menu on IFTTT, select My Applets

Then, create a new one with this button 03%20PM

Click the big 12%20PM to select the service you want to use.

Then, in the search field, type webhooks like this:

Select the Webhooks service to go to the Choose trigger screen:


and click the “Receive a web request”

Use the name you want for the Event name (here I’m using turnOnTheLight just because…I want to turn on the light :wink: )

Click on the “Create trigger” button to save.

On the next screen, choose “+that”

Now, search for the action service you want to use (for this example, I’m using the PHILIPS hue action service.

On the following screen, select one of the actions the available from the service you choose
58%20PM

Setup the action fileds


and click “Create action” button (here I want to turn on my TV light).

Finally, note the event name (“turnOnTheLight” here) somewhere, review, toggle on or off the notifications and click “Finish”

All is good and the applet is now live (On).

Now we are going to Voiceflow, create a new skill and add some block pretty much like this:

The first Set block is here to pass the event name (you remember? turnOnTheLight) to the {event} variable,
so create a global variable named {event} and create the Set Event Name block like this:

Now the fun part -> API Block!
Create a new global variable named {IFTTTreturn} and paste the url you’ve copied earlier in the GET URL Endpoint on the API Block. You may need to remove the {event} text in the url and add it again to get the variable goes blue. Map response to {IFTTTreturn}

You can now click the

button to test the API Call.
In the event just type the name of your event to trigger on IFTTT (“turnOnTheLight” in this example)

The light is turned on and we got this Result from the API

As you can see, the response is not in JSON format so we have to tweak things here to tell the user if the API call went well or not.

Create a new global variable {checkEvent} and in the Set the response block, add this:

What we are doing here is create a sentence to compare with the API response. So, as the API response is always “Congratulations! You’ve fired the turnOnTheLight event” we need to make a variable with this text.
You need to put the spaces after “the " and before " event” and combine all the text and variables.
Basically, we are doing “Congratulations! You’ve fired the " + {event} + " event” here.

We can now compare the two variables {IFTTTreturn} from the API block response and the {checkEvent} we’ve just made in the Set block.

Last thing, just add two speak blocks to tell the user if everything goes well or not.

49%20PM

You can add others events to trigger other actions, you can even add command blocks to trigger actions like “Alexa, ask myskill to turn the TV light on”.

VoilĂ , your first home automation skill made with Voiceflow!

3 Likes

Very nice! Thank you for the walk-through.

Hi I was trying to use this guide but it is completely different from what I see on video maybe it is no longer valid ???

I would like to create Skills for simply taking commands like these for example:

http://139.59.206.133/b0b2xxxxxxxxxxxxxxxxxxxxxxxxxxxx/update/V0

method: put

content type: application / json

body: [“1”]

Hi, you’re not using IFTTT at all here, correct? Only the Integration block and a Put Request.
You may want to try first your call on a tool like Postman (you can find an article on how to use it here: https://docs.voiceflow.com/voiceflow-documentation/integrations/custom-api-integration/using-postman-to-test-an-api#debug-your-errors-in-postman). Also, make sure to use a secure (https) url.