Skip to main content
The product enforces synergy so that automations stay valid:
  1. Trigger → action: If an action appears in ALLOWED_TRIGGERS_BY_ACTION, only those triggers may use it.
  2. Action → next action: If an action appears in ALLOWED_NEXT_ACTIONS, only the listed actions may come immediately after it in the ordered sequence (steps or graph traversal).
If an action is not in those maps (or the map entry is missing), the default is permissive: any trigger and almost any next action.
Source of truth: packages/shared/src/workflow-synergy.ts (ALLOWED_TRIGGERS_BY_ACTION, ALLOWED_NEXT_ACTIONS). The API and UI call the same validation.

Rule 1 — Allowed triggers per action

ActionAllowed triggers
create_investigationalert_created, rule_triggered
generate_checklist, assign_to, add_notealert_created, investigation_created, investigation_status_changed, investigation_updated
start_investigation, change_status, change_priority, set_stage_role_accessinvestigation_created, investigation_status_changed, investigation_updated
set_entity_status, run_risk_matrixentity_created, create_entity_flow, alert_created, investigation_created, investigation_status_changed, investigation_updated, transaction_created, rule_triggered, kyc_approved, kyc_rejected, kyc_validation_finished, manual_execution
run_basic_enrichmentmanual_execution, entity_created, create_entity_flow
run_enrichment, run_shareholders_flowentity_created, create_entity_flow (run_shareholders_flow also allows manual_execution)
create_kyc_validationentity_created, create_entity_flow, alert_created, rule_triggered, kyc_approved, kyc_rejected, kyc_validation_finished, manual_execution
request_transaction_approval, set_transaction_statustransaction_created, rule_triggered, manual_execution, scheduled
Default permissive: send_webhook, send_push_notification, create_alert, and any action not listed above accept any trigger. Notable: scheduled is not in the allowed list for set_entity_status, run_risk_matrix, run_enrichment, create_kyc_validation, etc. Design scheduled automations that only use actions permitted for scheduled.

Rule 2 — Allowed next action (immediate successor)

Only the immediate pair is checked. For graphs, the engine orders actions (e.g. BFS from the trigger) and validates the same pairs.
Previous actionMay be followed immediately by
run_enrichmentrun_risk_matrix, set_entity_status, create_alert, send_webhook, send_push_notification, create_kyc_validation
run_basic_enrichmentrun_shareholders_flow, run_risk_matrix, set_entity_status, create_alert, send_webhook, send_push_notification, create_kyc_validation
run_shareholders_flowrun_risk_matrix, set_entity_status, create_alert, send_webhook, send_push_notification, create_kyc_validation
run_risk_matrixset_entity_status, create_alert, send_webhook, send_push_notification, create_kyc_validation
set_entity_statusrun_risk_matrix, create_alert, send_webhook, send_push_notification, create_kyc_validation
create_alertsend_webhook, send_push_notification, create_investigation
create_kyc_validationset_entity_status, create_alert, send_webhook, send_push_notification, run_risk_matrix
create_investigationassign_to, add_note, change_status, change_priority, set_stage_role_access, send_webhook, send_push_notification, generate_checklist, start_investigation
start_investigation, change_status, change_priority, assign_to, set_stage_role_access, add_note, generate_checklistassign_to, add_note, change_status, change_priority, set_stage_role_access, send_webhook, send_push_notification, generate_checklist (same for each; no start_investigation as successor except from create_investigation)
request_transaction_approvalset_transaction_status, send_webhook, send_push_notification
set_transaction_statusrequest_transaction_approval, send_webhook, send_push_notification
Default permissive: If an action is not in this table, any action may follow.

Typical chains (examples)

  • Onboarding: run_enrichmentrun_risk_matrixset_entity_statuscreate_alert / create_kyc_validation.
  • Alert triage: create_investigationassign_tochange_statussend_webhook.
  • Payments: request_transaction_approvalset_transaction_statussend_webhook.
Errors on save usually mean trigger ↔ action or action → next action failed validation.
Maintenance: When changing synergy in code, update workflow-synergy.ts first, then this page.