Skip to content

iPaaS

Hightouch
API integration

Ship iPaaS features without building the integration. Full Hightouch API access via Proxy and 60+ MCP-ready tools for AI agents — extend models and mappings to fit your product.

Talk to us
Hightouch

Use Cases

Why integrate with Hightouch

Common scenarios for SaaS companies building Hightouch integrations for their customers.

01

Offer Bring-Your-Own-Warehouse activation to enterprise clients

Let your enterprise customers power your SaaS with data from their own Snowflake, BigQuery, or Databricks via their Hightouch workspace — no CSV uploads or custom pipelines. Truto handles auth and provisioning so you can ship warehouse-native onboarding in days.

02

Enable just-in-time audience freshness for ad and campaign tools

If you run an AdTech, personalization, or campaign platform, you can trigger your users' Hightouch syncs on demand right before a bidding window or send, instead of waiting for batch schedules. This guarantees audiences are fresh when it matters most.

03

Power event-driven transactional messaging from the warehouse

Loyalty, lifecycle, and transactional messaging SaaS products can fire a Hightouch campaign the moment a user crosses a threshold in your app, pulling the latest warehouse state into a personalized send. Truto exposes the campaign trigger without you managing Hightouch API quirks.

04

Standardize activation across hundreds of end-user accounts

Use Hightouch sync templates to roll out a single, governed activation pattern across every one of your customers' workspaces. You maintain the blueprint; each customer gets syncs provisioned automatically against their own models and destinations.

05

Add governed deployment workflows for enterprise buyers

Enterprise customers require change management before new data mappings go live. By exposing Hightouch sync drafts and approval flows inside your product, you satisfy compliance requirements without building a review system from scratch.

What You Can Build

Ship these features with Truto + Hightouch

Concrete product features your team can ship faster by leveraging Truto’s Hightouch integration instead of building from scratch.

01

One-click Hightouch workspace connector

Let end users connect their Hightouch workspace through a Truto-managed auth flow and immediately start provisioning sources, models, and syncs from inside your product.

02

Programmatic destination and sync provisioning

Create Hightouch destinations, models, and syncs on behalf of your users so their warehouse data starts flowing into your platform automatically after onboarding.

03

On-demand sync triggers with run status polling

Expose a 'Refresh now' action that triggers a Hightouch sync and surfaces live run status from the sync runs endpoint, so users see exactly when their data is up to date.

04

Sync template management for multi-tenant rollouts

Define a master sync template once and deploy standardized configurations across every connected customer workspace, with updates propagated through the templates API.

05

In-app approval UI for Hightouch sync drafts

Surface pending sync drafts in your product and let authorized reviewers approve or reject them, giving enterprise customers an auditable change-control workflow.

06

Identity resolution and match booster triggers

Fire Hightouch IDR runs or Match Booster enrichment jobs from your app before pushing audiences downstream, improving dedupe quality and ad match rates for your customers.

07

Agentic campaign and message orchestration

Clone, update, and trigger Hightouch Decision Engine messages and campaigns programmatically to power real-time, warehouse-personalized sends from inside your product.

SuperAI

Hightouch AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

hightouch_campaigns_trigger

Trigger an API campaign send in Hightouch: start an API-triggered campaign to the given recipients. Returns: handle, id, status, sendId, reason, missingVariables. Required: campaign_id, recipients.

get_single_hightouch_sends_batch_get_by_id

Get the delivery status of up to 100 Hightouch campaign sends in one request, using the sendId values from the campaign trigger endpoint. Returns: sendId, status, reason. Max 100 sends per request. Required: id, sendIds.

create_a_hightouch_signup

Capture a signup in Hightouch: record consent for a delivery handle plus the fields the form collected. Returns: status, message, code, syncId, finishedAt, syncRunId. Required: channel, handle. Consent may settle immediately or await double opt-in confirmation depending on the channel's configuration.

create_a_hightouch_model_size

