Определите рабочий процесс
Приложения могут включать рабочие процессы. Каждый вызовdefineWorkflow() описывает один рабочий процесс: триггер и выполняемые им шаги. При установке Twenty создает его как активный рабочий процесс в рабочей области, готовый к запуску.
Этот рабочий процесс запускается при создании компании. Она вызывает одну из логических функций приложения, затем записывает результат в компанию:
src/workflows/score-new-companies.ts
- Рабочий процесс, его триггер и каждый шаг должны иметь собственный
universalIdentifier. Сохраняйте их неизменными между релизами: по ним Twenty сопоставляет установленный рабочий процесс при следующей установке. nextStepIdsсвязывает граф. Триггер указывает на первые шаги, а каждый шаг указывает на шаги, выполняемые после него.- Шаг считывает предыдущий вывод с помощью
{{trigger.\<path>}}или{{\<step universalIdentifier>.\<path>}}. - Сборка проверяет всё определение: неподдерживаемые типы триггеров или шагов, повреждённые связи между шагами и ссылки на неизвестные шаги приводят к её сбою.
Ссылки на другие сущности
Шаги и триггеры ссылаются на метаданные по универсальному идентификатору, а не по имени или id:- Объекты и поля: собственные объекты и поля вашего приложения или стандартные через
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS. В приведённом выше примере предполагается, что приложение также определяет числовое полеleadScoreв Company с помощьюdefineField(): шаг записи, который записывает поле, отсутствующее в рабочем пространстве, приводит к сбою установки. - Логические функции: собственные функции вашего приложения, доступные как действие рабочего процесса с
workflowActionTriggerSettings. Пользовательское приложение рабочего пространства также может ссылаться на действия рабочих процессов других приложений, установленных в рабочем пространстве, как это могут рабочие процессы, созданные в приложении. - Агенты: собственные агенты вашего приложения из
defineAgent().
Триггеры
Ручной рабочий процесс без
availability не получает пункта меню команд.
Рабочий процесс webhook прослушивает https://\<your-twenty-domain>/webhooks/workflows/\<workspaceId>/\<workflowId>, где workflowId — это id установленного рабочего процесса. Тело запроса доступно как {{trigger.\<path>}}.
Шаги
Рабочие процессы приложения поддерживают следующие типы шагов: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 и EMPTY.
Их входные данные соответствуют шагам конструктора рабочих процессов, но вместо имён используются универсальные идентификаторы:
- Шаги записи используют
objectUniversalIdentifierвместо имени объекта. - Фильтры и сортировки ссылаются на поля с помощью
fieldMetadataUniversalIdentifier. - Поля формы типа
RECORDименуют свой объект с помощьюsettings.objectUniversalIdentifier. Поля типаSELECTиMULTI_SELECTпредлагают варианты существующего поля того же типа, именуемого с помощьюsettings.selectedFieldUniversalIdentifier. - Чтобы выполнить собственный код, используйте шаг
LOGIC_FUNCTION. Шаг Code в конструкторе недоступен. - Шаги электронной почты и календаря выполняются, только если роль вашего приложения имеет соответствующий флаг разрешения:
SystemPermissionFlag.SEND_EMAIL_TOOLдляSEND_EMAILиDRAFT_EMAIL,SystemPermissionFlag.CREATE_CALENDAR_EVENT_TOOLдляCREATE_CALENDAR_EVENT. Рабочая область предоставляет его при установке приложения, после чего шаг может использовать любую подключенную учетную запись в рабочей области, как рабочий процесс, созданный в приложении. - Идентификаторы подключенных учетных записей локальны для каждой рабочей области, поэтому не задавайте такой идентификатор жестко в коде. Передайте учетную запись в качестве переменной. Шаги электронной почты также принимают идентификатор участника рабочего пространства, например
{{trigger.properties.after.assigneeId}}, который разрешается в первую учетную запись этого участника, способную отправлять сообщения.
После установки
- Рабочий процесс становится активным сразу после установки приложения, а его запуски отображаются вместе с другими запусками рабочих процессов рабочего пространства.
- Установка новой версии приложения обновляет рабочий процесс на месте.
- Пользователи не могут редактировать установленный рабочий процесс. Чтобы настроить такой рабочий процесс, они создают его дубликат: копию можно редактировать.