ifttt.com - это бесплатный онлайн-сервис, который позволяет автоматизировать многие процессы. Например, отправить себе письмо на email, если погодный сервис прогнозирует завтра дождь.

С помощью IFTTT бот Aimylogic может отправлять полученные от пользователя данные на интернет-сервисы, поддерживаемые IFTTT. Список сервисов огромен - это обычные облачные сервисы, мессенджеры, устройства умного дома и многое другое.

Например, вы можете получить в ходе диалога от пользователя его имя, номер телефона и адрес, а затем сохранить эти данные в Google таблице и отправить уведомление сотруднику по почте или в Telegram.

Для реализации такой логики не нужно писать код и интегрироваться с сервисами Google и почтой. Все это уже делает IFTTT, остается только создать апплет в IFTTT, а затем выполнить обычный HTTP запрос из сценария бота в тот момент, когда нужно отправить данные.


Какие задачи можно выполнить с помощью IFTTT?

У нас есть несколько уроков по интеграции с IFTTT, которые помогут вам решить ваши задачи.

Запись в гугл таблицу

Если вы хотите, чтобы бот общался с пользователями, собирал у них какую-либо информацию (например, имя, телефон и тип нужной услуги) и затем записывал данную информацию в гугл таблицу, у нас есть два урока о том, как настроить такое поведение бота.

Если вы хотите, чтобы в таблицу добавлялась новая строчка с информацией от бота, то продолжайте читать данную статью. Ниже мы опишем данную задачу.

Если вы хотите, чтобы бот перезаписывал одну и ту же ячейку (например, если у сотрудника изменился номер телефона, и нужно перезаписать ячейку с его номером телефона в таблице), то обратитесь к этой статье.

Отправка email

Если вы хотите с помощью бота отправлять email, обратитесь к этой статье.

Можно использовать IFTTT с другими сервисами, например, c Trello.


В данной статье мы рассмотрим добавление строки в гугл таблицу

Бот будет добавлять новую строчку к листу гугл таблицы. Каждый запрос будет добавлять новую строку. Бот не сможет перезаписывать ячейки. Если вам нужно всегда записывать данные в одну и ту же ячейку, то обратитесь к этой статье.

Как использовать IFTTT

Добавление вебхука и события

Чтобы использовать IFTTT с помощью бота, в IFTTT вам нужно использовать вебхуки. Затем, с помощью вебхука, вы можете отправлять данные в какой-либо сервис.

Зарегистрируйтесь на IFTTT.com или войдите в свой аккаунт IFTTT.

На главной странице https://ifttt.com нажмите Explore.



Затем нажмите на знак +



Если вы не видите знак плюс, то используйте эту ссылку: https://ifttt.com/create

Нажмите This.


Наберите в поиске webhook. Кликните на Webhooks.
* Нажмите Receive a web request.
3. Придумайте любое название события и напишите его латинскими буквами без пробелов в поле Event Name.

Скопируйте и вставьте название события (ивента) себе в блокнот, оно понадобится нам позже.

Нажмите на Create trigger.


Создание действия

Теперь нужно добавить действие - собственно тот сервис, куда вы хотите отправить данные от бота.

Давайте отправим полученную от пользователя информацию в Google таблицу.

Нажмите на that.



В поиске наберите sheet и кликните на Google Sheets.


Далее нажмите на Add row to spreadsheet.



Теперь перейдите в свой гугл диск и создайте в его корне папку с названием:

IFTTT

В этой папке создайте таблицу с названием:
TestSpreadsheet

Вернитесь на вкладку с IFTTT. Сейчас у вас открыта страница настройки сервиса Google таблиц.



Заполните поля:

В поле Spreadsheet name укажите название вашей только что созданной таблицы. Так как мы создали таблицу с названием "TestSpreadsheet", скопируйте и вставьте в это поле:
TestSpreadsheet



Если вы дали своей таблице другое название, то скопируйте название таблицы и вставьте его в это поле:



В поле Formatted row ничего изменять не нужно.

Если вы не уверены в том, что вам нужны какие-либо изменения, лучше ничего не трогайте в поле Formatted row.

Значения этого поля:

OccuredAt - это дата и время, когда строчка была добавлена в таблицу.

Если вы не хотите, чтобы в таблицу отправлялась дата и время события, скопируйте и вставьте в поле Formatted row следующее:
{{EventName}} ||| {{ Value1 }} |||{{Value2}} ||| {{ Value3 }}
EventName - это собственно имя события, которое вы придумали выше (в одну таблицу можно записывать данные с помощью разных событий).

Если вы не хотите, чтобы в таблицу отправлялись ни дата и время, ни название события, скопируйте и вставьте в поле следующее:
{{Value1}} |||{{Value2}} ||| {{ Value3 }}
Value1, Value2, Value3 - это собственно переменные, полученные ботом от пользователя в ходе диалога.

Менять значения Value1, Value2, Value3 здесь нельзя.

IFTTT не дает сохранять более трех разных переменных. Если нужно больше, то стоит посмотреть в сторону платного аналога - zapier.com

В поле Drive folder path укажите название папки, в которой лежит таблица. В нашем случае, мы поместили таблицу в папку под названием IFTTT, поэтому скопируйте и вставьте в это поле:
IFTTT

Если вы удалите всё из поля Drive folder path и оставите это поле пустым, то IFTTT создаст на вашем гугл диске папку с названием "IFTTT" и поместит таблицу туда. Сервис IFTTT не может поместить таблицу в корень диска. Поэтому лучше укажите папку, чтобы было проще найти таблицу.

Нажмите на Create Action.

Нажмите Finish.

После этого вы увидите информацию о созданном событии.

