Автоматичне створення запису в одній формі при додаванні іншого запису в іншу

Мова: Українська
Цю статтю перекладено з англійської за допомогою ШІ, тому вона може містити помилки. Ваші відгуки допоможуть нам її покращити.

У цій статті описано, як налаштувати автоматизацію, яка створює новий запис в одній формі щоразу, коли запис додається до іншої, в тому числі, коли ці дві форми належать до різних баз даних.

Ми виступаємо в ролі адміністратора, який підтримує дві команди, що спільно використовують процес направлення. Команда "Здоров'я" реєструє направлення у формі Направлення. Коли направлення позначається для програми "Харчування", команда "Харчування" повинна бачити відповідний запис, що з'являється в їхній власній формі Реєстрація на програму харчування, без необхідності повторного введення даних.

Це дає результат, близький до Імпорту записів з однієї форми ActivityInfo в іншу, але він виконується автоматично і безперервно, і тільки для записів, які відповідають обраній вами умові, на відміну від одноразового імпорту, який ви запускаєте вручну.

Вбудований в ActivityInfo крок вебхука може надсилати деталі направлення в іншу систему, але він не може самостійно автентифікувати запит, який надсилає, а створення запису через API ActivityInfo вимагає автентифікації. Цей посібник направляє запит через Pipedream, безкоштовну платформу для робочих процесів, яка отримує вебхук, а потім надсилає автентифікований запит назад до ActivityInfo.

Перш ніж почати

  • Форма Направлення для відстеження з такими полями (підійде будь-яка форма, просто адаптуйте посилання на поля до вашої):

| Поле | Код | Тип ||-------|------|------|| Повне ім'я | NAME | Текст | | Програма | PROGRAM | Одиночний вибір (параметри включають "Харчування") |

| Поле | Код | Тип ||-------|------|------|| Повне ім'я | NAME | Текст |

  • Ідентифікатори форм Направлення та Реєстрація на програму харчування. Відкрийте кожну форму та перевірте адресний рядок браузера, або виберіть Налаштування форми, а потім Експортувати поля, що завантажить електронну таблицю з переліком ідентифікатора форми поряд з ідентифікатором та кодом кожного поля.
  • Персональний токен API з областю застосування "Читання-запис".
  • Безкоштовний обліковий запис Pipedream.

