.png)
Tableau Integration Guide
Integrate Tableau Cloud and Tableau Server with enterprise systems through REST APIs, GraphQL metadata queries, selected webhooks, asynchronous jobs, and workbook or data-source exchange.
Tableau integration options at a glance
Tableau provides REST APIs for authentication, site administration, users, groups, projects, workbooks, views, data sources, permissions, publishing, refreshes, and asynchronous jobs. Its GraphQL Metadata API supports catalog, lineage, and relationship queries, while selected Tableau events can be delivered through webhooks. Tableau also supports workbook and data-source downloads or publishing, view exports, and job-status polling. Martini can consume these APIs, receive webhook callbacks through an exposed API, orchestrate long-running operations, map metadata into governance systems, and securely manage PAT, OAuth, JWT, and site-specific configuration values.
| Integration point | Supported by Tableau? | Common use cases | How Martini supports it |
|---|---|---|---|
| REST APIs | Yes | Authenticate and manage sites, users, groups, projects, workbooks, views, data sources, permissions, publishing, downloads, refreshes, and jobs. | Martini can consume Tableau REST endpoints, generate reusable API workflows, map responses, and orchestrate multi-step administrative operations. |
| GraphQL APIs | Yes | Query Tableau catalog, lineage, and relationships among workbooks, views, data sources, tables, and columns through the Metadata API. | Martini can consume the Metadata API, transform GraphQL responses, and write governance or lineage results to another system. |
| Webhooks | Limited | Receive selected Tableau content or administrative event notifications. Coverage is event-specific and does not include every object or change. | Martini can expose an HTTP endpoint, validate callbacks, apply idempotency, and retrieve the current Tableau state through REST. |
| Asynchronous jobs | Limited | Track selected publishing, refresh, and administrative operations that return a job identifier rather than an immediate final result. | Martini can persist job IDs, poll status with bounded intervals and backoff, and route success, failure, cancellation, or timeout outcomes. |
| File and workbook exchange | Limited | Publish or download workbooks and data sources, including packaged Tableau content where supported by the endpoint. | Martini can handle file inputs and outputs, apply validation, and coordinate large-file or asynchronous operations using temporary storage where appropriate. |
| View exports | Limited | Retrieve supported representations of views, such as CSV, PDF, image, or crosstab-style output, subject to permissions and deployment configuration. | Martini can call documented export endpoints, transform returned content, and deliver it to downstream applications or storage. |
| Authentication | Yes | Use PATs, REST sign-in sessions, OAuth connected applications, or JWT-based connected-app patterns where configured. | Martini can store secrets, client credentials, private keys, and site settings in secure environment configuration and use them in API workflows. |
| Database and analytics access | Limited | Query Tableau catalog and lineage metadata through GraphQL; Tableau is not a general direct SQL interface to underlying operational source data. | Martini can use Tableau APIs for metadata and orchestration while connecting directly to source applications or databases for record-level synchronization. |
How Tableau exposes data and business events
Tableau REST APIs
Tableau REST APIs are the primary interface for authentication, site and content administration, publishing, downloads, permissions, refresh operations, and job management. API versions and available endpoints can vary between Tableau Cloud and Tableau Server.
Martini implementation pattern
Martini implementation pattern: Martini authenticates with a PAT, OAuth or configured connected-app method, invokes the required REST resources, maps responses into canonical models, and maintains site and object identifiers across workflow steps.
Implementation sequence
Tableau Metadata API
Tableau’s GraphQL Metadata API provides catalog, lineage, and relationship queries across workbooks, views, data sources, tables, columns, and related metadata. It is intended for discovery and analysis rather than general Tableau administration.
Martini implementation pattern
Martini implementation pattern: Martini submits controlled GraphQL queries, handles pagination and optional fields, normalizes lineage relationships, and writes governance results to a database or service.
Implementation sequence
Tableau Webhooks
Tableau supports webhook notifications for selected content and administrative events. Coverage is partial and event-specific, so callbacks should be treated as signals to retrieve the current Tableau state rather than as a complete event stream.
Martini implementation pattern
Martini implementation pattern: Martini exposes an API endpoint, validates the callback, records an event or object key, checks for duplicates, and calls Tableau REST APIs to obtain authoritative state before notifying downstream systems.
Implementation sequence
Tableau Jobs
Tableau returns job identifiers for selected long-running publishing, refresh, and administrative operations. Job status must be polled until a terminal state or timeout is reached.
Martini implementation pattern
Martini implementation pattern: Martini submits the operation, persists the returned job ID, schedules bounded status checks, and routes completed, failed, cancelled, or timed-out jobs according to business rules.
Implementation sequence
Tableau Files and View Exports
Tableau endpoints support workbook and data-source publishing or downloading and can provide supported view exports such as CSV, PDF, image, or crosstab-style output. Availability depends on the view, permissions, format, and deployment.
Martini implementation pattern
Martini implementation pattern: Martini validates the requested content and authorization, manages file input or output, invokes the relevant Tableau endpoint, and routes the result to storage or a consuming application.
Implementation sequence
Common Tableau integration patterns
Pattern 1: Publish workbooks through a deployment workflow
When to use this pattern
Use this pattern when a CI/CD process or controlled business request must publish or replace a packaged Tableau workbook in a target site and project. The workflow validates identifiers and permissions before changing content and records the resulting Tableau job or workbook state.
Integration direction
Example Mapping
| Tableau Field | Canonical Field | Target Field |
|---|---|---|
| workbookName | content.name | Tableau workbook name |
| projectId | destination.projectId | Tableau project ID |
| workbookFile | content.package | Workbook upload |
| deploymentEnvironment | tableau.site | Tableau site context |
Martini implementation pattern
Martini receives the deployment request and file, authenticates to Tableau, validates the site and project, applies replacement or conflict rules, publishes the workbook, and polls any returned job. It reports the final Tableau identifier and routes validation, authorization, timeout, and transient failures separately.
Martini capabilities used
- workflows
- API consumption
- data mapping
- business rules
- file handling
- error handling
Pattern 2: Orchestrate Tableau extract refreshes
When to use this pattern
Use this pattern when Tableau data sources or workbooks should refresh after an upstream warehouse or application load completes. It prevents downstream consumers from treating a submitted refresh as successful before Tableau reports a terminal job state.
Integration direction
Example Mapping
| Tableau Field | Canonical Field | Target Field |
|---|---|---|
| loadStatus | source.load.completed | Refresh trigger |
| dataSourceId | tableau.content.id | Tableau data source ID |
| jobId | operation.correlationId | Tableau job ID |
| status | refresh.status | Tableau job status |
Martini implementation pattern
Martini receives the upstream completion signal, resolves the Tableau data source or workbook, starts the refresh, persists the job ID, and polls with backoff and a bounded timeout. It retries transient failures, avoids duplicate submissions, and notifies an operations system when the refresh fails.
Martini capabilities used
- workflows
- API consumption
- orchestration
- scheduling
- business rules
- retry handling
Pattern 3: Build a Tableau governance and lineage inventory
When to use this pattern
Use this pattern for scheduled governance, impact analysis, ownership reviews, and content inventories. REST supplies administrative objects while GraphQL supplies supported metadata and lineage relationships.
Integration direction
Example Mapping
| Tableau Field | Canonical Field | Target Field |
|---|---|---|
| siteLuid | tableau.site.id | Governance site ID |
| workbookLuid | content.workbook.id | Governance workbook ID |
| owner | content.owner | Governance owner |
| lineage | metadata.relationships | Governance lineage links |
Martini implementation pattern
A scheduled Martini workflow pages through Tableau sites, users, groups, projects, workbooks, views, and data sources, then queries supported metadata relationships. It normalizes names and stable IDs, flags stale or incomplete content where available, upserts the inventory, and records checkpoints for incremental processing.
Martini capabilities used
- scheduled workflows
- REST API consumption
- GraphQL API consumption
- pagination
- data mapping
- database integration
- error handling
Pattern 4: Process Tableau webhook events
When to use this pattern
Use this pattern for selected Tableau events that need downstream operational action, such as notifications, tickets, or governance workflows. Because webhook coverage is partial, scheduled polling remains the fallback for unsupported changes.
Integration direction
Example Mapping
| Tableau Field | Canonical Field | Target Field |
|---|---|---|
| eventType | event.type | ServiceNow issue category |
| objectId | tableau.object.id | Correlation reference |
| eventTimestamp | event.occurredAt | Reported time |
| currentStatus | operation.status | Issue state |
Martini implementation pattern
Martini receives and validates the callback, checks a deterministic event or object key, retrieves authoritative Tableau state through REST, and maps the result into a ServiceNow issue or notification. Duplicate events are suppressed, transient downstream errors are retried, and unhandled event types are routed for review.
Martini capabilities used
- API exposure
- webhook consumption
- API consumption
- idempotency
- data mapping
- business rules
- error handling
Applications commonly integrated with Tableau
Tableau commonly participates in enterprise analytics architectures alongside operational applications, data platforms, and collaboration tools. Martini can coordinate these systems with Tableau APIs, workflows, mappings, and controlled error handling. The exact source connectivity and permissions depend on the deployment and the selected application APIs.
| Application | Scenario | Direction | Martini Pattern |
|---|---|---|---|
| Salesforce | Bring CRM data into Tableau for pipeline, account, and service analytics, or coordinate Tableau metadata and governance processes with Salesforce administration. | Salesforce → Martini → Tableau | Martini receives an upstream completion or deployment event, validates the Tableau site and target content, invokes Tableau REST operations, and records refresh or publication status. |
| Snowflake | Use Snowflake as a governed analytical source for Tableau workbooks and coordinate refreshes after warehouse loads complete. | Snowflake → Martini → Tableau | A Martini workflow receives a data-load completion signal, identifies the Tableau data source or workbook, starts the applicable refresh, polls the Tableau job, and routes failures for operational handling. |
| ServiceNow | Create operational tickets for Tableau refresh failures, governance exceptions, access requests, or publication issues. | Tableau → Martini → ServiceNow | Martini receives a Tableau webhook or scheduled status result, applies business rules, maps the issue into a ServiceNow record, and stores the Tableau job or object identifier for correlation. |
| Jira | Track failed Tableau jobs, dashboard certification work, data-pipeline issues, or content remediation tasks. | Tableau → Martini → Jira | Martini transforms Tableau job or governance results into Jira issue fields, applies duplicate detection using the Tableau object or job ID, and retries transient API failures. |
| Slack | Notify data and platform teams about workbook publication results, refresh failures, and selected Tableau events. | Tableau → Martini → Slack | Martini validates an incoming Tableau event or scheduled status, enriches it with the current Tableau object state, and sends a concise Slack notification after idempotency checks. |
| Microsoft Teams | Distribute operational notifications and approval messages related to Tableau publishing, refreshes, and governance workflows. | Tableau → Martini → Microsoft Teams | A Martini workflow maps Tableau status and ownership information into a Teams message or downstream approval request, with failures routed to retry and monitoring paths. |
| NetSuite | Combine financial and operational NetSuite data with Tableau analytics and coordinate refreshes after financial data loads. | NetSuite → Martini → Tableau | Martini orchestrates the completion signal from NetSuite-related processing, invokes the Tableau refresh operation, polls its job status, and records the outcome for finance operations. |
| Workday | Analyze workforce data in Tableau and coordinate governed refresh or access processes. | Workday → Martini → Tableau | Martini coordinates source-data readiness with Tableau refresh or governance workflows, transforms identifiers and ownership information, and applies permission-aware error handling. |
How to build a Tableau integration in Martini
Objective
Establish Tableau access using a deployment-appropriate authentication method and keep secrets outside workflow logic.
Instructions in Martini
- Configure the Tableau site, API version, and environment-specific endpoint values.
- Store PAT secrets, OAuth credentials, JWT keys, and related values in secure Martini configuration.
- Confirm the integration identity has access to the required site, project, workbook, view, or data source.
Objective
Select an event, API request, or schedule that matches the required Tableau integration behavior.
Instructions in Martini
- Use a Martini API endpoint for deployment or on-demand operations.
- Receive selected Tableau webhook callbacks when event coverage is sufficient.
- Use scheduled workflows for inventory synchronization or changes not covered by webhooks.
Objective
Call the appropriate Tableau REST or GraphQL API and handle site context, pagination, and optional fields.
Instructions in Martini
- Use REST for administration, content, publishing, views, refreshes, and jobs.
- Use GraphQL Metadata API for supported lineage and catalog queries.
- Persist stable Tableau IDs and synchronization checkpoints.
Objective
Coordinate multi-step Tableau operations such as publishing, refreshing, polling, and downstream notification.
Instructions in Martini
- Persist Tableau job identifiers for asynchronous operations.
- Poll with bounded intervals and backoff until a terminal state or timeout.
- Separate success, failure, cancellation, and timeout paths.
Objective
Convert Tableau responses, metadata, files, and event payloads into canonical models for downstream systems.
Instructions in Martini
- Map sites, users, groups, projects, workbooks, views, and data sources using stable identifiers.
- Normalize timestamps, ownership, permissions, status, and lineage relationships.
- Validate required fields and handle optional GraphQL relationships.
Objective
Enforce authorization, conflict, duplicate, and governance decisions before writing or notifying downstream systems.
Instructions in Martini
- Check whether publication should replace existing content, fail on conflict, or create a new version.
- Use event, object, or job identifiers for idempotency.
- Avoid treating webhook delivery as proof that Tableau has reached the final state.
Common Tableau data objects used in integrations
| Object | Typical Use | Common target systems | Martini handling |
|---|---|---|---|
| Sites | Represent Tableau environments containing users, projects, workbooks, views, and data sources. | Governance databases, identity processes, service management platforms | Martini retrieves site identifiers and configuration through REST, preserves site context, and maps site-scoped content into canonical governance models. |
| Users | Represent Tableau identities, site membership, roles, and permissions. | Identity governance platforms, ServiceNow, HR or access-management processes | Martini synchronizes user attributes and site membership subject to permissions, using stable Tableau IDs and controlled update rules. |
| Groups | Organize users for access and content-permission administration. | Identity governance platforms, ServiceNow, audit repositories | Martini maps group membership and permissions, validates changes, and applies idempotent updates when authorized. |
| Projects | Organize Tableau workbooks, data sources, flows, and related content. | Governance databases, deployment pipelines, service-management tools | Martini inventories projects, resolves IDs rather than relying only on names, and uses project context during publication or governance workflows. |
| Workbooks | Contain published views, dashboards, data connections, and workbook metadata. | CI/CD systems, governance platforms, notification tools, file storage | Martini validates workbook files and target projects, publishes or downloads content, polls asynchronous jobs, and records resulting identifiers. |
| Views | Represent individual visualizations or dashboards that can be queried or exported. | File repositories, reporting workflows, Slack, Microsoft Teams | Martini requests permitted export formats, transforms or routes the result, and enforces view-level authorization and duplicate handling. |
Authentication and security considerations
Authentication methods
Tableau supports personal access tokens, REST sign-in sessions, OAuth connected applications, and JWT-based connected-app patterns where configured. The appropriate method depends on Tableau Cloud or Server configuration and administrator approval.
Credential protection
Store PAT secrets, OAuth client credentials, private keys, session configuration, and site information in Martini secure environment configuration rather than workflow source, request payloads, or logs.
Authorization scope
- Confirm the integration identity can access the target site, project, workbook, view, or data source.
- Apply least-privilege access for publishing, downloading, refreshing, metadata queries, and permission changes.
- Account for site membership, project inheritance, workbook permissions, view permissions, and data-source permissions.
Operational considerations for Tableau integrations
API behavior and scale
- Handle pagination for users, workbooks, views, data sources, and other list responses.
- Pin or test the REST API version against the target Tableau Cloud or Server deployment.
- Use bounded polling and exponential backoff for asynchronous jobs and transient failures.
- Avoid aggressive webhook-triggered retrieval and large inventory scans during peak usage.
Idempotency and files
- Use event IDs, object IDs, job IDs, or deterministic composite keys to suppress duplicate processing.
- Define whether publishing replaces content, fails on conflict, or creates a new version.
- Handle large workbook and data-source files with suitable temporary storage, request limits, and timeouts.
Schema and testing
GraphQL metadata schemas, REST capabilities, permissions, and available webhook events can vary by deployment and release. Test representative sites, content permissions, export formats, job outcomes, optional metadata fields, and failure paths before production rollout.
Why use Martini instead of scripts or point-to-point integrations?
Reusable orchestration
Martini coordinates authentication, Tableau API calls, webhook reception, job polling, file handling, downstream notifications, and persistence in maintainable workflows rather than isolated scripts.
Controlled transformation
Mappings and business rules can normalize Tableau sites, users, projects, workbooks, views, data sources, jobs, and metadata relationships for governance or operational systems.
Operational reliability
- Centralize secure configuration and environment-specific credentials.
- Apply validation, idempotency, retries, timeouts, and explicit error routing.
- Expose controlled APIs for deployment or refresh requests and monitor workflow outcomes.
- Reuse integration assets when Tableau content workflows or downstream systems change.
Frequently asked questions
Tableau can be integrated through its REST APIs for authentication, site and content administration, publishing, downloads, permissions, refreshes, and jobs. Its GraphQL Metadata API supports catalog and lineage queries, while selected events can be delivered through webhooks. Workbook, data-source, and view export endpoints support file and reporting workflows.
Yes. Martini can integrate with Tableau by consuming its REST and GraphQL Metadata APIs, receiving supported webhook callbacks, handling workbook or data-source files, and orchestrating asynchronous publishing and refresh jobs. No native Martini Tableau connector is documented in the supplied materials.
No dedicated Tableau connector is required. Martini can use Tableau’s native REST APIs, GraphQL Metadata API, selected webhook callbacks, file endpoints, job-status endpoints, and supported authentication methods through workflows and APIs.
Lonti does not charge an additional per-connector or per-vendor fee to integrate Tableau. Integrations are subject to the provisioned capacity of the Martini environment. Separate costs may apply from Tableau, infrastructure, or other third-party systems based on subscription, usage, and deployment model.
Use the REST API for authentication, sites, users, groups, projects, workbooks, views, data sources, permissions, publishing, downloads, refreshes, and jobs. Use the GraphQL Metadata API for supported catalog, lineage, and relationship queries; it is not a general administrative mutation API.
Tableau supports webhooks for selected content and administrative events, but coverage is partial and event-specific. Martini can receive those callbacks through an exposed API, validate and deduplicate them, then retrieve authoritative current state through Tableau REST. Scheduled polling is appropriate for unsupported event types.
Martini can run scheduled or event-driven workflows, page through Tableau list responses, persist stable object IDs and checkpoints, and poll asynchronous job identifiers until completion. For large inventories, bounded requests, incremental comparisons, and backoff reduce operational load.
Martini maps Tableau objects and metadata into canonical models, applies validation and business rules, and routes results to databases or enterprise applications. Workflows can use deterministic event or job keys for idempotency, bounded retries with backoff for transient failures, and separate handling for authorization errors, timeouts, cancellations, and permanent failures.
Related Martini documentation
Workflows
Data
Integrate Tableau with Martini
Use Martini to connect Tableau Cloud or Tableau Server with enterprise applications, data platforms, governance systems, and operational workflows through secure APIs, webhooks, mappings, and reliable orchestration.