---
title: Hightouch API Integration on Truto
slug: hightouch
category: iPaaS
canonical: "https://truto.one/integrations/detail/hightouch/"
---

# Hightouch API Integration on Truto



**Category:** iPaaS  
**Status:** Generally available

## MCP-ready AI tools

Truto exposes 61 tools for Hightouch that AI agents can call directly.

- **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.

## How it works

1. **Link your customer's Hightouch account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Hightouch.** The Proxy API is a 1-to-1 mapping of the Hightouch API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **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.
- **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.
- **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.
- **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.
- **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

- **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.
- **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.
- **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.
- **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.
- **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.
- **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.
- **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.

## FAQs

### 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.

## Related reading

- [Connect Hightouch to Claude: Control ID Resolution & Decision Logic](https://truto.one/blog/connect-hightouch-to-claude-control-id-resolution-decision-logic/) — Learn how to connect Hightouch to Claude using a managed MCP server. This guide covers triggering IDR runs, managing sync drafts, and handling decision engine flows.
- [Connect Hightouch to ChatGPT: Sync Data, Models & Marketing Sends](https://truto.one/blog/connect-hightouch-to-chatgpt-sync-data-models-marketing-sends/) — Learn how to connect Hightouch to ChatGPT using a managed MCP server. Execute marketing campaigns, trigger data syncs, and manage audience models via AI.
- [Connect Hightouch to AI Agents: Manage Events, Syncs & Destinations](https://truto.one/blog/connect-hightouch-to-ai-agents-manage-events-syncs-destinations/) — Learn how to safely connect Hightouch to AI agents using Truto's tools API. Bind tools to LangChain, manage syncs, and handle API rate limits.