Start a background job in Hightouch to compute the size of an audience (model). Returns: jobId. Required: model_id.

get_single_hightouch_model_size_by_id

Get the state of an audience size job in Hightouch. Returns: jobId, status, size, evaluatedAt, error. Required: id, model_id.

get_single_hightouch_decision_engine_flow_by_id

Get a single Hightouch decision engine flow by its UUID. Returns: id, name, workspaceId, decisionEngineId, audienceId, status. Required: id.

list_all_hightouch_decision_engine_flows

List decision engine flows in the Hightouch workspace. Returns each flow's id, name, workspaceId, decisionEngineId, audienceId, and status. Optional: name (filter by flow name), orderBy (id or name).

get_single_hightouch_message_by_id

Get a single Hightouch decision engine message by id within a flow. Returns: id, name, channelId, config, tags, guardrails, variables, createdAt, updatedAt, identifier, value. Required: id, flow_id.

update_a_hightouch_message_by_id

Update a decision engine message in a Hightouch flow. Returns the updated message: id, name, channelId, config, tags, guardrails, variables, createdAt, updatedAt. Required: id, flow_id.

delete_a_hightouch_message_by_id

Delete a decision engine message in a Hightouch flow: it is soft-deleted and disabled, so it is no longer returned by the API and is ineligible for future sends. Returns an empty 204 response on success. Required: id, flow_id.

hightouch_messages_clone

Clone a decision engine message within a Hightouch flow: the copy keeps the source message's config, tags, guardrails, and variables and is created disabled. Returns the new message: id, name, channelId, config, createdAt. Required: flow_id, message_id.

list_all_hightouch_messages

List decision engine messages for a Hightouch flow. Returns each message with id, name, channelId, config, guardrails, variables, createdAt. Required: flow_id.

create_a_hightouch_message

Create a message in a Hightouch decision engine flow. Returns the created message with its id, name, channelId, config, guardrails, variables, and createdAt. Required: flow_id, name, channelId, config.

create_a_hightouch_run

Trigger a decision engine run for a specific decision engine flow in Hightouch. Returns: flowsEnqueued. Required: flow_id.

list_all_hightouch_runs

List Identity Resolution (IDR) runs for a given graph in Hightouch. Returns: fullRerun, stats, finishedAt, startedAt, createdAt, error, status, graphId, id. Required: graph_id.

get_single_hightouch_destination_by_id

Get a Hightouch destination by id. Returns the destination object including id, name, slug, type, workspaceId, syncs, and configuration. Required: id.

update_a_hightouch_destination_by_id

Update an existing Hightouch destination by id. Returns the updated destination object including id, name, slug, type, and configuration. Required: id.

list_all_hightouch_destinations

List Hightouch destinations in the current workspace. Returns destinations with id, name, slug, type, workspaceId, syncs, and configuration.

create_a_hightouch_destination

Create a new Hightouch destination. Returns the created destination object including id, name, slug, type, and configuration. Required: name, slug, type, configuration.

get_single_hightouch_events_contract_by_id

Get an event contract in Hightouch by id. Returns the full contract including id, name, slug, workspaceId, events (with their schema and ALLOW/BLOCK handling), eventSources, onUndeclaredSchema, createdAt, and updatedAt. Required: id.

update_a_hightouch_events_contract_by_id

Update an existing event contract in Hightouch by patching its event definitions. Returns the updated contract including id, name, workspaceId, events, onUndeclaredSchema, eventSources, createdAt, and updatedAt. Required: id.

list_all_hightouch_events_contracts

List all event contracts in your Hightouch workspace. Returns: id, name, slug, description, onUndeclaredSchema, events, workspaceId, createdAt, updatedAt, eventSources. Filter by name; order by id, name, createdAt, or updatedAt.

create_a_hightouch_events_contract

Create a new event contract in Hightouch with a name and event definitions. Returns the created contract including id, name, workspaceId, events, onUndeclaredSchema, eventSources, createdAt, and updatedAt. Required: name.

