# Tableau Dashboard Refresher (`zuzka/tableau-refresher`) Actor

Do you have a Google Sheets dashboard on Tableau Public, but only automatically refreshing it once a day is not enough for you? Refresh your Tableau Public dashboards as many times a day as you need with this handy free automation tool by Apify.

- **URL**: https://apify.com/zuzka/tableau-refresher.md
- **Developed by:** [Zuzka Pelechová](https://apify.com/zuzka) (community)
- **Categories:** Automation, Developer tools
- **Stats:** 10 total users, 0 monthly users, 0.0% runs succeeded, 4 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-usage

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### What does Tableau Dashboard Refresher do?

Tableau Public only lets you refresh your dashboards automatically once a day. If refreshing your Tableau dashboards once a day is not enough, and a Tableau subscription is too pricey and otherwise unnecessary for you, then this free tool is exactly what you need.

Tableau Dashboard Refresher allows you to refresh your Tableau dashboards as many times a day as you want. It does it automatically, even when you are away.

### What is Tableau?

Tableau is an analytics platform that makes visualizing your data effortless. Visualizations help you understand your data better and uncover insights to improve your business.

Tableau connects to your database through a dashboard and shows you your data in a graphically appealing and easy-to-read format.

Take Google Sheets, for example. You can insert a large amount of data on multiple spreadsheets, and you might need to present it to clients or colleagues. Tableau connects to your spreadsheets and displays your data through impactful graphs and charts.

### How much will Tableau Dashboard Refresher cost to use?

Tableau Dashboard Refresher consumes 0.02 [compute units](https://help.apify.com/en/articles/3490384-what-is-a-compute-unit) for one refresh; therefore, 1,000 refreshes = 2CUs, amounting to 0.5$.

In other words, you can refresh your dashboard every hour for a month for less than half a dollar!

### Input

All the actor needs are the URL for the dashboard you want to refresh and your Tableau Public account credentials. The actor will use this information to log into your Tableau Public repository, refresh the page and click `request data refresh`.

```json
{
  "url": "https://public.tableau.com/app/profile/pablolgomez/viz/HappinessintheWorld_16245341657220/WHR",
  "email": "my.email@example.com",
  "password": "my_password_to_tableau"
}
```

# Actor input Schema

## `url` (type: `string`):

Tableau public URL where you want to update the dashboard/ request data update automatically.

## `email` (type: `string`):

Email to your account in Tableau public.

## `password` (type: `string`):

Password to your account in Tableau public.

## Actor input object example

```json
{
  "url": "https://public.tableau.com/app/profile/pablolgomez/viz/HappinessintheWorld_16245341657220/WHR",
  "email": "my.email@example.com",
  "password": "my_password_to_tableau"
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "url": "https://public.tableau.com/app/profile/pablolgomez/viz/HappinessintheWorld_16245341657220/WHR",
    "email": "my.email@example.com",
    "password": "my_password_to_tableau"
};

// Run the Actor and wait for it to finish
const run = await client.actor("zuzka/tableau-refresher").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "url": "https://public.tableau.com/app/profile/pablolgomez/viz/HappinessintheWorld_16245341657220/WHR",
    "email": "my.email@example.com",
    "password": "my_password_to_tableau",
}

# Run the Actor and wait for it to finish
run = client.actor("zuzka/tableau-refresher").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "url": "https://public.tableau.com/app/profile/pablolgomez/viz/HappinessintheWorld_16245341657220/WHR",
  "email": "my.email@example.com",
  "password": "my_password_to_tableau"
}' |
apify call zuzka/tableau-refresher --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,zuzka/tableau-refresher"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/YVXDQPhPBFSFVuJ1j/builds/oEMjDAUXqSNvhwXnD/openapi.json
