PHPackages                             adellantado/bot-rule-engine - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. adellantado/bot-rule-engine

ActiveLibrary[Framework](/categories/framework)

adellantado/bot-rule-engine
===========================

Rule engine extension for Bot Template Framework

1.0.0(7y ago)1151MITPHP

Since Feb 3Pushed 6y ago1 watchersCompare

[ Source](https://github.com/adellantado/bot-rule-engine)[ Packagist](https://packagist.org/packages/adellantado/bot-rule-engine)[ RSS](/packages/adellantado-bot-rule-engine/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependencies (1)Versions (2)Used By (0)

Bot Rule Engine
================

[](#bot-rule-engine-)

How to use:

1. Implement IRuleFacade
2. Init RuleEngine after the Template Engine
3. Add "rules" to a scenario of the Template Engine

E.g.

```
"rules": [
    {
        "name": "rule#1",
        "trigger": {"name": "blockExecuted", "block": "EgyptTourBlock", "capturingPhase": 1},
        "actions": [
            {"name": "hasTag", "tag": "Traveler"},
            {"name": "addTag", "tag": "Egypt"},
            {"name": "delay", "delay": "1d"},
            {"name": "sendBlock", "block": "EgyptDiscount"},
        ]
    },
    {
        "name": "rule#2",
        "trigger": {"name": "driverEvent", "event": "webhook"},
        "actions": [
            {"name": "notifyAdmin"}
        ]
    },
    {
        "name": "rule#3",
        "trigger": {"name": "newUser"},
        "actions": [
            {"name": "saveVariable", "variable": "userName", "value": "Patrick"},
            {"name": "unsubscribe"}
        ]
    },
    {
        "name": "rule#4",
        "trigger": {"name": "variableChanged", "equation": ["myVariable", ">", "5"]},
        "actions": [
            {"name": "hasVariable", "equation": ["email", "!=", ""]}
            {"name": "delay", "delay": "1d:2h:10m"},
            {"name": "notifyAdmin"}
        ]
    },
    {
        "name": "rule#5",
        "trigger": {"name": "tagAdded", "tag": "Test"},
        "actions": [
            {"name": "notifyAdmin"}
        ]
    },
    {
        "name": "rule#6",
        "trigger": {"name": "tagRemoved", "tag": "Test"},
        "actions": [
            {"name": "hasNotTag", "tag": "Test"},
            {"name": "notifyAdmin"}
        ]
    },
    {
        "name": "rule#7",
        "trigger": {"name": "variableRemoved", "variable": "TestVar"},
        "actions": [
            {"name": "removeVariable", "variable": "TestVar2"},
            {"name": "openChat"},
            {"name": "closeChat"},
            {"name": "removeTag", "tag": "TestTag"}
        ]
    },
    {
        "name": "rule#8",
        "trigger": {"name": "userInteraction", "phrase": "hey there!"},
        "actions": [
            {"name": "notifyAdmin", "email": "test@test.com", "userId": "012366334"}
        ]
    },
    {
        "name": "rule#9",
        "trigger": {"name": "paymentApproved"},
        "actions": [
            {"name": "clearVariables"}
        ]
    },
    {
        "name": "rule#10",
        "trigger": {"name": "paymentFailed"},
        "actions": [
            {"name": "clearCache"}
        ]
    },
    {
        "name": "rule#11",
        "trigger": {"name": "timer", "every": "5d | 1w | 1m | once", "time":"3rd 15:24 | Thu 15:24 | 15:24"},
        "actions": [
            {"name": "generateCheckoutUrl", "provider": "fondy", "description": "bike rent payment", "amount": "myVariableWithSum", "variable": "myUrl"}
        ]
    },
    {
        "name": "rule#12",
        "trigger": {"name": "external"},
        "actions": [
            {"name": "calculate", "equation": ["firstVar", "+ | - | * | /", "secondVar", "myVariable"]},
            {"name": "sendFlow", "flow": "EgyptTour"},
            {"name": "sendEmail", "email": "test@test.com", "text":"Email Text Here", "title": "Test Title"}
        ]
    },
    {
        "name": "rule#13",
        "trigger": {"name": "referralPassed"},
        "actions": [
            {"name": "saveVariable", "variable": "referralData"},
            {"name": "validate", "value": "123", "type": "number | email | url"},
            {"name": "request", "url": "http://api.icndb.com/jokes/random", "method": "post", "data": {"name": "Alex", "sex": "male"},
                "headers": {"Content-Type": "application/json"}, "variable": "testVar"}
        ]
    }
]

```

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2653d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/2cc6143f2d69aaf460d805c28f185748f1317afa0131c42c11f075011cfb09ef?d=identicon)[adellantado](/maintainers/adellantado)

---

Top Contributors

[![adellantado](https://avatars.githubusercontent.com/u/2136860?v=4)](https://github.com/adellantado "adellantado (35 commits)")

---

Tags

chatbotBotmanBot Template FrameworkBot Rule Engine

### Embed Badge

![Health badge](/badges/adellantado-bot-rule-engine/health.svg)

```
[![Health](https://phpackages.com/badges/adellantado-bot-rule-engine/health.svg)](https://phpackages.com/packages/adellantado-bot-rule-engine)
```

###  Alternatives

[botman/botman

Create messaging bots in PHP with ease.

6.2k1.5M97](/packages/botman-botman)[botman/studio

BotMan Chatbot framework.

33427.6k](/packages/botman-studio)[mpociot/botman-laravel-starter

BotMan Chatbot framework.

3335.4k](/packages/mpociot-botman-laravel-starter)[digitalstars/simplevk

Powerful PHP library/framework for VK API bots, supporting LongPoll &amp; Callback &amp; OAuth

883.9k3](/packages/digitalstars-simplevk)[yageorgiy/botman-vk-community-callback-driver

A VK community callback driver for botman.io framework

111.3k](/packages/yageorgiy-botman-vk-community-callback-driver)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
