• Tools
Tools
  • Tools
loading...
No Results
  • AirDroid Business
    • Index
    • Clear app data and cache
    • Create a group
    • Delete groups
    • Disable lost mode
    • Error codes
    • Enable lost mode
    • Field reference
    • Get average screen time
    • Get account activities
    • Get a group
    • Get a group id by group name
    • Get a device by name
    • Get a device app by name
    • Get an activity log
    • Get all devices
    • Get all device apps
    • Get all devices with filter
    • Get device info push
    • Get device location report
    • Get device network connection history
    • Get device application usage duration
    • Get device application report
    • Get device online status report
    • Get device remote access report
    • Get data usage overview and trends
    • Get tag ids by tag names
    • Get top 10 apps by usage duration
    • Get top 10 data usage apps
    • Lock a device
    • Move devices to a group
    • Open app to foreground
    • Power off a device
    • Reboot device
    • Remote operation
    • Set tags
    • Turn off device screen
    • Unenroll a device
    • Update a device name
    • Update a device remark
    • Update a group name
    • Update a group remark
  • System Tools
    • Code
    • CSV
    • Crypto
    • Data Shaping
    • Date & Time
    • Delay
    • Documents
    • QRCode
    • Search&Crawl
    • Text
    • Xml
  • ActiveCampaign
  • Asana
  • AWS-S3
  • AWS Lambda
  • Appstore
  • BambooHR
  • Bitbucket
  • Brevo
  • Coda
  • ConvertKit
  • Clockify
  • DingTalk
  • Discourse
  • Discord
  • Dropbox
  • Elastic Security
  • FeiShu
  • Firecrawl
  • Freshdesk
  • Freshservice
  • Freshworks CRM
  • Gerrit
  • Gitlab
  • Github
  • Grafana
  • Google Ads
  • Google Docs
  • Google Drive
  • Google Gmail
  • Google Sheets
  • Google Analytics
  • Google Calendar
  • Google Developer
  • Harvest
  • HaloPSA
  • Hacker News
  • Hubspot
  • Help Scout
  • Intercom
  • Jira
  • Jenkins
  • Kafka
  • Linear
  • Lemlist
  • MySQL
  • monday.com
  • Metabase
  • MailChimp
  • Microsoft Excel
  • Microsoft Teams
  • Microsoft To Do
  • Microsoft OneDrive
  • Microsoft Outlook
  • Microsoft SharePoint
  • Notion
  • Nextcloud
  • Odoo
  • Ortto
  • Okta
  • PayPal
  • Paddle
  • Pipedrive
  • PostHog
  • PostgreSQL
  • OpenAI
  • Qdrant
  • QuickBooks
  • Redis
  • Strapi
  • Stripe
  • Splunk
  • Spotify
  • Shopify
  • SendGrid
  • Segment
  • ServiceNow
  • Trello
  • Twilio
  • Todoist
  • Telegram
  • Webflow
  • Wikipedia
  • WordPress
  • WooCommerce
  • YouTube
  • Zulip
  • Zoom
  • Zendesk
  • Zammad
  • Zoho CRM
Home > Tools

Metabase

1. Overview

Metabase is an open-source business intelligence tool that lets you ask questions about your data and displays answers in formats that make sense, whether that's a bar graph or a detailed table. It simplifies data analytics by allowing users to visualize data from various sources in a unified interface.

Through the Metabase node in GoInsight, you can automate the management of your analytics infrastructure and retrieve insights directly within your workflows. Key capabilities include:

  • Database Management: Connect new data sources and retrieve metadata about existing databases and fields.
  • Question & Result Retrieval: Access saved questions (cards) and export their results in various formats like CSV or JSON.
  • Alert Monitoring: Retrieve information about configured data alerts to audit or backup your monitoring rules.

2. Prerequisites

Before using this node, ensure you meet the following requirements:

  • Metabase Instance: You must have access to a running Metabase instance (either self-hosted or Metabase Cloud).
  • User Account: A valid Metabase user account is required.
  • Permissions: Administrative privileges are required for certain actions, such as adding new databases. For retrieving questions or results, the account must have collection access permissions.

3. Credentials

For detailed guidelines on how to acquire and configure credentials, please refer to our official documentation: Credential Configuration Guide.

4. Supported Operations

Summary

This node primarily operates on the following core resources within Metabase: Database, Alert, and Question.

