{
    "fields": {
        "name": {
            "type": "varchar",
            "required": true,
            "trim": true
        },
        "entityType": {
            "type": "varchar",
            "required": true,
            "view": "advanced:views/workflow/fields/entity-type",
            "tooltip": true
        },
        "type": {
            "type": "enum",
            "options": [
                "afterRecordCreated",
                "afterRecordUpdated",
                "afterRecordSaved",
                "manual",
                "scheduled",
                "sequential",
                "signal"
            ],
            "default": "afterRecordCreated",
            "index": true,
            "tooltip": true
        },
        "signalName": {
            "type": "varchar",
            "maxLength": 200,
            "trim": true,
            "options": [
                "@create",
                "@update",
                "@delete",
                "@leadCapture",
                "@optOut"
            ],
            "audited": true
        },
        "isActive": {
            "type": "bool",
            "default": true,
            "audited": true
        },
        "isInternal": {
            "type": "bool",
            "default": false,
            "readOnly": true,
            "utility": true
        },
        "description": {
            "type": "text"
        },
        "conditionsAll": {
            "type": "jsonArray",
            "audited": true,
            "view": "views/fields/json-object"
        },
        "conditionsAny": {
            "type": "jsonArray",
            "audited": true,
            "view": "views/fields/json-object"
        },
        "conditionsFormula": {
            "type": "text",
            "audited": true
        },
        "actions": {
            "type": "jsonArray",
            "audited": true,
            "view": "views/fields/json-object"
        },
        "portalOnly": {
            "type": "bool",
            "tooltip": true,
            "audited": true
        },
        "portal": {
            "type": "link",
            "tooltip": true,
            "audited": true
        },
        "targetReport": {
            "type": "link",
            "view": "advanced:views/workflow/fields/target-report",
            "audited": true,
            "tooltip": true
        },
        "scheduling": {
            "type": "varchar",
            "maxLength": 48,
            "default": "0 0 * * *",
            "tooltip": true,
            "view": "advanced:views/workflow/fields/scheduling",
            "audited": true,
            "noSpellCheck": true,
            "validatorClassNameList": [
                "Espo\\Modules\\Advanced\\Classes\\FieldValidators\\Workflow\\Scheduling\\Valid"
            ]
        },
        "schedulingApplyTimezone": {
            "type": "bool",
            "default": true,
            "tooltip": true
        },
        "lastRun": {
            "type": "datetime",
            "readOnly": true,
            "exportDisabled": true
        },
        "flowchart": {
            "type": "link",
            "noJoin": true,
            "utility": true,
            "exportDisabled": true,
            "importDisabled": true
        },
        "manualDynamicLogic": {
            "type": "jsonObject",
            "view": "advanced:views/workflow/fields/manual-dynamic-logic",
            "tooltip": true
        },
        "manualTeams": {
            "type": "linkMultiple",
            "tooltip": true
        },
        "manualLabel": {
            "type": "varchar",
            "maxLength": 100,
            "tooltip": true
        },
        "manualAccessRequired": {
            "type": "enum",
            "options": [
                "read",
                "edit",
                "admin"
            ],
            "default": "read",
            "tooltip": true
        },
        "manualElementType": {
            "type": "enum",
            "options": [
                "Button",
                "Dropdown-Item"
            ],
            "default": "Button"
        },
        "manualConfirmation": {
            "type": "bool",
            "default": true,
            "tooltip": true
        },
        "manualConfirmationText": {
            "type": "text",
            "tooltip": true
        },
        "manualStyle": {
            "type": "enum",
            "options": [
                "",
                "danger",
                "success",
                "info",
                "warning"
            ],
            "translation": "LayoutManager.options.style",
            "style": {
                "danger": "danger",
                "success": "success",
                "info": "info",
                "warning": "warning"
            }
        },
        "category": {
            "type": "link",
            "view": "views/fields/link-category-tree"
        },
        "processOrder": {
            "type": "int",
            "required": true,
            "tooltip": true,
            "default": 1
        },
        "createdAt": {
            "type": "datetime",
            "readOnly": true
        },
        "modifiedAt": {
            "type": "datetime",
            "readOnly": true
        },
        "createdBy": {
            "type": "link",
            "readOnly": true
        },
        "modifiedBy": {
            "type": "link",
            "readOnly": true
        }
    },
    "links": {
        "createdBy": {
            "type": "belongsTo",
            "entity": "User"
        },
        "modifiedBy": {
            "type": "belongsTo",
            "entity": "User"
        },
        "portal": {
            "type": "belongsTo",
            "entity": "Portal"
        },
        "targetReport": {
            "type": "belongsTo",
            "entity": "Report"
        },
        "category": {
            "type": "belongsTo",
            "foreign": "workflows",
            "entity": "WorkflowCategory"
        },
        "manualTeams": {
            "type": "hasMany",
            "entity": "Team",
            "foreign": "manualWorkflows"
        },
        "workflowLogRecords": {
            "type": "hasMany",
            "entity": "WorkflowLogRecord",
            "foreign": "workflow"
        },
        "flowchart": {
            "type": "belongsTo",
            "entity": "BpmnFlowchart",
            "foreign": "startWorkflows"
        }
    },
    "collection": {
        "sortBy": "createdAt",
        "asc": false
    },
    "conditionFieldTypes": {
        "varchar": "varchar",
        "enum": "enum",
        "enumInt": "enum",
        "enumFloat": "enum",
        "phone": "varchar",
        "email": "varchar",
        "url": "varchar",
        "int": "int",
        "currency": "currency",
        "float": "float",
        "decimal": "decimal",
        "bool": "bool",
        "password": "varchar",
        "text": "text",
        "wysiwyg": "text",
        "link": "link",
        "file": "link",
        "image": "link",
        "linkParent": "linkParent",
        "date": "date",
        "datetime": "date",
        "datetimeOptional": "date",
        "linkMultiple": "linkMultiple",
        "attachmentMultiple": "attachmentMultiple",
        "checklist": "array",
        "multiEnum": "array",
        "array": "array",
        "urlMultiple": "array"
    },
    "fieldDefinitions": {
        "date": "date",
        "datetime": "date",
        "datetimeOptional": "date"
    },
    "fieldDefinitionsFieldViews": {
        "duration": "advanced:views/workflow/field-definitions/fields/duration"
    },
    "fieldTypeActions": {
        "linkMultiple": [
            "update",
            "add",
            "remove"
        ],
        "array": [
            "update",
            "add",
            "remove"
        ],
        "multiEnum": [
            "update",
            "add",
            "remove"
        ],
        "checklist": [
            "update",
            "add",
            "remove"
        ]
    },
    "fieldTypeComparison": {
        "enumInt": ["int"],
        "enumFloat": ["float", "decimal"],
        "date": ["datetime", "datetimeOptional"],
        "datetime": ["date", "datetimeOptional"],
        "datetimeOptional": ["date", "datetime"],
        "float": ["enumFloat", "int", "decimal"],
        "decimal": ["enumFloat", "int", "float"],
        "linkMultiple": "link",
        "email": ["varchar"],
        "phone": ["varchar"],
        "personName": ["varchar"],
        "varchar": ["email", "phone"],
        "text": ["varchar"],
        "wysiwyg": ["varchar"],
        "linkParent": ["link", "linkParent", "id"]
    },
    "ignoreActualAttributesOnValueCopyFieldList": [
        "personName",
        "email",
        "phone"
    ],
    "entityListToIgnore": [
        "PhoneNumber",
        "Notification",
        "EmailAddress",
        "Attachment",
        "Extension",
        "Currency",
        "Reminder",
        "PasswordChangeRequest",
        "Workflow",
        "AuthToken",
        "Team",
        "Role",
        "EmailAccount",
        "EmailTemplate",
        "ExternalAccount",
        "Integration",
        "Job",
        "Preferences",
        "ScheduledJob",
        "ScheduledJobLogRecord",
        "Settings",
        "UniqueId",
        "InboundEmail",
        "BpmnFlowchart",
        "Report",
        "WorkingTimeCalendar",
        "Template"
    ],
    "forcedSupportEntityList": [
        "LeadCaptureLogRecord"
    ],
    "assignmentRuleList": [
        "Round-Robin",
        "Least-Busy"
    ],
    "actionList": [
        "sendEmail",
        "createEntity",
        "createRelatedEntity",
        "updateEntity",
        "updateRelatedEntity",
        "relateWithEntity",
        "unrelateFromEntity",
        "applyAssignmentRule",
        "triggerWorkflow",
        "createNotification",
        "makeFollowed",
        "runService",
        "startBpmnProcess",
        "sendRequest",
        "executeFormula"
    ],
    "serviceActions": {
        "Quote": {
            "addQuoteItemList": {
                "serviceName": "QuoteWorkflow",
                "methodName": "addItemList"
            },
            "convertCurrency": {
                "serviceName": "QuoteWorkflow",
                "methodName": "convertCurrency"
            },
            "sendInEmail": {
                "serviceName": "QuoteWorkflow",
                "methodName": "sendInEmail"
            }
        },
        "Invoice": {
            "addInvoiceItemList": {
                "serviceName": "InvoiceWorkflow",
                "methodName": "addItemList"
            },
            "convertCurrency": {
                "serviceName": "InvoiceWorkflow",
                "methodName": "convertCurrency"
            },
            "sendInEmail": {
                "serviceName": "InvoiceWorkflow",
                "methodName": "sendInEmail"
            }
        },
        "SalesOrder": {
            "addSalesOrderItemList": {
                "serviceName": "SalesOrderWorkflow",
                "methodName": "addItemList"
            },
            "convertCurrency": {
                "serviceName": "SalesOrderWorkflow",
                "methodName": "convertCurrency"
            },
            "sendInEmail": {
                "serviceName": "SalesOrderWorkflow",
                "methodName": "sendInEmail"
            }
        },
        "Opportunity": {
            "convertCurrency": {
                "serviceName": "OpportunityWorkflow",
                "methodName": "convertCurrency"
            }
        }
    }
}
