Idioma: Español
Este artículo describe cómo configurar una automatización que crea un nuevo registro en un formulario cada vez que se añade un registro a otro, incluso cuando los dos formularios pertenecen a bases de datos diferentes.
Asumimos el rol de un administrador que apoya a dos equipos que comparten un proceso de referencia. El equipo de Salud registra las referencias en un formulario de Referencia. Cuando una referencia se marca para el programa de Nutrición, el equipo de Nutrición debería ver aparecer un registro coincidente en su propio formulario de Ingreso de Nutrición, sin que nadie tenga que volver a escribir los detalles.
Esto logra un resultado cercano a Importar registros de un Formulario de ActivityInfo a otro, pero se ejecuta de forma automática y continua, y solo para los registros que cumplen una condición que usted elija, en lugar de una importación única que usted inicia manualmente.
El paso de webhook integrado de ActivityInfo puede enviar los detalles de la referencia a otro sistema, pero no puede autenticar por sí mismo la solicitud que envía, y la creación de un registro a través de la API de ActivityInfo requiere autenticación. Este tutorial enruta la solicitud a través de Pipedream, una plataforma de flujo de trabajo gratuita que recibe el webhook y luego envía una solicitud autenticada de vuelta a ActivityInfo.
Antes de empezar
- Un formulario de Referencia para vigilar, con estos campos (cualquier formulario servirá, ajuste las referencias de los campos a los suyos):
| Campo | Código | Tipo ||---|---|---|| Nombre completo | NAME | Texto | | Programa | PROGRAM | Selección única (las opciones incluyen "Nutrición") |
| Campo | Código | Tipo ||---|---|---|| Nombre completo | NAME | Texto |
- Los ID de los formularios de Referencia e Ingreso de Nutrición. Abra cada formulario y compruebe la barra de direcciones del navegador, o seleccione Configuración del formulario, y luego Exportar campos, lo que descarga una hoja de cálculo que enumera el ID del formulario junto con el ID y el código de cada campo.
- Un Token de API Personal con alcance de 'Leer y Escribir'.
- Una cuenta gratuita de Pipedream.
Hacemos referencia a los campos por su código en todo momento (NAME en lugar de [Nombre completo]). Si sus campos aún no tienen códigos, tómese un minuto para añadirlos en el diseñador de formularios. Los códigos mantienen las fórmulas y plantillas legibles y sobreviven a los cambios de etiqueta.
Paso 1: Crear un flujo de trabajo en Pipedream para recibir el webhook
Inicie sesión en Pipedream y cree un nuevo flujo de trabajo en blanco.
Nuevo flujo de trabajo Dé un nombre a su nuevo proyecto, haga clic en "Create project and continue", ingrese un nombre para el flujo de trabajo y haga clic en "Create Workflow".
Crear un nuevo proyecto
Nombrar proyecto
Crear flujo de trabajo Haga clic en "Add Trigger" y seleccione New HTTP / Webhook Requests. Establezca la Autorización en "None". Haga clic en "Save and continue". Pipedream genera una URL única para el flujo de trabajo.
Desencadenador
Autorización en Ninguna
URL de flujo de trabajo personalizado Copie esta URL. La pegará en ActivityInfo en el Paso 5.
Paso 2: Añadir la automatización en ActivityInfo
Abra la base de datos que contiene el formulario de Referencia y seleccione 'Configuración de la base de datos'.
Seleccione el formulario de 'Referencia'.
Seleccione Automatizaciones en el panel de detalles del formulario y seleccione Añadir automatización. Nombre la automatización 'Crear registro de ingreso de nutrición'.
Añadir automatización
Paso 3: Elegir el desencadenador
Seleccione Haga clic aquí para empezar.
Haga clic aquí para empezar De la lista de tipos de desencadenadores, elija Cuando se añade un registro.
Desencadenador Cuando se añade un registro Dé una etiqueta al desencadenador, por ejemplo 'Referencia añadida', y luego seleccione Seleccionar formulario.
Etiquetar desencadenador Elija el formulario de Referencia y confirme con Seleccionar formulario.
Seleccionar formulario Seleccione Está hecho.
Desencadenador Cuando se añade un registro
Paso 4: Nuevo paso para Filtrar los registros del programa 'Nutrición'
Seleccione Añadir paso, y luego Filtro.
Añadir paso
Paso de filtro Dé una etiqueta al paso, por ejemplo 'Solo referencias de nutrición'.
Ingrese la condición:
PROGRAM == "Nutrition"
Seleccione Está hecho.
Solo referencias de nutrición
Solo las referencias que pasan esta condición continúan al siguiente paso. Consulte la referencia del paso de filtro.
Paso 5: Enviar la referencia a Pipedream
Seleccione Añadir paso.
Añadir paso Seleccione Acción.
Acción Seleccione Ejecutar webhook.
Ejecutar webhook Dé una etiqueta al paso, por ejemplo 'Enviar a Pipedream'.
Pegue la URL del flujo de trabajo de Pipedream del Paso 1 en el campo URL de webhook.
Deje el Formato de carga útil en 'Estándar'. La solicitud lleva todos los campos de la referencia, identificados por su código. Consulte la referencia del paso de webhook para los otros formatos.
Seleccione Está hecho.
Enviar a Pipedream Seleccione Guardar. La automatización está ahora activa.
Guardar automatización
Paso 6: Crear el registro de ingreso en Pipedream
La acción integrada de Pipedream HTTP Request puede llamar directamente a la API de ActivityInfo, con los campos del registro rellenados desde el desencadenador.
En el flujo de trabajo de Pipedream, seleccione + para añadir un paso, busque 'HTTP' y añada la acción Send any HTTP Request.
Añadir paso
HTTP / Webhook
Enviar cualquier solicitud HTTP Establezca Method en
POSTy URL en:
https://www.activityinfo.org/resources/update
Establezca Authorization Type en 'Basic Auth', ingrese cualquier valor como Nombre de usuario (por ejemplo
activityinfo), y su Token de API Personal como Contraseña. Pipedream almacena esto de forma segura.
Autorización En Encabezados, añada
Content-Typecon el valorapplication/json.
Encabezados En el Cuerpo, ingrese la solicitud como JSON sin procesar, insertando los campos de la referencia desde el desencadenador. Encuentre el ID del formulario de Ingreso de Nutrición abriendo el formulario y comprobando la barra de direcciones del navegador.
Obtenga su ID de formulario
Cuerpo HTTP
{
"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}}"
}
}
]
}
Haga clic en "Test" para confirmar que la solicitud funciona.
Probar solicitud HTTP Después de una prueba exitosa, despliegue el flujo de trabajo.
Desplegar flujo de trabajo
El recordId anterior reutiliza el propio _id de la referencia como el ID del registro de ingreso. Dado que los ID de registro son únicos en toda la plataforma, no solo dentro de un formulario, este es un valor seguro para reutilizar en el formulario de Ingreso de Nutrición, y significa que la misma referencia siempre se asigna al mismo registro de ingreso en lugar de crear uno nuevo en cada reintento.
El punto final de actualización de registros se autentica de la misma manera que cualquier otra solicitud de la API de ActivityInfo: Autenticación básica HTTP, con cualquier valor como nombre de usuario y el Token de API Personal como contraseña. Un campo de selección única como PROGRAM acepta la etiqueta de la opción o su ID; un campo de selección múltiple acepta un array de etiquetas o IDs.
Paso 7: Prueba
Añada un registro de prueba al formulario de Referencia con el Programa establecido en 'Nutrición'.
Añadir registro de prueba Abra el formulario de Ingreso de Nutrición y compruebe que se ha creado un nuevo registro, con el nombre y la fecha transferidos desde la referencia.
Registro de prueba añadido En Pipedream, compruebe el historial de ejecución del flujo de trabajo haciendo clic en los eventos en vivo. Debería aparecer un nuevo evento con la hora exacta en que se ejecutó el flujo de trabajo, y el paso de la solicitud HTTP debería completarse con éxito.
Historial de ejecución Añada un segundo registro de prueba con un Programa diferente. Ningún evento debería llegar a Pipedream, y no debería crearse ningún registro de ingreso. El paso de filtro detiene la ejecución antes de que se ejecute el webhook.
Registro de prueba para filtrar Vaya a la configuración de su base de datos, seleccione su automatización y vea su historial.
Historial de automatización
Solución de problemas
- ActivityInfo responde con
401 Unauthorized. Confirme que el Tipo de Autorización del paso de Solicitud HTTP es 'Autenticación básica', con cualquier valor como Nombre de usuario y su Token de API Personal como Contraseña, y que el token tiene alcance de 'Leer y Escribir'. - Ningún evento llega a Pipedream. Confirme que el flujo de trabajo está desplegado (Paso 6), y que la URL de Webhook pegada en el paso Ejecutar webhook (Paso 5) coincide exactamente con la URL del desencadenador de Pipedream. También compruebe el historial de la automatización para ver el estado.
- El webhook nunca se ejecuta, incluso para una referencia de 'Nutrición'. Compruebe la condición del filtro para una coincidencia exacta:
PROGRAM == "Nutrition"compara con la etiqueta de la opción (o el código, si el campo tiene uno) exactamente como aparece en el formulario, incluyendo mayúsculas y espaciado.
Para ir más allá
- Mantenga los dos registros sincronizados en las ediciones, no solo en la creación: añada una segunda automatización utilizando el desencadenador Cuando se edita el registro, apuntando al mismo flujo de trabajo de Pipedream. Dado que el ID del registro de ingreso siempre se deriva del ID de la referencia, la misma acción de Solicitud HTTP actualiza el registro de ingreso existente en lugar de crear uno nuevo.