Quick Start
See pending suggestions
Type
/automations in chat. The bot lists each pending suggestion with its own Accept/Dismiss buttons.Accept from chat
Tap the
✓ Accept button on a suggestion. Exactly one scheduled job is created — nothing runs until you accept.How It Works
Two paths lead to the same result — a scheduled job — but only ever on an explicit accept.| Path | Command | What happens |
|---|---|---|
| Accept an existing suggestion | /automations → ✓ Accept | Materialises the suggested blueprint into one job and marks the suggestion accepted. |
| Create directly from a template | /blueprint <name> [slot=value ...] | Resolves slots against blueprint defaults and schedules the job immediately. |
Button taps travel through the shared callback contract:
sug:accept:<id> accepts a suggestion, sug:dismiss:<id> dismisses it. The interactive registry decodes sug:accept:<id> as namespace sug with the remainder as the payload — a Telegram-side detail you never type by hand.Built-in Blueprints
Three blueprints ship ready to use, straight fromblueprint_catalogue.py.
| Name | Description | Category | Default deliver | Key slots |
|---|---|---|---|---|
morning-brief | Daily morning briefing with news and priorities | daily | telegram | hour (int, 8), minute (int, 0), weekdays (choice, mon-fri), focus (choice, general) |
important-mail | Check for important emails at a regular interval | monitoring | telegram | interval_minutes (int, 30), keywords (str, "urgent,important,deadline") |
weekly-review | End-of-week summary and review | weekly | telegram | hour (int, 17), minute (int, 0), weekdays (choice, fri), focus (choice, general) |
If your app already registers a custom
/automations or /blueprint handler via @bot.on_command, that handler wins — the built-ins step aside for those two names only. All other built-in commands still take precedence.Custom Blueprints (YAML)
Author your own blueprints under~/.praisonai/blueprints/<name>/blueprint.yaml; a custom blueprint overrides a built-in of the same name.
<name>/blueprint.yaml subdirectory — see BlueprintCatalogue._load_from_directory for the exact rule.
Chat Commands
/automations
List pending suggestions with inline
✓ Accept / ✕ Dismiss buttons. Telegram only today. Full detail in Bot Chat Commands./blueprint
Create an automation from a template:
/blueprint <name> [slot=value ...]. Telegram only today. Full detail in Bot Chat Commands.CLI Commands
Drive the same engine from the shell — full flags in Schedule CLI.| Command | Purpose |
|---|---|
praisonai schedule blueprint <name> | Create a job from a blueprint template |
praisonai schedule blueprint-list | List available blueprints (built-in + user YAML) |
praisonai schedule suggestions | List pending automation suggestions |
praisonai schedule suggestion-accept <id> | Accept a suggestion and materialise the job |
praisonai schedule suggestion-dismiss <id> | Dismiss a suggestion |
praisonai schedule suggestion-propose <blueprint> | Manually propose a blueprint as a suggestion |
Python Usage
Propose and accept a suggestion programmatically.propose() returns None when the pending cap (20) is reached or the same blueprint + slots was suggested within the 24-hour dedup window.
User Interaction Flows
Flow A — Accept an existing suggestion in chat:Safe by Default & Multi-tenancy
Nothing is ever auto-created — the engine only materialises a job on an explicit accept.MAX_PENDING_CAP (20), the 24-hour dedup window, and the 3-day TTL are all inherited from the store.
Platform Coverage
Telegram-only today. Discord, Slack, and WhatsApp adapters do not register
/automations or /blueprint yet — parity is tracked in future PRs. The shared helper module keeps the accept/dismiss/blueprint glue in one place so those adapters can wire it later.❌ Automations are not available (scheduler not installed).
Best Practices
Gate automations behind admins on multi-user bots
Gate automations behind admins on multi-user bots
The suggestion store is single-tenant. Restrict the
automations and blueprint permissions in CommandAccessPolicy to admin users so one person’s suggestions aren’t accepted or dismissed by everyone. See Command Access Control.Prefer accepting a suggestion over re-creating it
Prefer accepting a suggestion over re-creating it
When a suggestion already exists for a pattern, accept it rather than running
/blueprint — the dedup key latches on accept and avoids duplicate jobs.Skip empty ticks with a pre-run gate
Skip empty ticks with a pre-run gate
For monitoring blueprints like
important-mail, add a --pre-run gate to the resulting job so ticks with no new work spend no tokens. See the pre-run gate in the Schedule CLI.Related
Bot Chat Commands
Full
/automations and /blueprint command details.Schedule CLI
Blueprint and suggestion subcommands with every flag.
Proactive Delivery
Home channels and delivery tokens for scheduled jobs.
Scheduled Run Policy
Guardrails and the pre-run gate for unattended runs.

