Использование URL-ссылок для изменения задач Asana

#webhooks #zapier #asana #asana-api

#webhooks #zapier #asana #asana-api

Вопрос:

Мы используем «Проект» Asana, доступный только для чтения, для управления нашей проектной работой. Наша проектная работа организована как задачи Asana. Каждая задача представляет собой отдельный дизайн-проект. Причина, по которой он доступен только для чтения, заключается в том, чтобы ограничить пользователей Asana от случайного внесения изменений в детали проекта и запретить пользователям Asana создавать свои собственные задачи, которые выходят за рамки стандартной структуры задач, которую мы выбрали.

Для создания этих задач в Asana мы используем комбинацию Co&nito forms и Zapier для автоматического создания задач. Наш клиент заполняет форму Co&nito, и Zapier автоматически заполняет Asana задачей проектирования, которую необходимо выполнить для этого конкретного клиента.

Проблема с этой настройкой заключается в том, что для перемещения задач в Asana для предоставления команде «обновлений» это должен сделать либо пользователь Asana с правами на запись, либо пользователь Asana должен заполнить форму для внесения изменений, поскольку у них есть права только на чтение. Мы предпочли бы, чтобы это было очень просто, и я нашел способ сделать это с помощью Zapier webhooks.

Поскольку мы используем Zapier, я могу форматировать URL-ссылки любым удобным мне способом. Я могу создать URL-ссылку, которая включает идентификатор задачи Asana и раздел Asana, в который необходимо переместить задачу. Используя webhooks, пользователь может щелкнуть URL-адрес «Изменить раздел». Нажатие на этот URL вызовет действие Zapier Zap, которое затем изменит раздел задач Asana. Просто щелкнув ссылку, пользователь может внести изменения в эту задачу.

Мой вопрос довольно простой. Есть ли способ запретить URL-адресу открывать страницу, но при этом данные в URL-адресе по-прежнему передавались в Zapier? Когда пользователь нажимает на ссылку, открывается веб-страница, а я не хочу, чтобы это происходило. Или, если это произойдет, может ли веб-страница сразу закрыться после открытия?

Ответ №1:

Короткие ответы таковы: «нет, невозможно щелкнуть ссылку zapier и страница не откроется или автоматически закроется» из коробки.


Длинный ответ немного сложнее. Я предполагаю, что ваш URL-адрес выглядит примерно так https://hooks.zapier.com/hooks/catch/1234/abcd?name=johnamp;cool=true , позволяя вам передавать «name» и «cool» в Zapier.

Чтобы передать это в Zapier, вам необходимо получить содержимое этого URL-адреса, либо загрузив его в веб-браузер, либо вызвав его с помощью другого инструмента (такого как fetch или curl ).

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

  1. прочитайте URL-адрес Zapier webhook из строки запроса (возможно, стоит закодировать)
  2. При загрузке страницы запустите await fetch(thatUrl)
  3. Попросите пользователя закрыть страницу (что обеспечивает лучший пользовательский интерфейс, чем ответ JSON или black, который вы получаете от Zapier). Я думал, что JS может закрыть любую страницу, но оказывается, window.close() это работает, только если скрипт открыл страницу (docs).

Итак, это приемлемое решение.