Agent skill · software engineering · metabase

metabase-data-app-actions

Use when a Metabase data app needs to trigger a write or mutation — submitting a form, updating a row, deleting an entry, running a saved action, or any "do something" interaction. Covers invoking an existing action via `useAction`, parameter typing, response handling, and the critical post-action refresh of any UI data the action may have changed.

Why this skill is useful

Provides specific patterns and commands for invoking Metabase actions that the AI wouldn't reliably generate on its own.

What it needs

Requires metabase account access. About 9k tokens when loaded. Last updated 2026-08-07. 48,568 stars on the source repository.

What this skill does

Triggering actions from a Metabase data app A Metabase action is a server-defined write operation against the data warehouse — either a basic CRUD operation (insert / update / delete) on a model, or a custom SQL command. Actions are configured ahead of time on the Metabase instance, with their parameters, model bindings, and permissions already set. A data app's job is to invoke an action with the right parameters when the user does something — clicking a button, submitting a form, confirming a destructive prompt. The mental model Actions belong to a model. They mutate that model's rows. Concretely: Every action has a parent model. In the schema it appears as schema.models.<modelName>.actions.<actionName>. Model entries are included here only to catalog actions. Do not render models as questions, pass model ids to InteractiveQuestion, or fetch model rows; use semantic-layer queries/questions for read views. An action's type is either "implicit" (CRUD on the model) or "query" (custom SQL the user authored). Implicit actions have an implicitKind that says what they do: "row/create", "row/update", "row/delete", or "bulk/" variants. Each action publishes a parameters list. Each parameter has a slug (the key the Data App sends), a jsType ("string" / "number" / "Date" / "boolean" / "unknown"), and an optional required flag. Use action.parameters to know which fields to render and submit. A create result may include result["created-row"], but that row is only typed as Record<string, RowValue>; use it for lightweight confirmation, then refresh the existing table/question/query data already used by the page. Do not fetch or render the parent model itself. What's in the schema (and what isn't) Action entries are only generated when the typed schema includes models. Before writing action-invoking code, make sure the schema was generated with include-models=true; with database=<name-or-id>&include-models=true, Metabase includes models/actions for that database only. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills metabase/metabase-data-app-actions

View the source on GitHub

Browse the @skills marketplace