Resource Operation Description
Database Add a Database Add a new datasource to the metabase instance.
Database Get Fields of a Database Retrieves metadata for all fields (columns) in a Metabase database connection.
Database Get Many Databases Get many databases.
Alert Get Many Alerts Retrieve all alerts (automated data monitoring rules) from Metabase.
Alert Get an Alert Get specific alert.
Question Get Many Questions Get many questions.
Question Get a Question Get a specific question.
Question Get the Results from a Question Return the result of the question to a specific file format.

Operation Details

Add a Database

Add a new datasource to the metabase instance.

Idempotency Protection: If a database with the same name already exists, this action will return the existing record instead of creating a duplicate. Check the ErrorMessage field to identify this scenario.

Input Parameters:

  • Engine: Database engine type (case-sensitive, must be lowercase). Supported engines: postgres (PostgreSQL), mysql (MySQL/MariaDB), redshift (Amazon Redshift), bigquery (Google BigQuery), sqlserver (Microsoft SQL Server), oracle (Oracle Database). Refer to Metabase official documentation for the complete list.
    • MariaDB → use mysql
    • AWS Aurora (PostgreSQL-compatible) → use postgres
    • AWS Aurora (MySQL-compatible) → use mysql
    • Azure SQL Database → use sqlserver
    • Google Cloud SQL (PostgreSQL) → use postgres
    • Amazon RDS (any engine) → use the corresponding base engine type
  • Name: Display name for the database in Metabase. This name will be shown in the Metabase UI.
  • Details: Database connection configuration object containing the following fields:
    • host (string, required): Database server address
    • port (integer, required): Port number
    • db (string, required): Database name
    • user (string, required): Username
    • password (string, required): Password
    • ssl (boolean, optional): Enable SSL, default false
    • additional_options (string, optional): Additional connection parameters

Output:

  • Database (object): The created database connection object containing the following core fields:
    • id (integer): Unique identifier of the database connection
    • engine (string): Engine type (e.g., postgres, mysql, redshift)
    • name (string): Display name
    • details (object): Connection configuration details
    • created_at (string): Creation timestamp (ISO 8601 format)
    • updated_at (string): Last update timestamp (ISO 8601 format)
    • is_sample (boolean): Whether it is a sample database
    • is_on_demand (boolean): Whether it is an on-demand database
    • creator_id (integer): Creator user ID
    • native_permissions (string): Native query permissions
    • cache_ttl (integer): Cache time-to-live in seconds
    • features (array): Supported features list
  • OriginalStatusCode (number): The original HTTP status code returned by the upstream API. Use for debugging.
  • StatusCode (number): Operation status code: 200=Success (check ErrorMessage for business errors), -1=Parameter validation error, 500=System error (may retry).
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded.

Get Fields of a Database

Retrieves metadata for all fields (columns) in a Metabase database connection. Use this action to:

  • Discover available fields before building queries
  • Validate field names and types
  • Build dynamic form schemas
  • Generate data dictionaries

Typical Workflow:

  1. Call List Databases to get DbId
  2. Call this action to get field metadata
  3. Use field names in Create Query or Run Query actions

Input Parameters:

  • DbId: The ID of the Metabase database. You can get this ID from:
    • 'List Databases' action
    • Metabase Admin UI → Databases → Database ID column
    • Database settings page URL (e.g., /admin/databases/123 → DbId = 123)

Output:

  • Fields (object-array): List of field objects from the database. Each field object contains:
    • id (number): Unique field identifier
    • name (string): Field name
    • display_name (string): Human-readable field name
    • table_id (number): ID of the parent table
    • base_type (string): Data type (e.g., 'type/Text', 'type/Integer')
    • semantic_type (string): Semantic classification (e.g., 'type/PK', 'type/Name')
    • visibility_type (string): Visibility level ('normal', 'sensitive', etc.)
    • description (string): Field description
    • fingerprint (object): Field statistics and metadata
  • OriginalStatusCode (number): The original HTTP status code returned by the upstream API. Use for debugging.
  • StatusCode (number): Operation status code: 200=Success (check ErrorMessage for business errors), -1=Parameter validation error, 500=System error (may retry).
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded.

Get Many Databases

Get many databases.

