Define un flujo de trabajo
Las aplicaciones pueden incluir flujos de trabajo. Cada llamada adefineWorkflow() describe un flujo de trabajo: un desencadenador y los pasos que ejecuta. Al instalarse, Twenty lo crea como un flujo de trabajo activo en el espacio de trabajo, listo para ejecutarse.
Este flujo de trabajo se ejecuta cuando se crea una empresa. Llama a una de las funciones lógicas de la aplicación y, después, escribe el resultado en la empresa:
src/workflows/score-new-companies.ts
- El flujo de trabajo, su desencadenador y cada paso necesitan su propio
universalIdentifier. Mantenlos estables entre versiones: así es como Twenty encuentra el flujo de trabajo instalado en la próxima instalación. nextStepIdsconecta el grafo. El desencadenador apunta a los primeros pasos, y cada paso apunta a los pasos que se ejecutan después de él.- Un paso lee la salida anterior con
{{trigger.\<path>}}o{{\<step universalIdentifier>.\<path>}}. - La compilación valida toda la definición: los tipos de desencadenador o de paso no compatibles, los enlaces de pasos rotos y las referencias a pasos desconocidos hacen que falle.
Referencia a otras entidades
Los pasos y los desencadenadores apuntan a metadatos mediante identificador universal, nunca por nombre o id:- Objetos y campos: los propios de tu aplicación o los estándar mediante
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS. El ejemplo anterior supone que la aplicación también define un campo numéricoleadScoreen Company condefineField(): un paso de registro que escribe en un campo que falta en el espacio de trabajo hace que falle la instalación. - Funciones lógicas: las propias de tu aplicación, expuestas como una acción de flujo de trabajo con
workflowActionTriggerSettings. La aplicación Personalizada del espacio de trabajo también puede hacer referencia a las acciones de flujo de trabajo de las otras aplicaciones instaladas en el espacio de trabajo, al igual que los flujos de trabajo creados en la aplicación. - Agentes: los propios de tu aplicación, de
defineAgent().
Disparadores
Un flujo de trabajo manual sin
availability no obtiene ninguna entrada en el menú de comandos.
Un flujo de trabajo de webhook escucha en https://\<your-twenty-domain>/webhooks/workflows/\<workspaceId>/\<workflowId>, donde workflowId es el id del flujo de trabajo instalado. El cuerpo de la solicitud está disponible como {{trigger.\<path>}}.
Pasos
Los flujos de trabajo de la aplicación admiten estos tipos de pasos:LOGIC_FUNCTION, AI_AGENT, HTTP_REQUEST, CLASSIFY, CREATE_RECORD, UPDATE_RECORD, UPSERT_RECORD, DELETE_RECORD, FIND_RECORDS, PICK_RECORD, FILTER, IF_ELSE, ITERATOR, FORM, DELAY, WAIT_FOR_EVENT, SEND_EMAIL, DRAFT_EMAIL, CREATE_CALENDAR_EVENT y EMPTY.
Sus entradas coinciden con los pasos del generador de flujos de trabajo, con identificadores universales en lugar de nombres:
- Los pasos de registro usan
objectUniversalIdentifieren lugar de un nombre de objeto. - Los filtros y las ordenaciones apuntan a campos con
fieldMetadataUniversalIdentifier. - Los campos de formulario de tipo
RECORDnombran su objeto consettings.objectUniversalIdentifier. Los campos de tipoSELECTyMULTI_SELECTofrecen las opciones de un campo existente del mismo tipo, denominado consettings.selectedFieldUniversalIdentifier. - Para ejecutar tu propio código, usa un paso
LOGIC_FUNCTION. El paso Code del constructor no está disponible. - Los pasos de correo electrónico y calendario se ejecutan solo si el rol de tu aplicación tiene el indicador de permiso correspondiente:
SystemPermissionFlag.SEND_EMAIL_TOOLparaSEND_EMAILyDRAFT_EMAIL,SystemPermissionFlag.CREATE_CALENDAR_EVENT_TOOLparaCREATE_CALENDAR_EVENT. El espacio de trabajo lo concede al instalar la aplicación, y el paso puede usar cualquier cuenta conectada en el espacio de trabajo, como un flujo de trabajo creado en la aplicación. - Los ID de las cuentas conectadas son locales para cada espacio de trabajo, así que no codifiques uno de forma fija. Pase la cuenta como una variable. Los pasos de correo electrónico también aceptan un id de miembro del espacio de trabajo, como
{{trigger.properties.after.assigneeId}}, que se resuelve en la primera cuenta de ese miembro que puede enviar.
Después de la instalación
- El flujo de trabajo está activo en cuanto se instala la aplicación, y sus ejecuciones aparecen junto con las otras ejecuciones de flujos de trabajo del espacio de trabajo.
- La instalación de una nueva versión de la aplicación actualiza el flujo de trabajo en el mismo lugar.
- Los usuarios no pueden editar un flujo de trabajo instalado. Para personalizar uno, lo duplican: la copia es suya para editarla.