﻿---
title: Ways to build a dashboard
description: Decide whether to build a Kibana dashboard from the UI, with REST APIs, or with AI tools, based on how you work and what you need to automate.
url: https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8924/explore-analyze/dashboards/building
products:
  - Elastic Documentation
  - Kibana
applies_to:
  - Elastic Cloud Serverless: Generally available
  - Elastic Stack: Generally available
---

# Ways to build a dashboard
You can build a dashboard from the UI, with REST APIs, or with AI. Use the following table to find the approach that fits how you work, then follow the link to get started. To learn what a dashboard is, refer to [Kibana dashboards](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8924/explore-analyze/dashboards).

| Approach                                                                                                                                                               | When to use this                                                                         | What you get                                                                      |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------|
| [Create a dashboard from the UI](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8924/explore-analyze/dashboards/create-dashboard)                       | Exploring data interactively and assembling dashboards panel by panel                    | Saved dashboard                                                                   |
| [Create dashboards programmatically](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8924/explore-analyze/dashboards/create-dashboards-programmatically) | Automating deployments, managing dashboards and visualizations as code, CI/CD pipelines  | Saved dashboard or visualization                                                  |
| [Create dashboards using AI](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8924/explore-analyze/dashboards/create-dashboards-using-ai)                 | Generating dashboards from natural language, or building AI tools that create dashboards | Dashboard through chat that you save when ready, or saved dashboard using the API |

Once you have a dashboard, you can enhance it:
- [Add filter controls](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8924/explore-analyze/visualize/add-controls) to let viewers explore the data interactively
- Add [drilldowns](/elastic/docs-content/pull/8924/explore-analyze/dashboards/drilldowns#drilldown-types) to open another dashboard, a URL, or Discover from a panel
- [Arrange and resize panels](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8924/explore-analyze/dashboards/arrange-panels) to optimize its layout
- <applies-to>Elastic Cloud Serverless: Preview</applies-to> <applies-to>Elastic Stack: Planned</applies-to> [Enhance it with AI](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8924/explore-analyze/dashboards/enhance-dashboard-with-ai) to improve its text, layout, and chart styling

You can also maintain your dashboards after you create them: [organize your collection](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8924/explore-analyze/dashboards/managing) with search, tags, and favorites, [duplicate](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8924/explore-analyze/dashboards/duplicate-dashboards) a dashboard to reuse it as a starting point, [import](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8924/explore-analyze/dashboards/import-dashboards) one from another space, instance, or deployment, or [share or export](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8924/explore-analyze/dashboards/sharing) it. For repeatable, auditable changes, [manage your dashboards as code](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8924/explore-analyze/dashboards/manage-dashboards-as-code) to version-control their definitions and deploy them across environments.

## Requirements

To create or edit dashboards, you need:
- [Data indexed into Elasticsearch](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8924/manage-data/ingest) and a [data view](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8924/explore-analyze/find-and-organize/data-views). A data view is a subset of your Elasticsearch data, and allows you to load the right data when building a visualization or exploring it.
  <tip>
  If you don't have data at hand and still want to explore dashboards, you can import one of the [sample data sets](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8924/manage-data/ingest/sample-data) available.
  </tip>
- Sufficient privileges for the **Dashboard** feature. Without them, you might get a read-only indicator. A Kibana administrator can [grant you the required privileges](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8924/deploy-manage/users-roles/cluster-or-deployment-auth/kibana-privileges).