В поисках решения ZAPIER - сопоставление входящего текста с разделителями-запятыми и кодами, хранящимися в Google Sheet - PullRequest
0 голосов
/ 17 сентября 2018

У нас есть ZAP, который запускается при отправке формы Zoho.

Одним из полей, передаваемых в ZAP из ZohoForm, является текстовое поле, содержащее одну или несколько строк, разделенных запятыми

например Строка одна, строка два, строка три, строка четыре

ZAP должен; 1. Разбейте этот текст на составные части, указанные через разделитель запятых. т.е. Строка первая Вторая строка Строка три Строка четыре

  1. Для каждого отдельного элемента из (1) выше выполните поиск в определенном листе Google, чтобы сопоставить строковое значение с кодом, приведенным в листе, где лист имеет форму Col A = значение поиска Col B = код

т.е. Строка одна 001 Строка две 092 Строка три 011 и т.д.

  1. Для каждого совпадения вернуть соответствующий код (заданный полкой B), а для каждого неудачного совпадения вернуть значение 999999

  2. Повторно сформируйте одну строку с разделителями-запятыми из результатов в шаге 3, т.е. 001, 092, 011, 999999

Таким образом, мы можем использовать ZAPIER Split Text Formatter для шага 1 выше, возвращая либо «позиции», либо «отдельные поля», но, похоже, не существует встроенной функции для их перебора, чтобы найти совпадение в Google. Лист.

Поддержка продукта ZAPIER говорит, что нам нужна функция Custom Javascript.

Любая помощь приветствуется, Спасибо

1 Ответ

0 голосов
/ 25 октября 2018

Я согласен с поддержкой продукта Zapier в том, что вам нужно использовать модуль кода Zapier, который позволяет программировать на Python или Javascript.

Может потребоваться изменить способ форматирования ваших данных, а также неясно, что вы собираетесь делать с данными после того, как они будут возвращены, предположительно, они записаны где-то еще.

Вот шаблон для такой архитектуры:

Чтобы итеративно передавать значения поиска в Zap-таблицу поиска Google, вам нужно настроить два отдельных zaps и быть знакомыми с Python или Javascript.

Первый Zap будет содержать триггер и шаг действия. Триггер будет «на новой форме, созданной в Zoho», шаг действия будет либо модулем кода Python, либо модулем Javascript, в зависимости от того, что вы предпочитаете. На шаге действия вам нужно будет поместить строку текстового поля в словарь input_data. Ваш код может выглядеть следующим образом (я написал это на Python, так как это то, с чем я знаком, но то же самое можно достичь в Javascript):

lookup_values = input_data.get("text_field")
lookup_values = lookup_values.split(",")
for value in lookup_values:
    requests.post(url="zapier_webhook.com", json={"lookup": value})

Вы заметите:

requests.post(url="zapier.webhook.com", json=value)

Это метод отправки и получения http-запросов. В этом случае я отправляю (request.post) данные json (json = значение) на URL-адрес конечной точки (url = "zapier.webhook.com"). URL-адрес, который я указал, является просто заполнителем, вам нужно настроить второй Zap, чтобы получить фактический URL-адрес конечной точки. Это будет все для первого зап.

Второй Zap будет иметь как минимум два zaps, триггер и действие. Возможно, вам придется добавить дополнительные действия в зависимости от того, что вы хотите сделать с вашими данными, но это хорошее место для начала. Триггер будет использовать триггер "catch hook" модуля Zapier webhook. Когда вы это настроите, Zapier предоставит вам URL-адрес конечной точки, на которую вы можете отправлять данные. Вам нужно будет заменить URL-адрес заполнителя из первого zap на этот URL-адрес. Данные, которые получит эта конечная точка, будут отдельными строками, отправленными ей с шага действия первого Zap. После настройки триггера вы можете настроить шаг действия, который будет вашим поиском на листе Google, выберите соответствующий лист и столбцы в шаблоне и в качестве значения поиска укажите данные, полученные на шаге триггера этого zap.


Пример использования данных из вашего вопроса:

ZAP_1
Шаг триггера: новая запись создана в Zoho
вход: данные записи Zoho
Вывод: text_field = "001, 092, 011"

Шаг действия: Модуль кода Zapier:
вход: text_field = "001, 092, 011"
Вывод кода:

lookup_values = ["001", "092", "011"]
# Iteration 1
requests.post(url="endpoint", json={"lookup": "001"})
# Iteration 2
requests.post(url="endpoint", json={"lookup" : "092"})
# Iteration 3
requests.post(url="endpoint", json={"lookup" : "011"})


ZAP_2 звонок 1
Шаг триггера: поймать пост-запрос
Выход: "001"

Действие Этап: Поиск строки таблицы
Вывод: карта значений строк

ZAP_2 вызов 2
Шаг триггера: поймать почтовый запрос
Выход: "092"

Действие Этап: Поиск строки электронной таблицы
Вывод: карта значений строк

ZAP_2 вызов 3
Шаг триггера: поймать пост-запрос
Выход: "011"

Действие Этап: Поиск строки таблицы
Вывод: карта значений строк


К сожалению, вы можете столкнуться с некоторыми проблемами, если строка не найдена, так как последующие шаги, использующие данные из вывода запроса на поиск в электронной таблице Google, не будут выполняться, если он не найден. Возможно, вместо установки флага 99999 для не найденных значений вы могли бы вместо этого установить флаг для найденных значений. Надеюсь, это помогло.

...