get_single_hightouch_events_domain_by_id

Get an event domain in Hightouch by its id, including its events and components. Returns: id, name, slug, description, onUndeclaredSchema, events, components, workspaceId, createdAt, updatedAt, identifier, value. Required: id.

update_a_hightouch_events_domain_by_id

Update an existing event domain in Hightouch by id, replacing its events and components. Returns the updated domain with id, name, slug, onUndeclaredSchema, events, components, createdAt, and updatedAt. Required: id.

list_all_hightouch_events_domains

List all event domains in the current Hightouch workspace, optionally filtered by name or by event source slug (which also limits components to those applicable to the source). Returns: id, name, slug, description, onUndeclaredSchema, schemaVersionPath, events, components, workspaceId, createdAt, updatedAt, eventSources, identifier, value.

create_a_hightouch_events_domain

Create a new event domain in Hightouch, with its events and components. Returns the created domain with id, name, slug, onUndeclaredSchema, events, components, createdAt, and updatedAt. Required: name.

hightouch_idrs_trigger

Trigger a new Identity Resolution (IDR) run for a graph in Hightouch. Returns: id. Required: graph_id.

create_a_hightouch_queue_for_reprocessing

Queue identifier values for reprocessing in Hightouch. Triggers an async job that reprocesses clusters containing the given identifiers and adds them to the blocklist by default. Returns: requestId. Required: graph_id, identifiers.

get_single_hightouch_reprocess_status_by_id

Get the status of an Identity Resolution reprocessing job in Hightouch. Returns: status, queuedAt, reprocessedAt, reprocessedRunId, recordFound, error. Required: id, graph_id.

hightouch_id_graphs_trigger

Trigger a run for an Identity Resolution graph in Hightouch. Returns: id. Optionally pass fullRerun (boolean) to rerun the entire graph. Deprecated: use the /idr/{graph_id}/trigger endpoint instead. Required: graph_id.

create_a_hightouch_match_booster_trigger

Trigger a Match Booster enrichment run for a model in Hightouch. Returns: id, status, createdAt. The model must have Match Booster enabled. Required: model_id.

list_all_hightouch_match_booster_runs

List Match Booster enrichment runs for a Hightouch model, most recent first. Required: model_id.

get_single_hightouch_source_by_id

Get a Hightouch source by id. Returns: id, name, slug, workspaceId, createdAt, updatedAt, configuration, type. Required: id.

update_a_hightouch_source_by_id

Update an existing source in Hightouch by patching it based on its Hightouch id. Only the supplied fields change. Returns the updated source object including id, name, slug, type, workspaceId, createdAt, updatedAt, and connection configuration. Required: id.

list_all_hightouch_sources

List all Hightouch sources in the current workspace. Returns: id, name, slug, workspaceId, createdAt, updatedAt, configuration, type.

create_a_hightouch_source

Create a new source in Hightouch. Returns the created source object including id, name, slug, type, workspaceId, createdAt, updatedAt, and connection configuration. Required: name, slug, type, configuration.

get_single_hightouch_model_by_id

Get a single Hightouch model by its numeric id. Returns: id, name, slug, description, workspaceId, primaryKey, createdAt, updatedAt, createdBy, updatedBy, sourceId, queryType, tags, isSchema, isGeneralModel, syncs, visual, custom, table, dbt, dbt_cloud, raw, folderId, lastRunSize, spaceId, rowLevelAccessRuleIds. Required: id.

update_a_hightouch_model_by_id

Update an existing Hightouch model by patching it with the model's Hightouch id. Returns the full model record: id, name, slug, description, queryType, sourceId, raw SQL, tags, syncs, and audit fields. Required: id.

delete_a_hightouch_model_by_id

Delete a Hightouch model by id. Syncs using the model and every audience built on it are deleted too. Deletion is blocked while the model is still referenced by a journey, priority list, decision engine agent, dynamic content condition, saved chart, or identity resolution graph. Returns an empty 204 response on success. Required: id.