Output:

  • Databases (object): Database connection objects. Each database object contains: id (number, unique identifier for the database), name (string, display name of the database), engine (string, database type such as mysql, postgres, h2, bigquery, snowflake), is_sample (boolean, indicates if this is a sample database), details (object, connection configuration details including host, port, dbname), created_at (string, ISO 8601 formatted creation timestamp), updated_at (string, ISO 8601 formatted last update timestamp), features (array, supported database features), auto_run_queries (boolean, whether queries run automatically).
  • OriginalStatusCode (number): The original HTTP status code returned by the upstream API. Use for debugging.
  • StatusCode (number): Operation status code: 200=Success (check ErrorMessage for business errors), -1=Parameter validation error, 500=System error (may retry).
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded.

Get Many Alerts

Retrieve all alerts (automated data monitoring rules) from Metabase.

⚠️ Important: Returns ALL alerts in one request. Metabase API does not support pagination or filtering.

Use Cases:

  • Audit: List all active alerts in the organization
  • Backup: Export alert configurations for disaster recovery
  • Monitoring: Check which questions have alerts enabled

What are Alerts? Automated notifications triggered when query results meet certain conditions (e.g., row count exceeds threshold, metric reaches goal).

Output:

  • Alerts (object-array): List of alert objects. Core fields: id (number), alert_condition (string: 'rows'/'goal'), card (object: {id, name}), channels (array), creator (object: {id, email}), archived (boolean), alert_first_only (boolean), alert_above_goal (boolean, goal alerts only). See ResponseExample for complete structure.
  • OriginalStatusCode (number): The original HTTP status code returned by the upstream API. Use for debugging.
  • StatusCode (number): Operation status code: 200=Success (check ErrorMessage for business errors), -1=Parameter validation error, 500=System error (may retry).
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded.

Get an Alert

Get specific alert.

Input Parameters:

  • AlertId: The unique identifier of the alert to retrieve (integer). You can obtain this ID by:
    1. Calling the 'List All Alerts' workflow to get the alert list
    2. Extracting the 'id' field from the returned Alert object
    3. Viewing the URL in Metabase web interface (e.g., /alert/123 where 123 is the AlertId)

Output:

  • Alert (object): Metabase alert object containing the following core fields:
    • id (number): Alert unique identifier
    • name (string): Alert name
    • alert_condition (string): Trigger condition, enum values: 'rows' or 'goal'
    • alert_above_goal (boolean): Whether to trigger when goal is reached
    • alert_first_only (boolean): Whether to send alert only on first trigger
    • card (object): Associated question card
    • id (number): Question ID
    • name (string): Question name
    • display (string): Display type
    • creator (object): Creator information
    • id (number): User ID
    • email (string): Email address
    • common_name (string): Display name
    • channels (array): Notification channel list (Email/Slack)
    • channel_type (string): Channel type
    • enabled (boolean): Whether enabled
    • recipients (array): Recipient list
    • created_at (string): Creation time in ISO 8601 format
    • updated_at (string): Last update time
    • archived (boolean): Whether archived
  • OriginalStatusCode (number): The original HTTP status code returned by the upstream API. Use for debugging.
  • StatusCode (number): Operation status code: 200=Success (check ErrorMessage for business errors), -1=Parameter validation error, 500=System error (may retry).
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded.

Get Many Questions

Get many questions.

Options:

  • Page: Page number, starting from 1. Default: 1
  • Limit: Number of cards to return per page. Default: 50, Maximum: 200

Output:

  • Cards (object-array): List of card objects. Each card object contains: id (number, card unique identifier), name (string, card name/question title), description (string, card description), display (string, display type like 'table', 'bar', 'line'), dataset_query (object, query definition including database, type, query), creator (object, creator info with id, email, common_name), created_at (string, ISO 8601 format), updated_at (string, last update time). For complete field list, refer to: https://www.metabase.com/docs/latest/api/card
  • Pagination (object): Pagination metadata containing: page (number, current page number), per_page (number, items per page), total_count (number, total number of cards), has_more (boolean, whether there are more pages available)
  • OriginalStatusCode (number): The original HTTP status code returned by the upstream API. Use for debugging.
  • StatusCode (number): Operation status code: 200=Success (check ErrorMessage for business errors), -1=Parameter validation error, 500=System error (may retry).
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded.

Get a Question

Get a specific question.

Input Parameters:

  • QuestionId: Metabase Question (Card) unique identifier. How to obtain:
    1. From Metabase UI: Open question page, the {id} in URL /question/{id} is QuestionId
    2. From Search Questions API: The returned Question list contains id field
    3. Example value: 1234