Теперь всякий раз, когда бот отправит HTTP запрос на настроенный нами webhook, IFTTT возьмет переменные Value1, Value2, Value3 из этого запроса и автоматически добавит их в вашу Google таблицу.

Протестируем вебхук

Перейдите по ссылке https://ifttt.com/maker_webhooks и нажмите Documentation.

Если ссылка не работает, перейдите на главную https://ifttt.com/, кликните webhooks, кликните Documentation.

Откроется страница тестирования веб-хука. Эта страница поможет вам проверить, правильно ли вы выполнили предыдущие шаги и работает ли вебхук.

Вместо {event} напишите название своего события. Ранее вы скопировали его в блокнот, так что теперь скопируйте и вставьте его в это поле.

Если вы забыли название своего события, то перейдите на главную https://ifttt.com/, кликните Webhooks и посмотрите название своего event в списке. Вы увидите карточки с надписями "If Maker Event "testbot", then Add row to Google Drive spreadsheet". Значение в кавычках и есть название вашего события.

Название события нужно вставлять без кавычек и скобок!



В пропуски value1, value2, value3 напишите что угодно, например, по числу. Это будут значения ваших переменных.

Нажмите на Test it.

Перейдите в созданную гугл таблицу и проверьте, появилась ли строчка с этими данными.

Если строчка не появилась...

Если вы видите, что в таблице не появилась строчка, возможно, вы указали другое название таблицы или папки в настройках апплета, и IFTTT создал для вас другую таблицу.

Перейдите на главную https://ifttt.com, нажмите My services > Webhooks, нажмите на свой апплет, затем на Settings, и посмотрите, как указано название таблицы и название папки. Поищите эту таблицу у вас в гугл-диске.

Если тестирование было успешным...

Если строчка появилась, то снова вставьте название события в ячейку (так как иногда эта ячейка автоматически очищается):

Внизу образуется ссылка на вебхук. Скопируйте её и вставьте в блокнот:



Подключаем событие к боту...

Теперь нужно в сценарии добавить блок HTTP запрос, с помощью бота отправить HTTP-запрос на адрес вебхука в нашем событии и передать в запросе нужные данные. Этим сейчас и займёмся.

Перейдите в Aimylogic, откройте свой сценарий или создайте новый сценарий.

Добавьте блок Ввод текста.

Чтобы передать данные в таблицу, нужно записать их в какую-либо переменную. Поэтому добавим блок Ввод текста и назначим переменную $message. Всё, что напишет на данном этапе пользователь, будет помещено в эту переменную.



Свяжите "Переход после ввода $message" с блоком HTTP-запрос.



выберите метод POST

В поле URL HTTP-запроса вставьте адрес вебхука, который вы скопировали в блокнот ранее.

Вкладку RESPONSE заполнять не нужно.

Кликните на вкладку Body, скопируйте и вставьте туда следующее:

{
"value1": "$message"
}


Если в будущем вы захотите передавать три переменные, то вставляйте так (пропишите названия переменных, которые присутствуют в вашем сценарии):
{
"value1": "$message",
"value2": "$address",
"value3": "$quantity"
}


Но в данный момент давайте протестируем отправку только одной переменной - $message.

Перейдите на вкладку Headers и добавьте там заголовок
Content-Type
со значением
application/json



Нажмите Сохранить.

Если вы не заполните вкладку HEADERS то запрос будет завершен с ошибкой 400.

От "Завершен с ошибкой" сделайте связь с блоком с текстом:
ошибка отправки $httpStatus



От варианта "Завершен успешно" сделайте связь с текстовым блоком с текстом:

Ваши данные отправлены!



Теперь ваш бот отправит нужные вам значения в нужный вам сервис на IFTTT когда дойдет до блока HTTP запроса. Так вы можете передавать данные из бота в любые сервисы, которые поддерживаются в IFTTT.

Нажмите Тестировать, напишите боту своё сообщение (должно состоять из одной строки без разрывов) и проверьте, добавился ли данный текст в таблицу.



Если что-то не получается...

Убедитесь, что вы поставили метод HTTP-запроса - POST.
Убедитесь, что в HTTP-запросе на вкладке HEADERS указано:
Content-Type
со значением
application/json

Если вы видите ошибку -1, то убедитесь, что в url HTTP-запроса нет пробелов. Также убедитесь, что в названии вашего события нет фигурных скобок. Название нужно копировать без скобок и кавычек. Вот так неправильно:



Если вы видите ошибку 404, значит, неправильно оформлен http-запрос.

Если вы видите ошибку 400, значит, неправильно оформлен http-запрос. Обратите внимание на поле BODY. Например, вы не можете использовать одновременно одинарные - ' ' и двойные - " " кавычки.

Ошибка 400 может возникать, если в вашем тексте есть разрывы. Пожалуйста, вводите текст в одну строку. Если вы создаете апплет, создающий строку в гугл-таблице, то IFTTT может передавать только одну строку. Вы можете использовать javascript выражения в блоке Условия, чтобы устранять разрывы в введенном пользователями тексте.

Если вы отредактировали сценарий, продолжаете отсылать данные, но ничего не получается, значит, в ваш сценарий не поступили изменения. Остановите тестирование в тест-виджете и снова нажмите "Тестировать", чтобы изменения пришли в силу. Не рекомендуется также тестировать два сценария одновременно в разных вкладках.

Если всё же не получается отсылать данные, то проверьте, что в url запроса верно указано название вашего события . Проверьте название вашего события здесь - название события указывается в названии апплета в кавычках после "If Maker Event". В url запроса название события нужно указывать без кавычек и скобок.
Была ли эта статья полезна?
отменить
Спасибо!