Ellipse Gradient for Header

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 pointSupported by Tableau?Common use casesHow Martini supports it
REST APIsYesAuthenticate 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 APIsYesQuery 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.
WebhooksLimitedReceive 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 jobsLimitedTrack 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 exchangeLimitedPublish 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 exportsLimitedRetrieve 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.
AuthenticationYesUse 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 accessLimitedQuery 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

Load the Tableau site and credential configuration
Authenticate and obtain the Tableau session context
Call the required site, content, or administration endpoint
Map the response into the target data model
Apply permission and business rules
Persist identifiers, status, and synchronization checkpoints

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

Authenticate to the Tableau Metadata API
Submit the scoped GraphQL metadata query
Page through returned relationships where required
Normalize workbooks, views, data sources, and lineage links
Apply governance or impact-analysis rules
Write the inventory and record the synchronization checkpoint

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

Receive the Tableau webhook callback
Validate the request and identify the event
Check the event key or object identifier for duplicates
Retrieve the current Tableau resource through REST
Map the result to the downstream event model
Record processing status and route failures for retry

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

Submit the Tableau publishing or refresh operation
Persist the returned Tableau job identifier
Wait for the configured polling interval
Retrieve the current job status
Route success, failure, cancellation, or timeout
Notify operators and store the final outcome

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

Validate the Tableau object, format, and permission context
Receive or prepare the workbook or data-source file
Invoke the Tableau publish, download, or export endpoint
Handle asynchronous completion when returned
Validate file metadata and content handling requirements
Deliver the file or export to the target system

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
CI/CD system
Martini
Tableau
Example Mapping
Tableau FieldCanonical FieldTarget Field
workbookNamecontent.nameTableau workbook name
projectIddestination.projectIdTableau project ID
workbookFilecontent.packageWorkbook upload
deploymentEnvironmenttableau.siteTableau 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
Snowflake
Martini
Tableau
Example Mapping
Tableau FieldCanonical FieldTarget Field
loadStatussource.load.completedRefresh trigger
dataSourceIdtableau.content.idTableau data source ID
jobIdoperation.correlationIdTableau job ID
statusrefresh.statusTableau 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
Tableau
Martini
Governance database
Example Mapping
Tableau FieldCanonical FieldTarget Field
siteLuidtableau.site.idGovernance site ID
workbookLuidcontent.workbook.idGovernance workbook ID
ownercontent.ownerGovernance owner
lineagemetadata.relationshipsGovernance 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
Tableau
Martini
ServiceNow
Example Mapping
Tableau FieldCanonical FieldTarget Field
eventTypeevent.typeServiceNow issue category
objectIdtableau.object.idCorrelation reference
eventTimestampevent.occurredAtReported time
currentStatusoperation.statusIssue 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

ObjectTypical UseCommon target systemsMartini handling
SitesRepresent Tableau environments containing users, projects, workbooks, views, and data sources.Governance databases, identity processes, service management platformsMartini retrieves site identifiers and configuration through REST, preserves site context, and maps site-scoped content into canonical governance models.
UsersRepresent Tableau identities, site membership, roles, and permissions.Identity governance platforms, ServiceNow, HR or access-management processesMartini synchronizes user attributes and site membership subject to permissions, using stable Tableau IDs and controlled update rules.
GroupsOrganize users for access and content-permission administration.Identity governance platforms, ServiceNow, audit repositoriesMartini maps group membership and permissions, validates changes, and applies idempotent updates when authorized.
ProjectsOrganize Tableau workbooks, data sources, flows, and related content.Governance databases, deployment pipelines, service-management toolsMartini inventories projects, resolves IDs rather than relying only on names, and uses project context during publication or governance workflows.
WorkbooksContain published views, dashboards, data connections, and workbook metadata.CI/CD systems, governance platforms, notification tools, file storageMartini validates workbook files and target projects, publishes or downloads content, polls asynchronous jobs, and records resulting identifiers.
ViewsRepresent individual visualizations or dashboards that can be queried or exported.File repositories, reporting workflows, Slack, Microsoft TeamsMartini 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

How can Tableau be integrated with enterprise systems?

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.

Can Martini integrate with Tableau?

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.

Do I need a connector to integrate Tableau with Martini?

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.

Is there any extra Lonti cost to integrate Tableau with Martini?

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.

Which Tableau APIs should an integration use?

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.

Are Tableau webhooks available for integration events?

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.

How does synchronization with Tableau handle refreshes and large inventories?

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.

How does Martini handle Tableau mapping, errors, and duplicate operations?

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.