Portal Community
Channel Credentials Required Each example references a credential_id. You must first create the relevant credential in your BizFirstAI workspace (Settings > Credentials) before using these configurations. Refer to the Configuration page for channel-specific credential setup instructions.

Example 1 — Customer Support Intake via WhatsApp

The company's WhatsApp Business number receives all incoming customer support messages. The trigger fires on any message and immediately acknowledges receipt while the workflow creates a support ticket and assigns it to the right team.

{
  "node_type": "ChatTrigger",
  "name": "WhatsApp Customer Support Intake",
  "config": {
    "channel_type": "whatsapp",
    "channel_id": "+14155550100",
    "credential_id": "cred_whatsapp_business_api",
    "keyword_filter": null,
    "listen_for": "direct_messages",
    "ignore_bots": true,
    "max_triggers_per_hour": 0,
    "bot_response": "Hi {{ $trigger.sender_name || 'there' }}! 👋 We received your message and a support ticket has been created. Our team will respond within 2 hours. Reference: {{ $trigger.execution_id }}"
  }
}
Expected Outcome: A customer sends any WhatsApp message. BizFirstAI immediately sends the acknowledgment reply and starts the workflow. The workflow creates a Zendesk ticket with the message content and sender's WhatsApp number, classifies the issue using an AI text classification node, assigns to the appropriate team queue, and sends a follow-up WhatsApp with the ticket URL.

Example 2 — Employee IT Help Desk via Slack

Listens on the #it-helpdesk Slack channel. Only triggers when a message starts with !ticket — allowing casual conversation in the channel without triggering the workflow unnecessarily. Employees use !ticket [description] to create support tickets.

{
  "node_type": "ChatTrigger",
  "name": "Slack IT Helpdesk",
  "config": {
    "channel_type": "slack",
    "channel_id": "C0123HELPDESK",
    "credential_id": "cred_slack_it_bot",
    "keyword_filter": {
      "type": "starts_with",
      "value": "!ticket",
      "case_insensitive": true
    },
    "listen_for": "channel_messages",
    "ignore_bots": true,
    "max_triggers_per_hour": 0,
    "bot_response": "✅ Ticket created! I've logged your request, {{ $trigger.sender_name }}. Ticket reference: `{{ $trigger.execution_id }}`. The on-call engineer will respond shortly."
  }
}
Expected Outcome: An employee types "!ticket my VPN stopped working after the update" in #it-helpdesk. The bot immediately replies in the thread with the ticket reference. The workflow extracts the issue description from the message text (stripping the "!ticket" prefix), creates a Jira Service Management ticket, and notifies the on-call IT engineer via a direct Slack message with the full context.

Example 3 — Order Status Inquiry via WhatsApp

Triggers only when a customer WhatsApp message contains an order number pattern. The regex filter prevents the workflow from firing on unrelated messages sent to the same number. The bot response confirms the lookup is underway.

{
  "node_type": "ChatTrigger",
  "name": "WhatsApp Order Status Lookup",
  "config": {
    "channel_type": "whatsapp",
    "channel_id": "+14155551234",
    "credential_id": "cred_whatsapp_commerce_api",
    "keyword_filter": {
      "type": "regex",
      "pattern": "ORD-[0-9]{5,12}",
      "case_insensitive": false
    },
    "listen_for": "direct_messages",
    "ignore_bots": true,
    "max_triggers_per_hour": 100,
    "bot_response": "Looking up your order now, {{ $trigger.sender_name || 'there' }}! I'll have the status for you in a moment..."
  }
}
Expected Outcome: A customer texts "What's the status of ORD-20240615-0042?" The regex matches the order number. BizFirstAI sends the instant acknowledgment, then a RegEx Extract node parses the order number from the message text, queries the order management system, and sends a follow-up WhatsApp message: "Your order ORD-20240615-0042 is currently *In Transit*. Estimated delivery: June 18, 2024. Track it here: [link]".

Example 4 — HR Q&A Bot via Microsoft Teams

The HR bot is deployed in the #hr-questions Teams channel. It triggers when employees @-mention the bot, ensuring it only responds when directly addressed. Questions are passed to an AI knowledge base for contextual answers about company policy, benefits, and procedures.

{
  "node_type": "ChatTrigger",
  "name": "Teams HR Question Bot",
  "config": {
    "channel_type": "teams",
    "channel_id": "19:a1b2c3d4-e5f6-7890-abcd-ef1234567890@thread.tacv2",
    "credential_id": "cred_teams_hr_bot",
    "keyword_filter": null,
    "listen_for": "mentions",
    "ignore_bots": true,
    "max_triggers_per_hour": 0,
    "bot_response": "Hi {{ $trigger.sender_name }}! I'm looking up the answer to your question. Give me a moment..."
  }
}
Expected Outcome: An employee types "@HR Bot how many days of annual leave do I get in year 2?" The trigger fires, the bot acknowledges immediately, then the workflow passes the question to the AI knowledge base node (trained on the employee handbook). The AI generates a contextual answer and the bot replies in the Teams thread with the answer and a link to the relevant policy section.

Example 5 — Automated FAQ Response via SMS

The company's SMS inquiry number receives frequent identical questions about store hours, location, and pricing. Keyword filters route common queries to automated responses, keeping human agents free for complex issues. Rate limiting prevents SMS cost overruns from high-volume days.

{
  "node_type": "ChatTrigger",
  "name": "SMS FAQ — Store Hours",
  "config": {
    "channel_type": "sms",
    "channel_id": "+18005550199",
    "credential_id": "cred_twilio_main",
    "keyword_filter": {
      "type": "contains",
      "value": "hours",
      "case_insensitive": true
    },
    "listen_for": "direct_messages",
    "ignore_bots": true,
    "max_triggers_per_hour": 500,
    "bot_response": null
  }
}
Expected Outcome: A customer texts "what are your hours?" to the company SMS number. The keyword filter matches "hours" in the message. The workflow looks up the store hours for the current day from a configuration database (accounting for holidays), and sends a reply: "Acme Store Hours: Mon–Fri 9am–7pm, Sat 10am–5pm, Sun closed. For holiday hours visit acme.com/hours." No human agent involvement needed for this common inquiry.