Portal Community
How to Use These Examples Each example includes a full node configuration JSON and the input_schema used to generate the portal form. Copy the configuration into the Manual Trigger node's JSON editor in the workflow canvas.

Example 1 — Employee Onboarding Trigger

HR managers trigger this workflow to start the onboarding process for a new hire. The input schema generates a portal form collecting essential employee details. Only users with the hr_manager or hr_admin role can trigger this workflow.

{
  "node_type": "ManualTrigger",
  "name": "New Employee Onboarding",
  "config": {
    "trigger_label": "Start Onboarding",
    "description": "Initiate the full onboarding process for a new hire. This will provision system accounts, send the welcome email, and schedule orientation.",
    "allowed_roles": ["hr_manager", "hr_admin", "super_admin"],
    "require_authentication": true,
    "response_mode": "onReceived",
    "response_data": {
      "status": "onboarding_started",
      "execution_id": "{{ $trigger.execution_id }}",
      "employee": "{{ $trigger.input.employee_name }}"
    },
    "input_schema": {
      "type": "object",
      "required": ["employee_name", "employee_email", "department", "start_date", "role_title"],
      "properties": {
        "employee_name": { "type": "string", "title": "Full Legal Name" },
        "employee_email": { "type": "string", "format": "email", "title": "Work Email" },
        "department": { "type": "string", "title": "Department", "enum": ["Engineering", "Finance", "HR", "Operations", "Sales"] },
        "role_title": { "type": "string", "title": "Job Title" },
        "start_date": { "type": "string", "format": "date", "title": "Start Date" },
        "manager_email": { "type": "string", "format": "email", "title": "Manager Email" }
      }
    }
  }
}
Expected Outcome: The HR manager sees a labeled form in the portal, fills in the new hire details, and clicks "Start Onboarding." The workflow provisions an Active Directory account, creates a seat in the HRMS, sends a welcome email with a first-day guide, schedules orientation sessions in the calendar, and assigns equipment via the IT ticketing system.

Example 2 — Ad-Hoc Invoice Generation

Finance team members can trigger on-demand invoice generation outside the normal billing cycle. Restricted to finance_admin and billing_manager roles. Uses response_mode: lastNode so the caller receives the invoice PDF URL immediately.

{
  "node_type": "ManualTrigger",
  "name": "Generate Ad-Hoc Invoice",
  "config": {
    "trigger_label": "Generate Invoice",
    "description": "Create a one-time invoice for a client. Use this for project milestones, amendments, or out-of-cycle billing.",
    "allowed_roles": ["finance_admin", "billing_manager", "super_admin"],
    "require_authentication": true,
    "response_mode": "lastNode",
    "input_schema": {
      "type": "object",
      "required": ["client_id", "amount", "description", "due_date"],
      "properties": {
        "client_id": { "type": "string", "title": "Client ID" },
        "amount": { "type": "number", "title": "Invoice Amount (USD)", "minimum": 0 },
        "description": { "type": "string", "title": "Service Description" },
        "due_date": { "type": "string", "format": "date", "title": "Payment Due Date" },
        "po_number": { "type": "string", "title": "PO Number (optional)" }
      }
    }
  }
}
Expected Outcome: The finance manager fills in client details and amount. BizFirstAI generates the invoice PDF, uploads it to SharePoint, records it in the ERP, and emails it to the client's accounts payable contact. Because response_mode is lastNode, the portal displays the PDF download URL and the ERP invoice reference immediately after the workflow completes.

Example 3 — Purchase Approval Request

Any employee can initiate a purchase approval request from the internal procurement portal. The workflow routes the request based on amount — under $1,000 goes to department head only, over $1,000 requires CFO sign-off as well.

{
  "node_type": "ManualTrigger",
  "name": "Purchase Approval Request",
  "config": {
    "trigger_label": "Submit for Approval",
    "description": "Submit a purchase request for approval. Requests over $1,000 require CFO approval in addition to department head sign-off.",
    "allowed_roles": [],
    "require_authentication": true,
    "response_mode": "onReceived",
    "response_data": {
      "status": "submitted",
      "approval_ticket": "{{ $trigger.execution_id }}",
      "submitted_by": "{{ $trigger.triggered_by.display_name }}"
    },
    "input_schema": {
      "type": "object",
      "required": ["vendor_name", "amount", "cost_center", "business_justification"],
      "properties": {
        "vendor_name": { "type": "string", "title": "Vendor Name" },
        "amount": { "type": "number", "title": "Amount (USD)" },
        "cost_center": { "type": "string", "title": "Cost Center Code" },
        "business_justification": { "type": "string", "title": "Business Justification" },
        "required_by_date": { "type": "string", "format": "date", "title": "Required By" }
      }
    }
  }
}
Expected Outcome: Any authenticated employee submits a purchase request. They receive a ticket reference number immediately. The workflow routes: amounts under $1,000 trigger a Teams message to the department head for approval; amounts over $1,000 additionally notify the CFO. Approvals or rejections update a SharePoint list and notify the requestor by email.

Example 4 — Developer Workflow Testing

A developer testing a new customer notification workflow triggers it manually with synthetic data. No input schema restrictions — the developer can pass any JSON body to simulate different scenarios. Only the developer role can use this trigger in the development environment.

{
  "node_type": "ManualTrigger",
  "name": "DEV TEST — Customer Notification",
  "config": {
    "trigger_label": "Run Test",
    "description": "Developer test trigger. Pass any JSON body to simulate different input scenarios. Do not promote to production.",
    "allowed_roles": ["developer", "super_admin"],
    "require_authentication": true,
    "response_mode": "lastNode",
    "input_schema": null
  }
}
Expected Outcome: The developer posts any JSON payload (e.g., a synthetic customer object) and sees the full workflow output in the portal canvas, node by node. The response from the last node is returned immediately, allowing rapid inspection of the final output data without needing to configure external test infrastructure.

Example 5 — On-Demand Executive Report

An executive or analyst triggers a live revenue report from the portal, specifying the date range and business unit. The workflow queries the data warehouse, formats the data, generates a PDF and Excel report, and returns the download links synchronously.

{
  "node_type": "ManualTrigger",
  "name": "Executive Revenue Report",
  "config": {
    "trigger_label": "Generate Report",
    "description": "Generate a live revenue report from the data warehouse. Report will be ready in approximately 90 seconds.",
    "allowed_roles": ["executive", "analyst", "finance_admin", "super_admin"],
    "require_authentication": true,
    "response_mode": "lastNode",
    "input_schema": {
      "type": "object",
      "required": ["date_from", "date_to", "business_unit"],
      "properties": {
        "date_from": { "type": "string", "format": "date", "title": "Report Start Date" },
        "date_to": { "type": "string", "format": "date", "title": "Report End Date" },
        "business_unit": { "type": "string", "title": "Business Unit", "enum": ["All", "North America", "EMEA", "APAC"] },
        "include_forecasts": { "type": "boolean", "title": "Include Q-End Forecasts", "default": false }
      }
    }
  }
}
Expected Outcome: The analyst selects a date range and business unit, then clicks "Generate Report." The workflow queries Snowflake for revenue data, uses a Python node to render charts, generates a formatted PDF and Excel file, uploads both to SharePoint, and returns the download URLs directly to the portal UI. The entire process completes in under two minutes.