Portal Community
Trigger Nodes Have No Upstream Inputs The Manual Trigger is always the first node in a workflow and has no upstream data connections. All output data comes from: (a) the payload passed by the caller in the POST body, and (b) metadata generated by BizFirstAI at trigger time, such as who triggered it and when.

Output Ports

Port Name When Triggered Description
main On every successful manual invocation (UI button or API call) The primary output port. Contains the caller's input payload merged with BizFirstAI execution metadata. All subsequent nodes receive this as their starting data object.

Output Data

Key Type Description
input Object The parsed JSON body submitted by the caller. When triggered from the portal form, this contains the values the user entered. When triggered via API, this is the deserialized POST body. Empty object {} if no body was provided.
triggered_by Object Information about the identity that triggered the workflow. Contains user_id, email, display_name, and roles array for human triggers. Contains api_key_id and label for API key triggers.
triggered_at ISO 8601 String UTC timestamp of when the workflow was manually triggered. Format: 2024-06-15T09:15:00.000Z.
trigger_source Enum String How the workflow was triggered. One of: portal_ui (clicked from the BizFirstAI portal), api (called via the REST API), embedded_button (triggered from an embedded application button).
execution_id String Unique identifier for this execution instance. Use this to track the run in execution logs or return it to the caller for polling.
workflow_id String The ID of the workflow that is running. Useful for audit logging within the workflow itself.
workflow_version String The version of the workflow definition that is executing. Helps with debugging when workflows have multiple deployed versions.

Data Flow Example

Below is the complete output object produced when an HR manager triggers an employee onboarding workflow from the BizFirstAI portal, having filled in the input form with the new hire's details.

{
  "input": {
    "employee_name": "Priya Sharma",
    "employee_email": "priya.sharma@acmecorp.com",
    "department": "Engineering",
    "start_date": "2024-07-01",
    "manager_email": "rob.patel@acmecorp.com"
  },
  "triggered_by": {
    "user_id": "usr_K7mNpQr9",
    "email": "sarah.jones@acmecorp.com",
    "display_name": "Sarah Jones",
    "roles": ["hr_manager", "employee"]
  },
  "triggered_at": "2024-06-15T09:15:30.000Z",
  "trigger_source": "portal_ui",
  "execution_id": "exec_9Wm4kRt2vXpLnZ",
  "workflow_id": "wf_employee_onboarding_v2",
  "workflow_version": "2.3.1"
}

Accessing Data in Downstream Nodes

Reference any part of the trigger output using BizFirst expressions in subsequent nodes:

ExpressionReturns
{{ $trigger.input.employee_name }}"Priya Sharma"
{{ $trigger.input.employee_email }}"priya.sharma@acmecorp.com"
{{ $trigger.input.department }}"Engineering"
{{ $trigger.triggered_by.email }}"sarah.jones@acmecorp.com"
{{ $trigger.triggered_by.display_name }}"Sarah Jones"
{{ $trigger.triggered_at }}"2024-06-15T09:15:30.000Z"
{{ $trigger.execution_id }}"exec_9Wm4kRt2vXpLnZ"
Input Validation If you define an input_schema, BizFirstAI validates the caller's payload before the workflow starts. If the payload does not conform to the schema, the trigger returns a 400 Bad Request response and the workflow does not execute — no output is produced on the main port.