Definisci un workflow
Le app possono includere workflow. Ogni chiamata adefineWorkflow() descrive un workflow: un trigger e i passaggi che esegue. Al momento dell’installazione, Twenty lo crea come workflow attivo nello spazio di lavoro, pronto per essere eseguito.
Questo workflow viene eseguito quando viene creata un’azienda. Chiama una delle funzioni logiche dell’app, quindi scrive il risultato nell’azienda:
src/workflows/score-new-companies.ts
- Il workflow, il relativo trigger e ogni passaggio necessitano del proprio
universalIdentifier. Mantienili stabili tra le release: è così che Twenty trova una corrispondenza con il workflow installato all’installazione successiva. nextStepIdscollega il grafo. Il trigger punta ai primi passaggi e ogni passaggio punta ai passaggi eseguiti dopo di esso.- Un passaggio legge l’output precedente con
{{trigger.\<path>}}o{{\<step universalIdentifier>.\<path>}}. - La build convalida l’intera definizione: tipi di trigger o passaggio non supportati, collegamenti tra passaggi non validi e riferimenti a passaggi sconosciuti causano l’errore.
Riferimento ad altre entità
I passaggi e i trigger puntano ai metadati tramite identificatore universale, mai tramite nome o id:- Oggetti e campi: quelli dell’app oppure quelli standard tramite
STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS. L’esempio precedente presuppone che l’app definisca anche un campo numericoleadScoresu Company condefineField(): un passaggio relativo a un record che scrive un campo assente dallo spazio di lavoro causa l’errore di installazione. - Funzioni logiche: quelle dell’app, esposte come azione del workflow con
workflowActionTriggerSettings. L’applicazione Custom dello spazio di lavoro può anche fare riferimento alle azioni dei workflow delle altre app installate nello spazio di lavoro, come possono fare i workflow creati nell’app. - Agenti: quelli dell’app, da
defineAgent().
Trigger
Un workflow manuale senza
availability non ottiene alcuna voce nel menu dei comandi.
Un workflow webhook resta in ascolto su https://\<your-twenty-domain>/webhooks/workflows/\<workspaceId>/\<workflowId>, dove workflowId è l’id del workflow installato. Il corpo della richiesta è disponibile come {{trigger.\<path>}}.
Passaggi
I workflow dell’applicazione supportano questi tipi di passaggio: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 e EMPTY.
I relativi input corrispondono ai passaggi del generatore di workflow, con identificatori universali al posto dei nomi:
- I passaggi relativi ai record usano
objectUniversalIdentifieranziché un nome di oggetto. - I filtri e gli ordinamenti puntano ai campi con
fieldMetadataUniversalIdentifier. - I campi del modulo di tipo
RECORDdenominano il proprio oggetto consettings.objectUniversalIdentifier. I campi di tipoSELECTeMULTI_SELECToffrono le opzioni di un campo esistente dello stesso tipo, denominato consettings.selectedFieldUniversalIdentifier. - Per eseguire il tuo codice, usa un passaggio
LOGIC_FUNCTION. Il passaggio Code del builder non è disponibile. - I passaggi email e calendario vengono eseguiti solo se il ruolo della tua app dispone del flag di autorizzazione corrispondente:
SystemPermissionFlag.SEND_EMAIL_TOOLperSEND_EMAILeDRAFT_EMAIL,SystemPermissionFlag.CREATE_CALENDAR_EVENT_TOOLperCREATE_CALENDAR_EVENT. Il workspace lo concede installando l’app e il passaggio può quindi usare qualsiasi account connesso nel workspace, come un workflow creato nell’app. - Gli ID degli account connessi sono locali a ogni spazio di lavoro, quindi non codificarne uno in modo fisso. Passa l’account come variabile. I passaggi Email accettano anche un ID membro dell’area di lavoro, ad esempio
{{trigger.properties.after.assigneeId}}, che viene risolto nel primo account di quel membro in grado di inviare.
Dopo l’installazione
- Il workflow è attivo non appena l’app viene installata e le relative esecuzioni vengono visualizzate insieme alle altre esecuzioni di workflow dello spazio di lavoro.
- L’installazione di una nuova versione dell’app aggiorna il workflow sul posto.
- Gli utenti non possono modificare un workflow installato. Per personalizzarne uno, lo duplicano: la copia può essere modificata da loro.