list_all_hightouch_models

List all Hightouch models in the current workspace, including parent and related models. Returns: id, name, slug, description, workspaceId, primaryKey, createdAt, updatedAt, createdBy, updatedBy, sourceId, queryType, tags, isSchema, isGeneralModel, syncs, visual, custom, table, dbt, raw, lastRunSize, and 4 more. Default limit of 100 per page.

create_a_hightouch_model

Create a new Hightouch model in the current workspace. Returns the created model record: id, name, slug, description, queryType, sourceId, tags, syncs, and audit fields. Required: name, slug, queryType, sourceId, isSchema.

get_single_hightouch_sync_template_by_id

Get a Hightouch sync template by its numeric id. Returns the full template record including id, name, description, modelId, destinationId, configuration, schedule, schedulePaused, tags, and overrideConfig. Required: id.

update_a_hightouch_sync_template_by_id

Update an existing Hightouch sync template by id. Syncs created from the template pick up a new configuration on their next run, and a new overrideConfig replaces the previous one. Returns: id, name, description, modelId, destinationId, configuration, schedulePaused, and 6 more. The destinationId cannot be changed after creation. Required: id.

list_all_hightouch_sync_templates

List all Hightouch sync templates in the current workspace. Returns each template's id, name, description, modelId, destinationId, configuration, schedule, schedulePaused, tags, and overrideConfig.

create_a_hightouch_sync_template

Create a Hightouch sync template holding a destination configuration that syncs created from it share; overrideConfig names the configuration fields those syncs may set for themselves. Returns: id, name, modelId, destinationId, configuration, schedulePaused, overrideConfig, and 6 more. Required: name, modelId, destinationId, configuration.

list_all_hightouch_syncs_drafts

List sync drafts across every sync in the Hightouch workspace, oldest change first. Returns: id, syncId, operation, status, requestedBy, requestedApprovers, requestComment, createdAt, updatedAt, reviewedBy, and 2 more. Max 100 per page; poll with status=pending and read every page since the list shows current state, not a feed of changes.

get_single_hightouch_sync_by_id

Get a Hightouch sync by id. Returns the sync including id, slug, status, destinationId, modelId, configuration, and schedule. Required: id.

update_a_hightouch_sync_by_id

Update a Hightouch sync by id. Returns the updated sync including id, slug, configuration, schedule, status, and disabled. Required: id. A sync bound to a sync template takes its configuration from the template — change values with syncTemplateOverrides or rebind/detach with syncTemplateId instead of setting configuration.

delete_a_hightouch_sync_by_id

Delete a Hightouch sync by id. Returns an empty 204 response on success. Required: id.

list_all_hightouch_syncs

List all syncs in the current Hightouch workspace. Returns syncs including id, slug, status, destinationId, modelId, configuration, and schedule.

create_a_hightouch_sync

Create a Hightouch sync that either owns its configuration (destinationId plus configuration) or is created from a sync template (syncTemplateId). Returns the created sync including id, slug, destinationId, modelId, configuration, schedule, and status. Required: slug, modelId, schedule, disabled.

hightouch_syncs_trigger

Trigger a new run for a Hightouch sync. Returns the triggered run's sync_id, syncRunId, status, and finishedAt. If a run is already in progress, the new run is queued and executes immediately after the current run completes. Required: sync_id.

list_all_hightouch_sync_runs

List sync runs under a Hightouch sync. Returns each run's id, status, startedAt, finishedAt, completionRatio, plannedRows, successfulRows, failedRows, and error. Required: sync_id.

create_a_hightouch_syncs_trigger

Trigger a new run for a Hightouch sync by sync id or slug. Returns the triggered run's id. Supplying either syncId or syncSlug in the request body is expected; if a run is already in progress, the new run is queued until the current one completes.

list_all_hightouch_sync_drafts