Output:

  • Question (object): Metabase Question object details, containing the following core fields:
    • id (number): Question unique ID
    • name (string): Question name
    • description (string): Question description
    • database_id (number): Associated database ID
    • table_id (number): Associated table ID
    • dataset_query (object): Query definition (contains SQL or native query)
    • display (string): Visualization type (e.g., 'table', 'line', 'bar')
    • visualization_settings (object): Visualization configuration
    • creator (object): Creator information, contains id, email, common_name
    • created_at (string): Creation time, ISO 8601 format
    • updated_at (string): Last update time
    • collection_id (number): Collection ID
    • query_type (string): Query type ('query' or 'native')
    • result_metadata (array): Result metadata
  • OriginalStatusCode (number): The original HTTP status code returned by the upstream API. Use for debugging.
  • StatusCode (number): Operation status code: 200=Success (check ErrorMessage for business errors), -1=Parameter validation error, 500=System error (may retry).
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded.

Get the Results from a Question

Return the result of the question to a specific file format.

Input Parameters:

  • QuestionId: The unique identifier of the Metabase Question (Card). You can obtain this ID from:
    1. The Metabase UI: Open the question, the URL will show /question/{id}
    2. Call the 'List Questions' API to retrieve all available questions and their IDs

Options:

  • Format: Output data format. Supported formats:
    • csv: CSV table format (comma-separated values)
    • json: JSON array format
    • xlsx: Excel spreadsheet format

Output:

  • Data (string): The raw query result data as text. Format depends on the 'Format' parameter:
    • csv: CSV formatted text (comma-separated)
    • json: JSON formatted text (can be parsed with JSON.parse)
    • xlsx: Excel binary data encoded in Base64
  • OriginalStatusCode (number): The original HTTP status code returned by the upstream API. Use for debugging.
  • StatusCode (number): Operation status code: 200=Success (check ErrorMessage for business errors), -1=Parameter validation error, 500=System error (may retry).
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded.

5. Example Usage

This section guides you through a common scenario: retrieving the results of a specific business question (e.g., "Monthly Sales") in JSON format to use in subsequent automation steps.

Workflow Overview: Start -> Metabase Node (Get Results) -> Answer

Step-by-Step Guide:

  1. Add Tool Node:
    • Click the "+" icon in your workflow canvas.
    • Select the "Tools" tab.
    • Search for and select Metabase.
    • Choose the operation Get the Results from a Question.
  2. Configure Node:
    • Click the node to open the configuration panel.
    • Credentials: Select your configured Metabase credentials.
    • Input Parameters:
    • QuestionId: Enter the ID of the question you want to run. You can find this in your Metabase browser URL (e.g., for https://metabase.example.com/question/42, enter 42).
    • Format: Enter json. This ensures the data is returned in a structured format that is easy for other nodes to parse.
  3. Run and Verify:
    • Click "Run" or "Test Run" in the canvas.
    • Once successful, check the node's output logs. You should see the query results in the Data field formatted as a JSON string.

Summary: After completing these steps, your workflow will dynamically fetch the latest data from your Metabase question every time it runs, allowing you to build automated reports or data syncs.

6. FAQs

Q: Why am I receiving a 401 Unauthorized error?

A: This usually indicates an issue with your credentials.

  • Check Credentials: Ensure your Username and Password (or API Key if applicable) are correct in the credential configuration.
  • Session Expiry: If using session tokens, they may have expired.

Q: How do I find the correct 'Engine' name for the "Add a Database" action?

A: The engine name must be lowercase and match Metabase's internal driver names.

  • Common Mappings: Use mysql for MariaDB, postgres for Redshift (if using the generic driver) or redshift specifically.
  • Validation: Refer to the Engine input description in this document for a list of supported values.

Q: The "Get Many Questions" action isn't returning all my questions.

A: This action is paginated by default.

  • Check Limit: The default limit is 50. Increase the Limit parameter (max 200).
  • Pagination: Use the Page parameter to loop through subsequent pages if you have more than 200 questions.

7. Official Documentation

Metabase Official API Documentation

Updated on: Apr 8, 2026
Was This Page Helpful?
Prev monday.com
Next MailChimp
Discussion

Leave a Reply. Cancel reply

Your email address will not be published. Required fields are marked*

Product-related questions?Contact Our Support Team to Get a Quick Solution>
On this page
  • 1. Overview
  • 2. Prerequisites
  • 3. Credentials
  • 4. Supported Operations
    • Summary
    • Operation Details
  • 5. Example Usage
  • 6. FAQs
  • 7. Official Documentation
loading...
No Results