Portal Community
The Chat node requires a channel integration to be configured in your BizFirstAI environment settings before use. Contact your BizFirstAI administrator to enable Slack, WhatsApp Business API, SMS, or Teams integrations for your tenant.

Properties Reference

Property Type Required Default Description
actors string[] Required List of recipient identifiers. Each entry is a user ID whose contact details (Slack handle, phone number, email address) are resolved from the user directory. At least one actor is required.
message string Required The text message delivered to each recipient via the configured channel. Supports BizFirst expressions to embed dynamic workflow data. Keep messages concise and action-oriented — specify clearly what reply is expected.
channel string (enum) Required The delivery channel. Must be one of: "slack", "whatsapp", "email", "sms", "teams". The selected channel must be configured in your environment integrations.
timeout_minutes integer Optional 1440 Number of minutes to wait for a reply before routing to the error port. Set to 0 to disable timeout (not recommended). For Slack and Teams, short timeouts (60–240 minutes) are typical. For email, longer windows (720–1440 minutes) are more appropriate.

Channel Values Reference

Slack
"slack"
WhatsApp
"whatsapp"
Email
"email"
SMS
"sms"
Teams
"teams"

Expression Support

PropertyExpression SupportExample
actors Supported ["{{ $var.manager_id }}"]
message Supported "Deploy v{{ $var.version }} to prod? Reply YES or NO."
channel Static only "slack"
timeout_minutes Static only 120

Sample Configuration JSON

{
  "nodeType": "Chat",
  "id": "chat_deploy_confirm",
  "label": "Slack Deployment Confirmation",
  "config": {
    "actors": ["{{ $var.on_call_engineer_id }}"],
    "message": "Ready to deploy *{{ $var.service_name }} v{{ $var.version }}* to production.\n\nRelease notes: {{ $var.release_notes_url }}\nEstimated downtime: {{ $var.downtime_estimate }}\n\nReply *YES* to proceed or *NO* to cancel.",
    "channel": "slack",
    "timeout_minutes": 60
  }
}

IChatReplyParser — AI Classification

The IChatReplyParser service analyses the incoming reply text and assigns one of the following classification values:

ClassificationPort FiredExample Replies Classified
"approved" approved "Yes", "YES", "Approved", "Go ahead", "Looks good", "OK", "Sure", "👍", "Confirm", "Proceed"
"rejected" rejected "No", "NO", "Rejected", "Don't do it", "Cancel", "Stop", "Hold off", "Not yet", "👎", "Deny"
"unknown" success "What does this mean?", "Can you clarify?", Any unrelated or ambiguous reply
Classification context: The IChatReplyParser uses the original message text as context for classification. A reply of "No rush" to a "Confirm your availability?" message may be classified differently than "No rush" in response to "Deploy now?". Design your messages with clear yes/no framing for the most accurate classification results.

Message Best Practices