List Hightouch sync drafts for one sync, oldest change first; filters to pending drafts by default. Returns: id, syncId, operation, status, requestedBy, requestedApprovers, requestComment, createdAt, updatedAt, reviewedBy, reviewedAt, reviewMetadata, current, proposed, changedFields, draftVersion, resourceVersion, relatedDrafts. Required: sync_id.

get_single_hightouch_sync_draft_by_id

Get a Hightouch sync draft by id, showing the sync as it stands and as approval would leave it. Returns: id, syncId, operation, status, requestedBy, requestedApprovers, requestComment, createdAt, updatedAt, reviewedBy, reviewedAt, reviewMetadata, current, proposed, changedFields, draftVersion, resourceVersion, relatedDrafts. Required: id, sync_id.

hightouch_sync_drafts_approve

Approve a Hightouch sync draft and apply its change. Returns: id, syncId, operation, status, requestedBy, requestedApprovers, requestComment, createdAt, updatedAt, reviewedBy, reviewedAt, and 1 more. Applies nothing when the draft or sync changed after the versions sent. Required: sync_id, draft_id, expectedDraftVersion, expectedResourceVersion.

hightouch_sync_drafts_reject

Reject a Hightouch sync draft, closing it without applying its change. Returns: id, syncId, operation, status, requestedBy, requestedApprovers, requestComment, createdAt, updatedAt, reviewedBy, reviewedAt, reviewMetadata. Required: sync_id, draft_id.

hightouch_sync_sequences_trigger

Trigger a new run for a Hightouch sync sequence. Returns: id. A sequence never runs concurrently with itself: if a run is already in progress, a single follow-up run is queued when run queueing is enabled for the workspace, otherwise the in-progress run's id is returned. Required: sync_sequence_id.

get_single_hightouch_sync_sequences_run_by_id

Get the status of a sync sequence run in Hightouch. Returns: id, status, syncRuns. Required: id.

Why Truto

Why use Truto’s MCP server for Hightouch

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 1000+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

How It Works

From zero to integrated

Start with Hightouch in a free sandbox, usually ready within one business day. No boilerplate, no maintenance burden.

01

Link your customer’s Hightouch account

Use Truto’s frontend SDK to connect your customer’s Hightouch account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call Hightouch

Truto’s Proxy API is a 1-to-1 mapping of the Hightouch API. You call us, we call Hightouch, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Hightouch’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Hightouch on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

How do end users authenticate their Hightouch workspace?

Truto manages the Hightouch API key auth flow on your behalf. Your users complete a connection flow once, and Truto stores and rotates credentials so your backend only works with a standardized Truto connection ID.

Can we create and trigger syncs programmatically, or only read them?

Both. The integration exposes full CRUD on sources, models, destinations, syncs, and sync templates, plus trigger endpoints for syncs, sync sequences, campaigns, IDR, ID graphs, and Match Booster runs.

How fresh is the data we can activate for our users?

Freshness depends on the Hightouch sync schedule, but you can bypass batch cadence by calling the sync trigger endpoint on demand and polling sync runs to confirm completion before acting on the data.

Does the integration support Hightouch's draft and approval workflow?

Yes. You can list sync drafts, fetch a specific draft, and approve or reject them via the API, which lets you build in-app change-management UIs for customers with governance requirements.

Can we support customers who use Hightouch's Decision Engine and Customer Studio?

Yes. The integration covers Decision Engine flows, messages (including clone), campaign triggers, and model size calculations, so you can orchestrate agentic marketing actions from your product.

What happens when Hightouch adds new endpoints or changes its API?

Truto maintains the underlying API client, including pagination, rate limit handling, and schema changes. New endpoints can be added on request, and existing tool contracts stay stable for your integration code.

Can we manage event tracking configuration like contracts and domains?

Yes. The integration includes full CRUD for Hightouch events contracts and events domains, so you can let users define and update their event schemas and tracking domains from inside your product.

Hightouch

Get Hightouch integrated into your app

Our team understands what it takes to make a Hightouch integration successful. A short, crisp 30 minute call with folks who understand the problem.