Reechdesk

Workflows

Workflows automate repetitive ticket operations. Define triggers, conditions, and actions — Reechdesk executes them automatically when events occur. Start from a template or build from scratch.

How Workflows Work

Each workflow has three parts:

  1. Trigger — The event that fires the workflow (e.g., ticket created, status changed).
  2. Conditions — Optional filters that must match for the actions to execute (e.g., priority equals HIGH).
  3. Actions — Operations to perform when the trigger fires and conditions pass.

Execution order: Workflows run in the order specified. If multiple workflows match an event, they all execute sequentially. Each workflow has its own conditions and actions.

Template Library

Reechdesk ships with 32 pre-built workflow templates organized by industry. Access them from the Templates tab on the Workflows page. Each template is designed for specific use cases and can be customized before saving.

CategoryTemplatesRequired Plan
General8 templatesAll plans
Fintech & Payments7 templatesProfessional+
Banking5 templatesEnterprise
E-commerce5 templatesProfessional+
SaaS & Technology4 templatesProfessional+
Agent Banking3 templatesEnterprise

Click Preview on any template to see its trigger, conditions, and actions before applying it. Click Use Template to load it into the workflow builder, where you can customize it before saving.

Trigger Events

EventDescriptionAvailable Context
ticket_createdA new ticket is createdFull ticket + entity data
ticket_status_changedTicket status changesoldStatus, newStatus, ticket, entity
ticket_assignedTicket is assigned/reassignedoldAssignee, newAssignee, ticket, entity
ticket_escalatedTicket is escalatedreason, escalateToId, ticket, entity
comment_addedA comment is added to a ticketcomment (id, body, isInternal), ticket, entity

Condition Operators

OperatorDescription
equalsField value exactly matches the condition value
not_equalsField value does not match the condition value
containsField value contains the condition value (case-insensitive)
starts_withField value starts with the condition value (case-insensitive)
inField value is one of the comma-separated values
not_inField value is not one of the comma-separated values
contains_wordSmart token match — expands synonyms automatically (e.g., "failed" matches "declined")
contains_anyOR match — matches if any of the comma-separated tokens appear
contains_allAND match — matches only if all comma-separated tokens appear
matches_conceptConcept match — uses domain-specific intent patterns (e.g., payment-failure, fraud-report)
similar_toFuzzy match — catches typos and similar words (e.g., "transcation" → "transaction")

Intelligent Matching Engine

The matching engine processes conditions through 4 layers, each progressively more lenient:

  1. 1. Exact Match — Direct string comparison (fastest)
  2. 2. Synonym Expansion — Expands tokens to domain-specific synonyms (e.g., "failed" → "declined", "error")
  3. 3. Concept Matching — Matches against multi-word intent patterns with configurable keyword thresholds
  4. 4. Fuzzy Matching — Levenshtein distance for typo tolerance (configurable threshold)

All matching runs in under 1ms — pure string operations, no AI/API calls. The engine uses in-memory cache with 5-minute TTL for performance.

Enterprise Feature

Custom synonym groups, concepts, and matching configuration are available on the Enterprise plan. Configure these at Settings → Synonyms, Settings → Concepts, and Settings → Matching.

Condition Fields

Conditions use dot notation to access ticket properties:

  • ticket.priority — CRITICAL, HIGH, MEDIUM, LOW
  • ticket.source — EMAIL, CHAT, WHATSAPP, FACEBOOK, PHONE, MANUAL
  • ticket.type — COMPLAINT, INCIDENT, CHANGE_REQUEST, SERVICE_REQUEST, QUESTION
  • ticket.status — OPEN, IN_PROGRESS, PENDING, ESCALATED, RESOLVED, CLOSED
  • ticket.subject — Subject line text (use with contains_word, matches_concept, similar_to)
  • ticket.tags — Tags array (use with contains_word to check if a tag exists)
  • ticket.customerEmail — Customer email address

Action Types

