BotForge

Build

Workflow Engine

A linear trigger → conditions → actions step list. The built-in baseline below is merged at runtime with whatever a workspace's installed modules declare — the builder palette is always accurate, never hardcoded per module.

Triggers

16 built-in triggers ship today; installed modules can declare more via workflowTriggers[] in their manifest (format entity.event), merged in by mergeWorkflowTriggers().

order.createdticket.createdcustomer.joinedreferral.createdcommission.createdbroadcast.sentmessage.receivedconversation.openedconversation.closedconversation.assignedconversation.human_takeoverconversation.returned_to_aiconversation.priority_changedconversation.escalatedconversation.resolvedconversation.sla_breached

Actions

9 built-in step types; modules add more via workflowActions[] (format verb_noun), merged in by mergeWorkflowActions().

conditionContinue only if a value matches
delayWait N seconds before the next step
send_messageMessage the customer on their channel
http_requestCall an external URL (webhook/CRM)
set_variableStore a value for later steps
tagAdd a tag to the customer
create_ticketOpen a support ticket
ai_promptGenerate text with your AI provider, saved to a variable
assign_conversationRoute the triggering conversation to a department/agent

Conditions

A condition step compares a value against an operand and stops the workflow if it doesn't match:

eqequalsneqnot equalsgtgreater thangteat leastltless thanlteat mostcontainscontainsnot_containsdoesn't containstarts_withstarts withends_withends withexistsexistsemptyis emptyregexmatches regex

Variables

Steps interpolate {{trigger.field}} (data from the event that fired the workflow) and {{vars.name}} (values a set_variable or ai_prompt step saved earlier in the same run) into any text field — message bodies, HTTP request URLs/bodies, and AI prompts.

Interpolation example

{ "type": "send_message", "text": "Thanks for order #{{trigger.number}}! Total: {{trigger.total_cents}}" }

Starter templates

6 one-click workflows you can install and customize:

Big-order thank-you

When a large order comes in, wait an hour then send a VIP thank-you.

trigger: order.created · 4 actions

New order → CRM

Forward every new order to an external CRM/endpoint.

trigger: order.created · 1 action

Welcome new customer

Greet customers the moment they join.

trigger: customer.joined · 1 action

New referral → ticket

Open a follow-up ticket when a referral is created.

trigger: referral.created · 1 action

AI ticket acknowledgement

When a ticket opens, AI drafts a personalised acknowledgement and sends it.

trigger: ticket.created · 2 actions

Order → thank & tag buyer

Thank paying customers instantly and tag them as buyers.

trigger: order.created · 2 actions

AI steps

The ai_prompt step generates text with the workspace's AI provider and saves it to a variable (saveAs) for a later step to use — see the “AI ticket acknowledgement” template above for a full example. This is a workflow step, distinct from an AI Studio Agent — see AI Studio for the full conversational agent runtime.