Skip to main content
Workflows let you define trigger → conditions → actions chains that run automatically every time a message is analyzed. Instead of checking the dashboard for problems, you define what matters once and your team is notified the moment it happens. Workflows

How workflows work

Every time message analysis completes, OpenBat evaluates all enabled workflows for your chatbot. If a workflow’s conditions match, its actions execute in parallel. The entire process fires automatically within seconds of a message being captured.
Trigger (new message analyzed)
  └── Conditions (AND/OR logic on analysis results)
        └── Actions (webhooks, Slack alerts)

Create a workflow

1

Open the workflows page

Navigate to Workflows from your chatbot’s sidebar and click Create workflow.
2

Choose a trigger

Select which messages activate the workflow. See trigger types below.
3

Add conditions

Define one or more conditions that must be met for the workflow to fire. You can combine conditions with AND/OR logic. See condition fields for available options.
4

Configure actions

Add one or more actions to execute when conditions match. Choose from webhook or Slack webhook actions and configure the payload template. See actions for details.
5

Enable the workflow

Save and toggle the workflow to enabled. It begins evaluating on the next analyzed message.
You can also start from a pre-built template on the Templates tab to skip the setup for common patterns.

Triggers

Every workflow starts with a trigger that defines which messages activate it.
Trigger typeActivates on
User messageEvery new user message after analysis completes
Assistant messageEvery new assistant message after analysis completes
Any messageBoth user and assistant messages

Conditions

Conditions evaluate the analysis results for the triggering message. You can add zero or more conditions and combine them with logic operators:
  • AND — all conditions must be true
  • OR — any condition must be true

Condition fields

Analysis typeFieldOperators
SentimentScore (numeric)>, <, >=, <=, =
SentimentLabel (string)=, !=
IntentValue (slug)=, !=
TopicValue (slug)=, !=
FlagValue (slug)detected, not detected
BehaviorValue (slug)=, !=
OutcomeValue (slug)=, !=
Quality dimensionScore (numeric)>, <, >=, <=

Example conditions

  • sentiment score < -0.5 — very negative message
  • flag = churn_risk AND sentiment label = Negative — high-confidence churn signal
  • outcome = capability_failure — the chatbot could not answer
  • behavior = hallucinating — critical quality issue

Actions

When conditions pass, all configured actions execute in parallel.

Webhook (HTTP POST)

Send a POST request to any URL with a configurable JSON payload. Template variables are interpolated from the message analysis results.
{
  "conversation_id": "{{conversation.id}}",
  "user": {
    "name": "{{user.name}}",
    "email": "{{user.email}}"
  },
  "sentiment": {
    "score": "{{sentiment.score}}",
    "label": "{{sentiment.label}}"
  },
  "intent": "{{intent.value}}"
}

Slack webhook

Send a formatted Slack message via an incoming webhook URL. Uses the same template variable system with Slack-flavored markdown.

Template variables

VariableDescription
{{user.name}}External user name
{{user.email}}External user email
{{sentiment.score}}Numeric sentiment score
{{sentiment.label}}Sentiment label (e.g., Positive, Negative)
{{intent.value}}Detected intent slug
{{conversation.id}}Conversation identifier

Webhook configuration

Webhooks are defined in Settings → Webhooks and selected by name in the workflow editor. Configure your webhook URLs there before referencing them in a workflow.
Highest-value workflow patterns:
  1. churn_risk flag + sentiment < -0.4 → Slack your CS channel so they can reach out the same day
  2. behavior = hallucinating → Slack your engineering channel for immediate investigation
  3. outcome = capability_failure → webhook to GitHub Issues to auto-create a ticket
  4. buying_signal flag → webhook to your CRM to create a deal or task for sales

Runs tab

The Runs tab shows execution history for all workflows on your chatbot. Use it to debug workflows that are not firing as expected.
ColumnDescription
WorkflowWhich workflow ran
Statussuccess, failed, or skipped
Matched conditionsThe conditions that evaluated true
Actions executedWhich actions fired
Triggered atTimestamp of the execution

Run statuses

StatusMeaning
SuccessConditions matched and all actions executed successfully
FailedConditions matched but an action (e.g., webhook call) failed
SkippedWorkflow evaluated but conditions did not match

Templates

The Templates tab provides pre-built workflow recipes for common use cases. Apply a template to create a pre-configured workflow you can customize.
TemplateTrigger conditionDefault action
Churn Risk Alertchurn_risk flag detected + sentiment < -0.3Slack notification
Capability Failure Trackeroutcome = capability_failureWebhook to issue tracker
Hallucination Alertbehavior = hallucinatingSlack urgent notification
Buying Signal Alertbuying_signal flag detectedWebhook to CRM or Slack
High-Frustration EscalationSentiment < -0.5 AND intent = complaintSlack to CS channel