Skip to main content
Integration dashboard pages let a bot install extra views β€” like a live workflow-runs table or a health panel β€” into the PraisonAI integration dashboard.

Quick Start

1

See the pages that ship

Launch the integration dashboard and open the πŸ”„ Workflow Runs and πŸ€– Bot Health tabs.
2

Add your own page

Drop a decorated async function in praisonai_bot/integration/pages/ and register it.

How It Works

The host app imports praisonai_bot.integration.pages at configure time, each @aiui.page-decorated function registers itself, and the dashboard renders each function’s returned dict as a page. The mount point is host_app.py:193, where the pages are imported inside a try/except ImportError: pass guard so a missing dependency never breaks the host app.

Pages That Ship Today

Two pages ship with praisonai-bot.
The Workflow Runs page was invisible in production until PR #3829 (merge commit d1f387e). Upgrade past that commit to see the tab β€” users on older wheels won’t have it.
The workflow-runs page returns one of two shapes depending on whether the workflows bridge is available.
The bot-health page returns a live gateway status.

Writing Your Own Page

A page is an async function decorated with @aiui.page(...) that returns a JSON-serialisable dict.
Register it with one import line so the host app discovers it.
Restart the dashboard; the ✨ My Status tab appears in the sidebar.
Pages must stay optional. Guard external imports with try/except ImportError and return an empty payload with a note β€” a missing dependency should never break the host app, which imports pages under except ImportError: pass.

Backward Compatibility

The legacy import path praisonai.integration.pages.workflow_runs still works as a shim; new pages should import from praisonai_bot.integration.pages. See PR #3829 for the C9 shim pattern.

Best Practices

The dashboard renderer serialises the returned dict. Return plain lists, strings, numbers, and dicts β€” no live objects, connections, or callables.
Mirror the workflow-runs pattern: wrap the bridge import in try/except ImportError and return an empty payload with a note when the dependency is missing.
The host app awaits page functions. A synchronous function blocks the event loop β€” always declare the page with async def.
Emoji icons render across the supported dashboard themes. Choose a glyph that stays legible in the nav at small sizes.

Bot Gateway

Run the bot gateway that hosts the integration dashboard.

Workflows

The workflows service the Workflow Runs page reads from.