Docs

Reference

Create / edit an automation rule

When <trigger event> and <conditions: keywords / excludeKeywords (accent-aware whole words), accountIds, accountTags, stageIds, personTagsAny, temperatures, hours> then <actions: tag_add, tag_remove, set_stage, set_temperature, assign, add_to_list, add_to_campaign, send_template (a template people wrote), alert, webhook (emit rule.fired), hold (keep the chat for a person / agent)>. Fires at most once per event per person, at most 3 levels of rule-triggers-rule; sends still pass the safety gate and conversation lock. Updating needs expectedRevision.

View MarkdownThis page is generated from the source code on every release.

When <trigger event> and <conditions: keywords / excludeKeywords (accent-aware whole words), accountIds, accountTags, stageIds, personTagsAny, temperatures, hours> then <actions: tag_add, tag_remove, set_stage, set_temperature, assign, add_to_list, add_to_campaign, send_template (a template people wrote), alert, webhook (emit rule.fired), hold (keep the chat for a person / agent)>. Fires at most once per event per person, at most 3 levels of rule-triggers-rule; sends still pass the safety gate and conversation lock. Updating needs expectedRevision.

Overview

Name Value
Code rules.save
Scope needed automation.write
Risk Write
May need confirmation No
Runs as Answers right away
Needs Idempotency-Key No
Member roles allowed owner, manager
In the app Automation → Rules → Save

Input fields

Field Type Required Description
id uuid No
name text Yes
enabled true/false No
trigger "message.received" | "message.read" | "campaign.replied" | "campaign.person_done" | "keyword.signal" | "group.joined" | "person.stage_changed" | "conversation.assigned" | "account.status_changed" | "account.safety_changed" Yes
conditions object No
actions object[] Yes
expectedRevision integer No

Example request

curl -X POST https://tlg.builera.app/api/public/v2/ops/rules.save \
  -H "Authorization: Bearer $TELEGRAM_AUTO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"…","trigger":"message.received","actions":[]}'

Output fields (data)

Field Type Required
ok true Yes
id text Yes
revision null | number Yes

Example answer

{
  "data": {
    "ok": true,
    "id": "00000000-0000-4000-8000-000000000000",
    "revision": 1
  }
}

Using it over MCP

Not listed on any profile: call tools_describe then tools_run with code: "rules.save". Tool name when listed: rules_save.

Was this page helpful?

Last checked: 10/24/2026 · build 2.0