Ми посилаємося на поля за їхнім кодом (NAME, а не [Повне ім'я]). Якщо ваші поля ще не мають | кодів, знайдіть хвилину, щоб додати їх у конструкторі форм. Коди зберігають формули та шаблони читабельними | і не змінюються при перейменуванні.

Крок 1: Створіть робочий процес Pipedream для отримання вебхука

  1. Увійдіть до Pipedream і створіть новий, порожній робочий процес.

    New workflow
    New workflow
  2. Дайте назву вашому новому проєкту, натисніть "Create project and continue", введіть назву робочого процесу і натисніть "Create Workflow".

    Create a new project
    Create a new project
    Name project
    Name project
    Create workflow
    Create workflow
  3. Натисніть "Add Trigger" і виберіть New HTTP / Webhook Requests. Встановіть для авторизації значення "None". Натисніть "Save and continue". Pipedream згенерує унікальну URL-адресу для робочого процесу.

    Trigger
    Trigger
    Authorization to None
    Authorization to None
    Custom workflow URL
    Custom workflow URL
  4. Скопіюйте цю URL-адресу. Ви вставите її в ActivityInfo на Кроці 5.

Крок 2: Додайте автоматизацію в ActivityInfo

  1. Відкрийте базу даних, яка містить форму Направлення, і виберіть "Налаштування бази даних".

  2. Виберіть форму "Направлення".

  3. Виберіть Автоматизація на панелі деталей форми та виберіть Додати автоматизацію. Назвіть автоматизацію "Створити запис про реєстрацію на програму харчування".

    Add automation
    Add automation

Крок 3: Виберіть тригер

  1. Виберіть Натисніть тут, щоб почати.

    Click here to get started
    Click here to get started
  2. Зі списку типів тригерів виберіть При додаванні запису.

    On record added trigger
    On record added trigger
  3. Дайте тригеру назву, наприклад, "Направлення додано", а потім виберіть Вибрати форму.

    Label trigger
    Label trigger
  4. Виберіть форму Направлення та підтвердіть, натиснувши Вибрати форму.

    Select form
    Select form
  5. Виберіть Готово.

    On record added trigger
    On record added trigger

Крок 4: Новий крок для фільтрації записів програми "Харчування"

  1. Виберіть Додати крок, а потім Фільтр.

    Add a new step
    Add a new step
    Filter step
    Filter step
  2. Дайте кроку назву, наприклад, "Лише направлення на програму харчування".

  3. Введіть умову:

PROGRAM == "Nutrition"
  1. Виберіть Готово.

    Nutrition referrals only
    Nutrition referrals only

Лише направлення, які відповідають цій умові, переходять до наступного кроку. Дивіться довідку по кроку фільтрації.

Крок 5: Надішліть направлення до Pipedream

  1. Виберіть Додати крок.

    Add a new step
    Add a new step
  2. Виберіть Дія.

    Action
    Action
  3. Виберіть Викликати вебхук.

    Fire webhook
    Fire webhook
  4. Дайте кроку назву, наприклад, "Надіслати до Pipedream".

  5. Вставте URL-адресу робочого процесу Pipedream з Кроку 1 у поле URL вебхука.

  6. Залиште Формат корисного навантаження встановленим на "Стандартний". Запит передає кожне поле направлення, ключем якого є код. Інші формати дивіться у довідці по кроку вебхука.

  7. Виберіть Готово.

    Send to Pipedream
    Send to Pipedream
  8. Виберіть Зберегти. Тепер автоматизація активна.

    Save automation
    Save automation

Крок 6: Створіть запис про реєстрацію в Pipedream

Вбудована в Pipedream дія HTTP Request може викликати API ActivityInfo напряму, при цьому поля запису заповнюються з тригера.

  1. У робочому процесі Pipedream натисніть +, щоб додати крок, знайдіть "HTTP" і додайте дію Send any HTTP Request.

    Add step
    Add step
    HTTP / Webhook
    HTTP / Webhook
    Send any HTTP Request
    Send any HTTP Request
  2. Встановіть Method на POST та URL на:

https://www.activityinfo.org/resources/update
  1. Встановіть Authorization Type на "Basic Auth", введіть будь-яке значення як Ім'я користувача (наприклад, activityinfo) та ваш Персональний токен API як Пароль. Pipedream зберігає це надійно.

    Authorization
    Authorization
  2. У розділі Заголовки додайте Content-Type зі значенням application/json.

    Headers
    Headers
  3. У Тексті листа введіть запит у форматі raw JSON, вставляючи поля направлення з тригера. Знайдіть ідентифікатор форми Реєстрація на програму харчування, відкривши форму та перевіривши адресний рядок браузера.

    Get your formId
    Get your formId
    HTTP body
    HTTP body
{
  "changes": [
    {
      "formId": "c753uwsmu3y7lzvb",
      "recordId": "{{steps.trigger.event.body._id}}",
      "deleted": false,
      "fields": {
        "NAME": "{{steps.trigger.event.body.NAME}}",
        "INTAKE_DATE": "{{steps.trigger.event.body.REFDATE}}"
      }
    }
  ]
}
  1. Натисніть "Test", щоб підтвердити, що запит працює.

    Test HTTP request
    Test HTTP request
  2. Після успішного тестування розгорніть робочий процес.

    Deploy workflow
    Deploy workflow

Наведений вище recordId повторно використовує власний _id направлення як ідентифікатор запису про реєстрацію. Оскільки ідентифікатори записів є унікальними для всієї платформи, а не лише в межах однієї форми, це безпечне значення для повторного використання у формі Реєстрація на програму харчування, і це означає, що одне й те саме направлення завжди буде пов'язане з одним і тим самим записом про реєстрацію, а не створюватиме новий при кожній повторній спробі.

Кінцева точка оновити записи автентифікується так само, як і будь-який інший запит до API ActivityInfo: Базова автентифікація HTTP, з будь-яким значенням в якості імені користувача та Персональним токеном API в якості пароля. Поле з одиночним вибором, таке як PROGRAM, приймає назву опції або її ідентифікатор; поле з множинним вибором приймає масив назв або ідентифікаторів.

Крок 7: Тестування

  1. Додайте тестовий запис до форми Направлення з Програмою, встановленою на "Харчування".

    Add test record
    Add test record
  2. Відкрийте форму Реєстрація на програму харчування і перевірте, чи був створений новий запис, з ім'ям та датою, перенесеними з направлення.

    Test record added
    Test record added
  3. У Pipedream перевірте історію виконання робочого процесу, натиснувши на живі події. Має з'явитися нова подія з точним часом виконання робочого процесу, а крок HTTP-запиту має завершитися успішно.

    Run history
    Run history
  4. Додайте другий тестовий запис з іншою Програмою. Жодна подія не повинна дійти до Pipedream, і жоден запис про реєстрацію не повинен бути створений. Крок фільтрації зупиняє виконання до того, як спрацює вебхук.

    Test record to filter
    Test record to filter
  5. Перейдіть до налаштувань вашої бази даних, виберіть вашу автоматизацію та перегляньте її історію.

    Automation history
    Automation history

Усунення несправностей

  • ActivityInfo відповідає 401 Unauthorized. Переконайтеся, що в кроці HTTP-запиту тип авторизації — "Basic Auth", ім'я користувача — будь-яке значення, пароль — ваш Персональний токен API, а сам токен має область застосування "Читання-запис".
  • Жодна подія не доходить до Pipedream. Переконайтеся, що робочий процес розгорнуто (Крок 6), і що URL вебхука, вставлений у крок "Викликати вебхук" (Крок 5), точно відповідає URL тригера Pipedream. Також перевірте історію автоматизації, щоб побачити статус.
  • Вебхук ніколи не спрацьовує, навіть для направлення "Харчування". Перевірте умову фільтра на точну відповідність: PROGRAM == "Nutrition" порівнює з назвою опції (або кодом, якщо поле його має) точно так, як вона відображається у формі, включаючи регістр та пробіли.

Подальші кроки

  • Синхронізуйте два записи при редагуванні, а не тільки при створенні: додайте другу автоматизацію, використовуючи тригер При редагуванні запису, що вказує на той самий робочий процес Pipedream. Оскільки ідентифікатор запису про реєстрацію завжди походить від ідентифікатора направлення, та сама дія HTTP-запиту оновлює існуючий запис про реєстрацію, а не створює новий.

Схожі статті

Наступний елемент
Налаштуйте свою першу автоматизацію (з використанням Pipedream)