FluentBoards Action Hooks
FluentBoards Core IntermediateFluentBoards fires many action hooks. Use them to run your own code when something happens in FluentBoards, for example when a board is created, a task moves to another stage or a comment is posted.
What are Action Hooks
Action hooks let you run custom code when certain events occur. You attach a callback with add_action(). FluentBoards calls it with the arguments listed for each hook. Always pass the correct number of accepted arguments (the 4th parameter of add_action()). If you omit it, WordPress passes only the first argument.
add_action('fluent_boards/task_created', function ($task) {
// $task is a \FluentBoards\App\Models\Task
}, 10, 1);Conventions used on these pages:
- Almost every hook name starts with
fluent_boards/. The few legacy exceptions are noted on the hook. - Pro means the hook fires only when FluentBoards Pro is active. Hooks without the badge are fired by the free plugin. Pro may fire some of them too.
- Source paths are relative to the plugin root. Paths that start with
fluent-boards-pro/are in the Pro plugin. - Model arguments are WPFluent ORM models, for example
\FluentBoards\App\Models\Taskor\FluentBoards\App\Models\Board.
Available Action Hooks
Boards, Members, Stages, Labels & Templates
See Board Action Hooks.
Tasks, Subtasks, Attachments & Time Tracking
See Task Action Hooks.
Comments, Notifications & Users
See Comment & User Action Hooks.
| Hook | Fires when |
|---|---|
fluent_boards/comment_created | A comment or reply is added |
fluent_boards/comment_updated | A comment is edited |
fluent_boards/comment_deleted | A comment is deleted |
fluent_boards/mention_comment_notification | Users are mentioned in a comment |
fluent_boards/profile_name_updated | A user changes their display name |
fluent_boards/profile_photo_updated | A user uploads a profile photo |
App, Admin UI, Settings & MCP
| Hook | Fires when |
|---|---|
fluent_boards_loaded | FluentBoards has booted (plugins_loaded) |
fluent-boards_loading_app | App assets are being enqueued (legacy name) |
fluent_boards/after_enqueue_assets | App assets are enqueued |
fluent_boards/rendering_app | The admin app page starts rendering |
fluent_boards/after_core_menu_items | The wp-admin submenu is registered |
fluent_boards/in_menu_actions | The app top bar renders |
fluent_boards/front_head Pro | The frontend portal head renders |
fluent_boards/front_footer Pro | The frontend portal footer renders |
fluent_boards/saving_addons | Module settings are about to be saved |
fluent_boards/recurring_task_disabled | The recurring-task module is turned off |
fluent_boards/install_plugin | A non-core accepted plugin install is requested |
fluent_boards/mcp_loaded | Core MCP abilities are registered |
fluent_boards/mcp_tool_exception | An MCP tool throws |
Internal hooks (do not rely on)
FluentBoards dispatches these hooks itself through Action Scheduler or WP-Cron to run queued work. They are internal plumbing. Their names, arguments and timing can change without notice. Do not call them, and do not depend on them in your own code.
fluent_boards/one_time_schedule_send_email_for_{type}: queued notification emails.{type}is one ofcomment,mention,stage_change,add_assignee,remove_assignee,due_date_update,task_archived,removed_from_task.fluent_boards/check_upload_protection: one-off check that the upload folder is protectedfluent_boards/five_minutes_scheduler,fluent_boards/hourly_scheduler,fluent_boards/daily_scheduler(Pro): recurring schedulersfluent_boards/repeat_task_scheduler,fluent_boards/daily_task_reminder,fluent_boards/task_reminder_scheduler_for_rest(Pro): recurring-task and reminder runnersfluent_boards/async_{event}_webhook(Pro): queued outgoing webhook deliveries, for exampleasync_task_created_webhookfluent_boards/process_trello_import(Pro): Trello import workerfluent_boards/async_create_tasks_from_template,fluent_boards/async_copy_tasks_from_user_template(Pro): template task copy workersfluent-boards-pro/update_verification_failed(Pro): plugin updater internals
The following names appear only in commented-out code and are never fired: fluent_boards/task_moved_to_new_stage, fluent_boards/task_prop_changed, fluent_boards/task_comment_updated. Use task_stage_updated, the specific task property hooks and comment_updated instead.