ActionDescriptionValue
assign_to_agentAssign ticket to an agentAgent user ID
set_statusChange ticket statusOPEN, IN_PROGRESS, RESOLVED, etc.
set_priorityChange ticket priorityCRITICAL, HIGH, MEDIUM, LOW
add_tagAdd a tag to the ticketTag name
escalate_toEscalate and assign to agentAgent user ID
set_due_dateSet due date from nowHours from now (e.g., 24)
send_email_agentSend email notification to agentAgent user ID
send_email_customerEmail the ticket's customerSubject line (empty = default)
internal_noteAdd internal note to ticketNote body text
create_child_ticketCreate a sub-ticketChild ticket subject
webhookPOST to external URLURL string
notify_teamPush notification to all agentsNotification message

Example Workflows

Auto-assign critical tickets

{
  "name": "Auto-assign critical tickets",
  "trigger": {
    "event": "ticket_created",
    "conditions": [
      { "field": "ticket.priority", "operator": "equals", "value": "CRITICAL" }
    ],
    "conditionLogic": "AND"
  },
  "actions": [
    { "type": "set_priority", "value": "CRITICAL" },
    { "type": "set_status", "value": "IN_PROGRESS" },
    { "type": "add_tag", "value": "urgent" },
    { "type": "set_due_date", "value": "4" }
  ]
}

Failed transaction auto-response (Fintech)

{
  "name": "Failed Transaction Response",
  "trigger": {
    "event": "ticket_created",
    "conditions": [
      { "field": "ticket.subject", "operator": "contains_word", "value": "failed transaction" }
    ],
    "conditionLogic": "AND"
  },
  "actions": [
    { "type": "set_priority", "value": "HIGH" },
    { "type": "set_status", "value": "IN_PROGRESS" },
    { "type": "add_tag", "value": "failed-transaction" },
    { "type": "set_due_date", "value": "4" },
    { "type": "internal_note", "value": "Verify transaction status with payment processor" }
  ]
}

The contains_word operator will also match "transaction declined", "payment error", "unsuccessful transfer" — all thanks to synonym expansion.

Fraud report concept matching (Fintech)

{
  "name": "Fraud Report Handling",
  "trigger": {
    "event": "ticket_created",
    "conditions": [
      { "field": "ticket.subject", "operator": "matches_concept", "value": "fraud-report" }
    ],
    "conditionLogic": "AND"
  },
  "actions": [
    { "type": "set_priority", "value": "CRITICAL" },
    { "type": "set_status", "value": "IN_PROGRESS" },
    { "type": "add_tag", "value": "fraud" },
    { "type": "assign_team", "value": "fraud-investigations" },
    { "type": "set_due_date", "value": "2" },
    { "type": "internal_note", "value": "IMMEDIATE: Freeze account pending investigation" }
  ]
}

The matches_concept operator matches against the "fraud-report" concept which includes keywords: fraud, scam, stolen, unauthorized, suspicious. Tickets with 1+ of these keywords in the subject will match.

Typo-tolerant matching

{
  "name": "POS Terminal Issues",
  "trigger": {
    "event": "ticket_created",
    "conditions": [
      { "field": "ticket.subject", "operator": "similar_to", "value": "pos terminal" }
    ],
    "conditionLogic": "AND"
  },
  "actions": [
    { "type": "add_tag", "value": "pos-issue" },
    { "type": "assign_team", "value": "hardware-support" }
  ]
}

The similar_to operator catches typos like "pos termanal", "POS terminl", "poz terminal" using Levenshtein distance.

CBN complaint SLA (Banking)

{
  "name": "CBN Complaint SLA",
  "trigger": {
    "event": "ticket_created",
    "conditions": [
      { "field": "ticket.type", "operator": "equals", "value": "COMPLAINT" }
    ],
    "conditionLogic": "AND"
  },
  "actions": [
    { "type": "add_tag", "value": "cbn-compliance" },
    { "type": "set_due_date", "value": "336" },
    { "type": "set_priority", "value": "HIGH" },
    { "type": "internal_note", "value": "CBN requires 14-day resolution" }
  ]
}

Notify on escalation

{
  "name": "Tag escalated tickets",
  "trigger": {
    "event": "ticket_escalated",
    "conditions": [],
    "conditionLogic": "AND"
  },
  "actions": [
    { "type": "add_tag", "value": "escalated" },
    { "type": "set_priority", "value": "HIGH" },
    { "type": "internal_note", "value": "This ticket has been escalated" }
  ]
}

Execution Logging

Every workflow execution is logged with the event, status (success/partial/error), executed actions, and any errors. This helps you debug workflow behavior and monitor automation health.