Skip to content

iPaaS · Beta

n8n
API integration

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

Built for specific customer use cases. Issues are resolved quickly.

Talk to us
n8n

Use Cases

Why integrate with n8n

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

01

Ship one-click automation templates to customers

Let your users enable pre-built automations in their own n8n instance without leaving your product. Your SaaS deploys and activates workflows into the customer's n8n account on demand, removing the need for them to build complex automations by hand.

02

Embed workflow observability in your dashboard

Surface execution logs, failures, and runtime metrics from your customer's n8n instance directly inside your product UI. Perfect for monitoring, security, or ops tools that need visibility into how automations touching their systems are performing.

03

Automate credential and API key lifecycle

When your SaaS rotates API keys or updates OAuth tokens, programmatically update the corresponding credentials inside the customer's n8n instance so their workflows never break. Ideal for identity, security, and infrastructure platforms.

04

Sync runtime state into n8n Data Tables

Push mapping tables, configuration state, or knowledge base content into n8n Data Tables that your customer's workflows and AI agents read from at runtime. Keeps customer-side automations in sync with your product's source of truth.

05

Enable workflow CI/CD and environment promotion

Let platform teams promote workflows from staging to production projects programmatically, and enforce source control push/pull from your own DevOps or governance tool.

What You Can Build

Ship these features with Truto + n8n

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

01

Template-based workflow provisioning

Deploy, activate, deactivate, archive, or update n8n workflows in a customer's instance from inside your product using a single click.

02

Execution monitoring dashboard

List, inspect, retry, and stop n8n executions to give your users a native view of automation health and historical runs.

03

Managed credential injection

Create, test, update, and rotate n8n credentials on behalf of the customer so your API keys stay valid across every workflow that depends on them.

04

Data Table–backed state sync

Create n8n Data Tables and bulk upsert, update, or delete rows so workflows and AI agents consume up-to-date data from your platform.

05

Project and user governance

Provision n8n projects, folders, project users, roles, and role-mapping rules to mirror your customer's org structure and access policies.

06

Environment promotion and source control hooks

Trigger project promotes, connection promotes, and source control push/pull to orchestrate workflow CI/CD from your own release tooling.

SuperAI

n8n AI agent tools

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

create_a_n_8_n_rows_upsert

Upsert a row in an n8n data table: update the row matching the filter conditions, or insert a new one if none matches. Returns: id, createdAt, updatedAt (array of upserted rows when returnData is true, boolean true otherwise). Requires data_table_id, filter, and data. Required: data_table_id, filter, data.

n_8_n_rows_updates_bulk_update

Update rows matching filter conditions in an n8n data table. Returns: id, createdAt, updatedAt, dryRunState. Required: data_table_id, filter, data.

n_8_n_rows_clears_bulk_delete

Permanently delete all rows from an n8n data table. Returns: deletedCount. The table structure is retained; this action cannot be undone. Required: data_table_id.

n_8_n_rows_deletes_bulk_delete

Delete rows matching filter conditions from an n8n data table. Returns the deleted rows (id, createdAt, updatedAt) when returnData is true, a dry-run preview with dryRunState when dryRun is true, or true on success otherwise. Required: data_table_id, filter.

n_8_n_configs_applies_bulk_update

Create or replace the Apply configuration for a promotion connection in n8n. Returns: id, name, createdAt, updatedAt, checkout, settings. Omitting name resets it to 'Apply'. Required: promotion_connection_id, settings.

n_8_n_configs_promotes_bulk_update

Create or replace the Promote configuration for an n8n promotion connection. Returns: id, name, createdAt, updatedAt, checkout, settings. Replaces the whole configuration, so an omitted name resets it to 'Promote'. Required: promotion_connection_id, settings.

create_a_n_8_n_disconnect

Remove one direction's local checkout for an n8n promotion connection. Returns: connectionId, configId, direction, branchName, hasCheckout. Keeps the configuration, credentials, and trusted SSH host keys. Required: promotion_connection_id, direction.

create_a_n_8_n_connection_apply

Apply a promotion package to the n8n instance from the configured branch tip. Returns: status, configId, git, counts, warnings. The connection must have a cloned Apply direction; status source-changed means the branch moved since review and nothing was imported. Required: promotion_connection_id.

create_a_n_8_n_apply_continue

Continue an Apply after binding setup for a promotion connection. Returns: status, configId, branchName, commitSha, counts, warnings. Inspect status before reading counts. Required: promotion_connection_id, expectedSource.

update_a_n_8_n_apply_continue_by_id

Continue applying a selection of project workflows after binding setup. Returns: status, configId, branchName, commitSha, counts, warnings. Inspect status before reading counts. Required: project_id, workflowIds, expectedSource.

create_a_n_8_n_project_promote

Promote a selection of an n8n project's workflows to the project's Promote branch, exporting their current live or archived state. Returns the promotion result: connectionId, configId, counts, git. The Promote direction must be cloned first. Required: project_id, workflowIds.

create_a_n_8_n_project_apply

Apply selected workflow changes from an n8n project's Apply branch, importing the selected change-list IDs and removing project-owned workflows absent from the branch. Returns the result status (`applied`, `blocked`, or `source-changed`), configId, and git details to retain for Continue. Duplicate or invalid…. Required: project_id, workflowIds.

list_all_n_8_n_workflows

List all workflows in your n8n instance. Returns each workflow's id, name, active, activeVersionId, createdAt, updatedAt, nodes, connections, settings, and tags.

create_a_n_8_n_workflow

Create a workflow in your n8n instance. Returns the created workflow including id, name, description, activeVersionId, createdAt, nodes, connections, and settings. Requires name, nodes, connections, and settings. Required: name, nodes, connections, settings.

get_single_n_8_n_workflow_by_id

Get a single n8n workflow by id. Returns: id, name, description, active, activeVersionId, createdAt, updatedAt, isArchived, versionId, versionCounter, sourceWorkflowId, triggerCount, nodes, connections, nodeGroups, settings, staticData, pinData, meta, tags, shared, activeVersion. Required: id.

update_a_n_8_n_workflow_by_id

Update an n8n workflow by id. Returns: id, name, description, active, activeVersionId, createdAt, updatedAt, isArchived, versionId, and 12 more. Requires id, name, nodes, connections, and settings. Published workflows are automatically re-published unless the update is saved as a draft. Required: id, name, nodes, connections, settings.

delete_a_n_8_n_workflow_by_id

Delete an n8n workflow by id. Returns the deleted workflow's id, name, description, activeVersionId, createdAt, nodes, connections, and settings. Required: id.

n_8_n_workflows_archive

Archive a workflow in n8n (soft delete). Returns the current workflow object: id, name, active, isArchived, createdAt. Idempotent: archiving an already archived workflow succeeds and returns the current workflow. Required: workflow_id.

n_8_n_workflows_publish

Publish an n8n workflow by id, making its latest or a specified version live. Returns: id, name, description, active, activeVersionId, createdAt, updatedAt, isArchived, versionId, versionCounter, sourceWorkflowId, triggerCount, nodes, connections, nodeGroups, settings, staticData, pinData, meta, tags, activeVersion. Required: workflow_id.

n_8_n_workflows_unpublish

Unpublish a workflow in n8n. Returns the workflow object: id, name, active, activeVersionId, updatedAt. In n8n v1 this action was termed deactivating a workflow. Required: workflow_id.

n_8_n_workflows_activate

Publish an n8n workflow by id (deprecated; prefer the publish method). Returns: id, name, description, active, activeVersionId, createdAt, updatedAt, isArchived, versionId, versionCounter, sourceWorkflowId, triggerCount, nodes, connections, nodeGroups, settings, staticData, pinData, meta, tags, activeVersion. Required: workflow_id.

n_8_n_workflows_deactivate

Deactivate a workflow in n8n. Returns the workflow object: id, name, isArchived, versionId, updatedAt. Deprecated: use unpublish instead. Required: workflow_id.

create_a_n_8_n_workflow_unarchive

Unarchive an archived n8n workflow, restoring it for normal use. Returns the restored workflow object including its id, createdAt, and updatedAt. Required: workflow_id.

n_8_n_workflow_transfers_bulk_update

Transfer a workflow to another project in n8n. Returns an empty 204 response on success. Required: workflow_id, destinationProjectId.

get_single_n_8_n_workflow_version_by_id

Retrieve a single workflow version from its version history in n8n. Returns: versionId, workflowId, nodes, connections, nodeGroups, authors, name, description, createdAt, updatedAt. Required: id, workflow_id.

list_all_n_8_n_workflow_history

List the version history of an n8n workflow. Returns: versionId, workflowId, authors, name, description, createdAt, updatedAt. Required: workflow_id.

list_all_n_8_n_workflow_tags

List the tags assigned to a workflow in n8n. Returns tag objects with: id, name, createdAt, updatedAt. Required: workflow_id.

n_8_n_workflow_tags_bulk_update

Replace the tags assigned to a workflow in n8n by sending the full list of tag ids. Returns tag objects with: id, name, createdAt, updatedAt. Required: workflow_id.

list_all_n_8_n_executions

List all executions from your n8n instance. Returns: id, finished, mode, retryOf, retrySuccessId, status, startedAt, stoppedAt, workflowId, waitTill, storedAt, jsonSizeBytes, workflowVersionId, data, workflowData, customData, dataTooLargeToDisplay. Filter by status, workflowId, projectId, or a startedAfter/startedBefore time window.

get_single_n_8_n_execution_by_id

Get a single execution from your n8n instance by id. Returns: id, finished, mode, retryOf, retrySuccessId, status, createdAt, startedAt, stoppedAt, deletedAt, workflowId, waitTill, storedAt, tracingContext, deduplicationKey, jsonSizeBytes, binaryDataSizeBytes, workflowVersionId, usedPrivateCredentials, data, customData, and 2 more. Required: id.

delete_a_n_8_n_execution_by_id

Delete an execution from your n8n instance by id. Returns the deleted execution including id, status, mode, startedAt, stoppedAt, and workflowId. Required: id.

n_8_n_executions_stop

Stop a running execution in n8n by id. Returns the execution's state after stopping: mode, startedAt, stoppedAt, finished, and status. Required: execution_id.

n_8_n_executions_retry

Retry an execution in n8n. The retry runs as a new execution and returns the new execution object. Returns: id, mode, startedAt, workflowId, finished, retryOf, status, waitTill, data, workflowData, customData, annotation, storedAt. Required: execution_id.

n_8_n_executions_bulk_update

Replace the annotation tags of an execution in n8n with a new list. Returns the updated tags, each with id, name, createdAt, and updatedAt. Required: execution_id.

list_all_n_8_n_execution_tags

List the annotation tags assigned to an execution in n8n. Returns each tag's id, name, createdAt, and updatedAt. Required: execution_id.

list_all_n_8_n_data_tables

List all n8n data tables with optional filtering and sorting. Returns: id, name, columns, projectId, createdAt, updatedAt, sizeBytes. Pass filter as a JSON string of conditions and sortBy as field:asc or field:desc (e.g. name:asc).

create_a_n_8_n_data_table

Create a new data table in n8n with the given column definitions. Returns: id, name, columns, projectId, createdAt, updatedAt, sizeBytes. Required: name, columns. Optional projectId places the table in a project instead of the personal one; CSV fill via fileId only works for session-authenticated callers.

get_single_n_8_n_data_table_by_id

Get a single n8n data table by id. Returns: id, name, columns, projectId, createdAt, updatedAt, sizeBytes. Required: id.

update_a_n_8_n_data_table_by_id

Update an n8n data table by id; only its name can be changed. Returns the full table: id, name, columns, projectId, createdAt, updatedAt, sizeBytes. Required: id, name.

delete_a_n_8_n_data_table_by_id

Delete a data table in n8n, permanently removing the table and all rows it contains. Returns an empty 204 response on success. Required: id.

list_all_n_8_n_data_table_columns

List all columns of a data table in n8n. Returns each column's id, name, type, index, createdAt, updatedAt, and dataTableId. Required: data_table_id.

create_a_n_8_n_data_table_column

Add a new column to an n8n data table. Returns the created column including id, name, type, index, createdAt, dataTableId. Requires data_table_id, name, and type; index is optional (appended to the end if omitted). Required: data_table_id, name, type.

update_a_n_8_n_data_table_column_by_id

Update a column in an n8n data table by renaming and/or reordering it. Returns the updated column including id, name, type, index, createdAt, and dataTableId. Requires data_table_id and id; the body must include at least one of name or index (zero-based position). Required: id, data_table_id.

delete_a_n_8_n_data_table_column_by_id

Delete a column from an n8n data table, permanently removing all data stored in that column. Returns an empty 204 response on success. Required: id, data_table_id.

list_all_n_8_n_data_table_rows

List rows of an n8n data table with optional filtering, sorting, and search across string columns. Returns: id, createdAt, updatedAt. Required: data_table_id.

create_a_n_8_n_data_table_row

Insert one or more rows into an n8n data table. Returns success and insertedRows (a count) by default; set returnType to 'id' or 'all' to get inserted row ids or full rows with id, createdAt, and updatedAt instead. Required: data_table_id, data.

list_all_n_8_n_discovers

Discover available n8n API capabilities. Returns: scopes, resources, filters, specUrl. Optionally filter by resource or operation, or set include=schemas to inline request body schemas.

list_all_n_8_n_credentials

List credentials in your n8n instance. Returns each credential's id, name, type, createdAt, updatedAt, and shared entries. Credential data (secrets) is not included.

create_a_n_8_n_credential

Create a credential in n8n for use by nodes of the specified type. Returns the created credential with id, name, type, isResolvable, createdAt, and updatedAt. Required: name, type, data.

get_single_n_8_n_credential_by_id

Get a single n8n credential by id. Returns: id, name, type, isManaged, isGlobal, isResolvable, resolvableAllowFallback, resolverId, createdAt, updatedAt, description. Credential data (secrets) is not included. Required: id.

update_a_n_8_n_credential_by_id

Update an n8n credential by id. Returns the updated credential with id, name, type, isGlobal, isResolvable, createdAt, and updatedAt. If changing type, data must also be provided. Required: id.

delete_a_n_8_n_credential_by_id

Delete an n8n credential by id. Returns the deleted credential with id, name, type, isManaged, usageScope, createdAt, and updatedAt. Required: id.

n_8_n_credential_transfers_bulk_update

Transfer an n8n credential to another project. Returns an empty 204 response on success. Required: credential_id, destinationProjectId.

create_a_n_8_n_credential_test

Test an n8n credential by id using its stored credential data. Returns: status, message. Required: credential_id.

list_all_n_8_n_credentials_schemas

Get the credential data schema for a credential type in n8n. Returns: additionalProperties, type, properties, required, allOf. Required: credential_type_name.

list_all_n_8_n_community_packages

List n8n community packages installed on the instance, including pending update info. Returns: packageName, installedVersion, authorName, authorEmail, installedNodes, createdAt, updatedAt, updateAvailable, failedLoading.

create_a_n_8_n_community_package

Install an n8n community package by npm name. Returns: packageName, installedVersion, authorName, authorEmail, installedNodes, createdAt, updatedAt, updateAvailable, failedLoading. Required: name. When unverified packages are disabled, only n8n-verified versions can be installed.

update_a_n_8_n_community_package_by_id

Update an installed n8n community package to a new version. Returns: packageName, installedVersion, authorName, authorEmail, installedNodes, createdAt, updatedAt, updateAvailable, failedLoading. Required: id.

delete_a_n_8_n_community_package_by_id

Uninstall a community package from n8n by its npm package name. Returns an empty 204 response on success. Required: id.

create_a_n_8_n_audit

Generate a security audit of your n8n instance. Returns Credentials Risk Report, Database Risk Report, Filesystem Risk Report, Nodes Risk Report, and Instance Risk Report, each with its risk and findings sections; an empty array is returned when no risks are found.

create_a_n_8_n_n_8_n_packages_export

Export agents, workflows, and folders, or whole projects, as an n8n package (.n8np). Returns the package as a gzipped tar archive streamed as application/gzip, with per-entity export counts in the X-N8n-Export-Counts header. Beta.

create_a_n_8_n_n_8_n_packages_import

Import an n8n package (a .n8np archive) into a project (Beta — breaking changes may occur). Returns an import result with package, workflows, folders, projects, credentials, dataTables, variables, and tags. Required: package, workflowConflictPolicy. Max upload defaults to 16 MB.

create_a_n_8_n_n_8_n_packages_import_selection

Import a selected subset of workflows from an n8n project package (.n8np), scoped to one source project. Returns: package, workflows, removedWorkflows, removedFolders, folders, projects, bindings, credentials, dataTables, variables, tags. Required: package, selectedProjectId, selectedWorkflowIds. Additive import; beta, breaking changes may occur.

n_8_n_credential_type_policies_scopes_bulk_update

Replace all attached policy documents on a credential type policy scope in n8n. Returns the updated attachments with policyId, rules, priority, and isFloor. Each policyId and (isFloor, priority) pair must be unique; last write wins. Required: scope_id, attachments.

list_all_n_8_n_credential_type_policies_instances

Retrieve the composed instance credential type policy in n8n, including its default action and the rules of every attached policy document in evaluation order. Returns: scopeId, rules, defaultAction, version. An unconfigured instance reports scopeId null, no rules, defaultAction allow, and version 0.

n_8_n_credential_type_policies_instances_bulk_update

Replace the n8n instance credential type policy by setting its default action and replacing the rules list, creating the policy on first write. Returns: scopeId, rules, defaultAction, version, warnings. Required: rules, defaultAction, version. Version must equal the last-read value (409 if stale); rule ids must be unique.

get_single_n_8_n_credential_type_policies_project_by_id

Get a project's credential type policy in n8n. Returns the project's own composed policy, not combined with the instance policy: scopeId, rules, defaultAction, and version. An unconfigured project reports scopeId null, defaultAction allow, and version 0. Required: id.

update_a_n_8_n_credential_type_policies_project_by_id

Replace a project's credential type policy in n8n, creating it on first write. Returns: scopeId, rules, defaultAction, version, warnings. Requires id, rules, defaultAction, and version; version must match the value last read or the write is rejected. The delegate action is not accepted at project scope. Required: id, rules, defaultAction, version.

list_all_n_8_n_credential_type_policies_policies

List reusable credential type policy documents in n8n. Returns: id, kind, rules, version, updatedBy, createdAt, updatedAt.

create_a_n_8_n_credential_type_policies_policy

Create a reusable credential type policy document in n8n, not yet attached to any scope. Returns: policy, warnings. Required: rules. Rule ids must be unique within the list.

get_single_n_8_n_credential_type_policies_policy_by_id

Get a credential type policy document by id in n8n. Returns: id, kind, rules, version, updatedBy, createdAt, updatedAt. Required: id.

update_a_n_8_n_credential_type_policies_policy_by_id

Replace the entire rule list of a credential type policy document in n8n. Returns: policy, warnings. Required: id, rules, version. Version must match the last-read value; delegate rules are rejected for documents attached to a project scope.

delete_a_n_8_n_credential_type_policies_policy_by_id

Delete a credential type policy document in n8n by id. Returns an empty 204 response on success. Required: id. A document still attached to a scope is rejected (409); detach it first.

n_8_n_node_type_policies_scopes_bulk_update

Replace all policy attachments on a node type policy scope in n8n. Returns each attachment's policyId, rules, priority, and isFloor. Each policyId and each (isFloor, priority) pair must be unique; last write wins. Required: scope_id, attachments.

list_all_n_8_n_node_type_policies_instances

Retrieve the n8n instance node type policy. Returns the composed policy: scopeId, rules, defaultAction, and version. An instance never configured reports scopeId null, no rules, defaultAction allow, and version 0.

n_8_n_node_type_policies_instances_bulk_update

Replace the n8n instance node type policy, setting the default action and the rules of its single policy document. Returns: scopeId, rules, defaultAction, version, warnings. Required: rules, defaultAction, version. version must equal the last-read value or the write is rejected with 409; rule ids must be unique.

list_all_n_8_n_node_type_policies_policies

List n8n node type policy documents. Returns reusable policies with: id, kind, rules, version, updatedBy, createdAt, updatedAt.

create_a_n_8_n_node_type_policies_policy

Create a reusable node type policy document in n8n that is not yet attached to any scope. Returns: policy, warnings. Required: rules.

delete_a_n_8_n_node_type_policies_policy_by_id

Delete a node type policy document in n8n by id. Returns an empty 204 response on success. Required: id. A policy document still attached to a scope cannot be deleted — detach it from the scope first.

get_single_n_8_n_node_type_policies_policy_by_id

Retrieve a single n8n node type policy document by id. Returns: id, kind, rules, version, updatedBy, createdAt, updatedAt. Required: id.

update_a_n_8_n_node_type_policies_policy_by_id

Replace the entire rule list of an n8n node type policy document by id. Returns: policy, warnings. Delegate rules are rejected when the document is attached to a project scope. Required: id, rules, version.

list_all_n_8_n_projects

List projects from your n8n instance. Returns: id, name, type, icon, description, customTelemetryTags, creatorId, createdAt, updatedAt.

create_a_n_8_n_project

Create a team project in your n8n instance. Returns the created project including id, name, type, icon, description, creatorId, role, and scopes. Required: name. Supplying an id that already exists returns HTTP 409.

update_a_n_8_n_project_by_id

Update an n8n project on your instance by id. The request body requires name (1–255 characters, e.g. "Marketing"); id and type are read-only server-managed fields. Returns an empty 204 response on success. Required: id, name.

delete_a_n_8_n_project_by_id

Delete an n8n project from your instance by id. Returns an empty 204 response on success. Required: id.

list_all_n_8_n_project_folders

List folders within an n8n project. Returns: id, name, parentFolderId, createdAt, updatedAt, homeProject, parentFolder, tags, workflowCount, subFolderCount, path. Required: project_id.

create_a_n_8_n_project_folder

Create a folder within an n8n project, passing 'personal' as project_id to use the calling user's personal project. Returns: id, name, parentFolderId, createdAt, updatedAt. Required: project_id, name.

get_single_n_8_n_project_folder_by_id

Get details of an n8n folder by id, including recursive sub-folder and workflow counts. Returns: id, name, parentFolderId, createdAt, updatedAt, totalSubFolders, totalWorkflows. Required: id, project_id.

update_a_n_8_n_project_folder_by_id

Update an n8n folder's name or move it into a different parent folder by id. Returns: id, name, parentFolderId, createdAt, updatedAt. Required: id, project_id.

delete_a_n_8_n_project_folder_by_id

Delete a folder in an n8n project by id. Returns an empty 204 response on success. Without a target folder, workflows are moved to the project root and archived and child folders are deleted. Required: id, project_id.

list_all_n_8_n_project_users

List all members of an n8n project, including each member's role. Returns: id, email, firstName, lastName, createdAt, updatedAt, role. Required: project_id.

create_a_n_8_n_project_user

Add one or more users to an n8n project with their assigned roles. Returns an empty 201 response on success. Required: project_id, relations.

update_a_n_8_n_project_user_by_id

Change a user's role in an n8n project. Returns an empty 204 response on success. Required: id, project_id, role.

delete_a_n_8_n_project_user_by_id

Remove a user from an n8n project on your instance. Returns an empty 204 response on success. Required: id, project_id.

list_all_n_8_n_insights_summaries

Retrieve the n8n insights summary for a selected date range, optionally filtered by project. Returns: total, failed, failureRate, timeSaved, averageRunTime.

list_all_n_8_n_promotions_providers

List promotion providers in n8n. Returns each provider's id, name, type, authType, createdAt, and updatedAt (public configuration is not included).

create_a_n_8_n_promotions_provider

Create a promotion provider in n8n with its authentication material. Returns: provider, publicKey. Requires name, type, and auth. Git host credentials are validated before saving. Required: name, type, auth.

get_single_n_8_n_promotions_provider_by_id

Get a promotion provider by id in n8n. Returns: id, name, type, authType, config, createdAt, updatedAt. Secrets are never returned. Required: id.

update_a_n_8_n_promotions_provider_by_id

Update a promotion provider by id in n8n — rename it, replace its credentials via auth, or change its config. Returns: id, name, type, authType, config, createdAt, updatedAt. Requires id and at least one of name, auth, or config. Required: id.

delete_a_n_8_n_promotions_provider_by_id

Delete a promotion provider in n8n by id. Returns an empty 204 response on success. Required: id. A provider used by a connection cannot be deleted.

list_all_n_8_n_promotions_connections

List n8n promotion connections with their git target, provider summary, and apply/promote configurations. Returns: id, name, scope, target, provider, configs, createdAt, updatedAt. Filter by scope or providerId.

create_a_n_8_n_promotions_connection

Create a promotion connection in n8n on an existing provider, with up to one initial configuration per direction. Returns: id, name, scope, target, provider, configs, createdAt, updatedAt. Requires name, scope, providerId, and target. Only one instance connection can exist. Required: name, scope, providerId, target.

get_single_n_8_n_promotions_connection_by_id

Get an n8n promotion connection by id, including its provider summary and configurations. Returns: id, name, scope, target, provider, configs, createdAt, updatedAt. Required: id.

update_a_n_8_n_promotions_connection_by_id

Update an n8n promotion connection's name, target, or provider by id. Returns: id, name, scope, target, provider, configs, createdAt, updatedAt. Requires at least one of name, target, or providerId; scope cannot be changed. Required: id.

delete_a_n_8_n_promotions_connection_by_id

Delete a promotion connection in n8n, removing the connection together with its configurations, project links, and local checkouts while keeping its provider. Returns an empty 204 response on success. Required: id.

n_8_n_promotions_connections_clone

Clone one direction's promotion connection repository into local storage on the n8n instance. Safe to call repeatedly; cloning one direction does not make the other ready. Returns: connectionId, configId, direction, branchName, hasCheckout. Required: promotion_connection_id, direction.

n_8_n_connection_configs_bulk_delete

Delete an n8n promotion connection configuration for one direction, removing the config and its local checkout while leaving Git untouched. Returns an empty 204 response on success. Required: promotion_connection_id, direction.

list_all_n_8_n_connection_projects

List the projects linked to a promotion connection in n8n. Returns the array of project IDs associated with the connection. Required: promotion_connection_id.

create_a_n_8_n_connection_project

Link an n8n team project to a promotion connection. Returns: projectId, connectionId. A project can be linked to only one connection. Required: promotion_connection_id, project_id.

delete_a_n_8_n_connection_project_by_id

Unlink an n8n project from a promotion connection. Returns an empty 204 response on success. Required: id, promotion_connection_id.

create_a_n_8_n_connection_promote

Promote all team projects for an n8n promotion connection: exports, commits, and pushes every team project to the configured base branch or a new timestamped branch; personal projects are ignored, and the Promote direction must be cloned first. Returns: connectionId, configId, counts, git. Required: promotion_connection_id, commitMessage.

list_all_n_8_n_project_changes

List the n8n changes of a project in one promotion direction (apply or promote), comparing the instance project against the branch of its promotion configuration. Returns: id, name, type, status, version, updatedAt, updatedBy, dependencyCount. The direction must be cloned first. Required: project_id, direction.

list_all_n_8_n_role_mapping_rules

List n8n role-mapping rules that map identity-provider claim expressions to roles. Returns: id, expression, role, type, order, projectIds, createdAt, updatedAt. Each rule's order is its evaluation position within its own type, starting at 0.

create_a_n_8_n_role_mapping_rule

Create an n8n role-mapping rule that maps an identity-provider claim expression to a role. Returns: id, expression, role, type, order, projectIds, createdAt, updatedAt. Required: expression, role, type. Omitting order appends the rule to the end of its type's evaluation order.

update_a_n_8_n_role_mapping_rule_by_id

Update an n8n role-mapping rule's claim expression, role, and/or project assignments by id. Returns: id, expression, role, type, order, projectIds, createdAt, updatedAt. Required: id. A rule's type cannot be changed after creation.

delete_a_n_8_n_role_mapping_rule_by_id

Delete an n8n role-mapping rule by id. Returns the deleted rule with id, expression, role, type, order, projectIds, createdAt, and updatedAt. Required: id. Remaining rules of the same type resequence so order stays a contiguous sequence starting at 0.

create_a_n_8_n_role_mapping_rule_move

Move an n8n role-mapping rule to a new position in its evaluation order. Returns: id, expression, role, type, order, projectIds, createdAt, updatedAt. Required: role_mapping_rule_id, targetIndex.

list_all_n_8_n_roles

List all roles in n8n. Returns roles grouped by type in the global and project arrays.

create_a_n_8_n_role

Create a custom role in n8n. Returns the created role with slug, displayName, roleType, scopes, and createdAt. Required: displayName, roleType, scopes.

get_single_n_8_n_role_by_id

Get a single n8n role by id (the role's slug). Returns: slug, displayName, description, systemRole, roleType, scopes, createdAt, updatedAt, licensed, usedByUsers, usedByProjects. Required: id.

update_a_n_8_n_role_by_id

Update a custom n8n role by id (role slug), replacing its displayName, description, and scopes. Returns the updated role: slug, displayName, roleType, scopes, updatedAt. Required: id, displayName, description, scopes. System roles cannot be updated.

delete_a_n_8_n_role_by_id

Delete a custom n8n role by id (role slug). Returns the deleted role with slug, displayName, roleType, scopes, and updatedAt. System roles cannot be deleted; when users are assigned, reassignRoleSlug moves them to another role first. Required: id.

list_all_n_8_n_settings_ldaps

Retrieve the current n8n LDAP configuration, including every field exposed in the UI; the binding admin password is redacted on read. Returns: loginEnabled, loginLabel, connectionUrl, allowUnauthorizedCerts, connectionSecurity, baseDn, bindingAdminDn, emailAttribute, synchronizationEnabled, and 11 more. Requires the LDAP feature to be licensed.

n_8_n_settings_ldaps_bulk_update

Replace the entire n8n LDAP configuration with a full object; partial updates are not supported. Returns the stored configuration: loginEnabled, connectionUrl, connectionSecurity, baseDn, bindingAdminDn, synchronizationEnabled, and more. Required: loginEnabled, loginLabel, connectionUrl, allowUnauthorizedCerts, connectionSecurity, connectionPort, baseDn, bindingAdminDn, bindingAdminPassword, firstNameAttribute, lastNameAttribute, emailAttribute, loginIdAttribute, ldapIdAttribute, userFilter, synchronizationEnabled, synchronizationInterval, searchPageSize, searchTimeout, enforceEmailUniqueness.

list_all_n_8_n_ldap_syncs

List n8n LDAP synchronization history, most recent first. Returns: id, runMode, status, startedAt, endedAt, scanned, created, updated, disabled, error.

create_a_n_8_n_ldap_sync

Trigger a manual LDAP synchronization in n8n. Returns: id, runMode, status, startedAt, endedAt, scanned, created, updated, disabled, error. Required: type.

list_all_n_8_n_log_streaming_event_types

List the n8n event types that can be streamed to a log streaming destination. Returns an array of event name strings, e.g. n8n.workflow.started, n8n.workflow.success, n8n.workflow.failed. Requires the Log Streaming feature to be licensed.

list_all_n_8_n_log_streaming_destinations

List the configured n8n log streaming destinations. Returns each destination's id, type (webhook, syslog, or sentry), label, enabled, subscribedEvents, and its type-specific settings such as url, host, or dsn.

create_a_n_8_n_log_streaming_destination

Create an n8n log streaming destination. Returns the created destination's id, type, label, enabled, and subscribedEvents. Fails with 409 when destinations are managed via environment variables. Required: type.

get_single_n_8_n_log_streaming_destination_by_id

Get a single log streaming destination by id. Returns the destination object including its id, type, label, enabled state, subscribedEvents, and the type-specific delivery fields for webhook, syslog, or sentry destinations. Required: id. The Log Streaming feature must be licensed.

update_a_n_8_n_log_streaming_destination_by_id

Replace an existing n8n log streaming destination by id. Returns the updated destination's id, type, label, enabled, and subscribedEvents. Fails with 409 when destinations are managed via environment variables. Required: id, type.

delete_a_n_8_n_log_streaming_destination_by_id

Delete an n8n log streaming destination by id. Returns the deleted destination's id, type, label, enabled, and subscribedEvents. Required: id. Fails with 409 when destinations are managed via environment variables.

create_a_n_8_n_destination_test

Test an n8n log streaming destination by sending it a test message to verify it is reachable and configured correctly. Returns: success. Required: destination_id.

list_all_n_8_n_settings_otels

Get the current n8n OpenTelemetry configuration. Returns: enabled, exporterProtocol, exporterEndpoint, exporterTracingPath, exporterServiceName, exporterHeaders, tracesSampleRate, startupConnectivityTimeoutMs, includeNodeSpans, emitWorkflowStartSpan, emitNodeStartSpan, injectOutbound, productionExecutionsOnly.

n_8_n_settings_otels_bulk_update

Set the n8n OpenTelemetry configuration; partial bodies are rejected. Returns the updated config: enabled, exporterProtocol, tracesSampleRate. Required: enabled, exporterEndpoint, exporterTracingPath, exporterServiceName, exporterHeaders, tracesSampleRate, startupConnectivityTimeoutMs, includeNodeSpans, injectOutbound, productionExecutionsOnly.

create_a_n_8_n_otel_test_trace

Send a test span to an OTLP collector in n8n to verify connection details without changing the stored configuration. Returns: success, error. Required: exporterEndpoint, exporterTracingPath, exporterServiceName, exporterHeaders, startupConnectivityTimeoutMs. Env-var-managed fields are overridden with their effective values before the test.

list_all_n_8_n_settings_security_policies

Get the n8n instance security policy: personal-space publishing and sharing flags, the redaction enforcement floor, and read-only usage counts. Returns: personalSpacePublishing, personalSpaceSharing, publishedPersonalWorkflowsCount, sharedPersonalWorkflowsCount, sharedPersonalCredentialsCount, redactionEnforcement.

n_8_n_settings_security_policies_bulk_update

Replace the n8n instance security policy with a full object; partial updates are not supported. Returns: personalSpacePublishing, personalSpaceSharing, redactionEnforcement, and 3 more. Required: personalSpacePublishing, personalSpaceSharing, redactionEnforcement. Rejected with 409 when the policy is managed via environment variables.

list_all_n_8_n_sso_oidcs

Retrieve the current OIDC SSO configuration in n8n, including every field exposed in the UI. Returns: clientId, clientSecret, discoveryEndpoint, loginEnabled, prompt, authenticationContextClassReference, additionalScopes, emailVerifiedRequired, rpInitiatedLogoutEnabled.

n_8_n_sso_oidcs_bulk_update

Set the n8n OIDC SSO configuration (full replacement only; partial updates are rejected). Returns the updated configuration with clientSecret redacted, including clientId, discoveryEndpoint, and loginEnabled. Required: clientId, clientSecret, discoveryEndpoint, loginEnabled, prompt, authenticationContextClassReference, additionalScopes, emailVerifiedRequired, rpInitiatedLogoutEnabled.

list_all_n_8_n_sso_samls

Get the current SAML SSO configuration in n8n, including the service provider entity ID and ACS return URL. Returns: entityID, returnUrl, mapping, metadata, metadataUrl, ignoreSSL, loginBinding, loginEnabled, loginLabel, authnRequestsSigned, signatureConfig, and 7 more. Signing keys, certificates, and IdP metadata are redacted on read.

n_8_n_sso_samls_bulk_update

Replace the n8n SAML SSO configuration with a full object; partial updates are not supported. Returns the stored configuration: entityID, returnUrl, mapping, metadata, metadataUrl, loginEnabled, signatureConfig. Required: mapping, metadata, metadataUrl, ignoreSSL, loginBinding, loginEnabled, loginLabel, authnRequestsSigned, wantAssertionsSigned, wantMessageSigned, emailVerifiedRequired, signingPrivateKey, signingCertificate, acsBinding, signatureConfig, relayState.

list_all_n_8_n_source_control_status

Preview pending source control changes between the n8n instance and its connected Git branch in either the push or pull direction. Returns a list of change items with fields: file, id, name, type, status, location, conflict, and updatedAt. Required: direction.

create_a_n_8_n_source_control_push

Push local source control changes in n8n by committing and pushing selected files to the connected Git branch. Returns pushed records with id, name, type, status, conflict, and updatedAt. Unresolved conflicts block the push unless force is set. Required: commitMessage, fileNames.

create_a_n_8_n_source_control_pull

Pull changes from the connected Git branch into your n8n instance. Returns the pull diff with each entity's file, id, name, type, status, location, and conflict fields. Uncommitted local changes or merge conflicts return the diff and can be resolved by retrying with force.

list_all_n_8_n_workflow_test_runs

List the evaluation test runs of an n8n workflow. Returns: id, status, runAt, completedAt, metrics, errorCode, errorDetails, finalResult, testCaseCount, createdAt, updatedAt. Required: workflow_id.

create_a_n_8_n_workflow_test_run

Start a new evaluation test run for an n8n workflow. Returns: id, status, createdAt. The workflow must contain a configured evaluation trigger. Required: workflow_id.

get_single_n_8_n_workflow_test_run_by_id

Get a single evaluation test run of an n8n workflow by id, including its aggregated metrics and final result. Returns: id, status, runAt, completedAt, metrics, errorCode, errorDetails, finalResult, testCaseCount, createdAt, updatedAt. Required: id, workflow_id.

n_8_n_workflow_test_runs_cancel

Cancel a running evaluation test run for an n8n workflow. Returns: id, status. Required: workflow_id, run_id.

list_all_n_8_n_test_run_test_cases

List the per-case results of an n8n evaluation test run. Returns: id, status, runAt, completedAt, metrics, errorCode, errorDetails, inputs, outputs, executionId. Required: workflow_id, run_id.

list_all_n_8_n_tags

List all tags in your n8n instance. Returns each tag with id, name, createdAt, and updatedAt.

create_a_n_8_n_tag

Create a tag in your n8n instance. Returns the created tag including id, name, createdAt, and updatedAt. Required: name.

get_single_n_8_n_tag_by_id

Get a single n8n tag by id. Returns: id, name, createdAt, updatedAt. Required: id.

update_a_n_8_n_tag_by_id

Update an n8n tag by id. Returns the updated tag including id, name, createdAt, and updatedAt. Required: id, name.

delete_a_n_8_n_tag_by_id

Delete an n8n tag by id. Returns the deleted tag including id, name, createdAt, and updatedAt. Required: id.

list_all_n_8_n_users

List all users in your n8n instance. Returns: id, email, firstName, lastName, isPending, createdAt, updatedAt, mfaEnabled, role, user, error. Only available to the instance owner.

create_a_n_8_n_user

Create (invite) one or more users in n8n by email. Returns per-user results, each with user and error. Requires an array of objects, each with an email. Required: users.

get_single_n_8_n_user_by_id

Get a single n8n user by id (the user's ID or email). Returns: id, email, firstName, lastName, isPending, createdAt, updatedAt, mfaEnabled, role. Only available to the instance owner. Required: id.

delete_a_n_8_n_user_by_id

Delete a user from your n8n instance by id. Returns an empty 204 response on success. Required: id.

n_8_n_user_roles_bulk_update

Change a user's global role in n8n. Assigns the new role to the user and returns an empty 204 response on success. Accepted role names include global:admin, global:member, and global:chatUser; any non-empty role name is valid. Required: user_id, newRoleName.

list_all_n_8_n_variables

List variables from your n8n instance. Returns each variable's id, key, value, type, and project details.

create_a_n_8_n_variable

Create a variable in your n8n instance. Returns the created variable including its id, key, value, type, and projectId. Required: key, value. The key must match ^[A-Za-z_][A-Za-z0-9_]*$ (max 50 chars); value is capped at 1000 characters.

update_a_n_8_n_variable_by_id

Update a variable in your n8n instance by id. Returns an empty 204 response on success. Required: id, key, and value. The key must match ^[A-Za-z0-9_]+$ (max 50 chars); value is capped at 1000 characters.

delete_a_n_8_n_variable_by_id

Delete a variable from your n8n instance by id. Returns an empty 204 response on success. Required: id.

get_single_n_8_n_node_type_policies_project_by_id

Get a project's node type policy in n8n. Returns the project's own composed policy (not merged with the instance policy): scopeId, rules, defaultAction, version. Required: id. Unconfigured projects report scopeId null, no rules, defaultAction allow, and version 0.

update_a_n_8_n_node_type_policies_project_by_id

Replace a project's node type policy in n8n, creating it on first write. Returns: scopeId, rules, defaultAction, version, warnings. Requires id, rules, defaultAction, and version matching the last read; delegate is not accepted at project scope and stale versions are rejected. Required: id, rules, defaultAction, version.

Why Truto

Why use Truto’s MCP server for n8n

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 850+ 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

Go live with n8n in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s n8n account

Use Truto’s frontend SDK to connect your customer’s n8n 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 n8n

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

04

Unified response format

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

FAQs

Common questions about n8n on Truto

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

Does this integration work with self-hosted n8n instances?

Yes. n8n is commonly deployed self-hosted or on-premise, and Truto connects to the customer's instance using the credentials they provide, so you can serve both n8n Cloud and self-hosted enterprise customers.

Can we programmatically create and activate workflows in a customer's n8n account?

Yes. The integration supports creating, updating, activating, deactivating, publishing, unpublishing, archiving, and deleting workflows, which lets you ship template-driven automations end-to-end.

How do we monitor whether a customer's automations are running successfully?

You can list all executions, fetch a single execution by ID, retry failed executions, stop running ones, and perform bulk updates. This gives you enough signal to build dashboards, alerts, or SLA tracking inside your product.

Can we manage API credentials inside the customer's n8n instance?

Yes. You can list credential schemas, create credentials, update them, test them, delete them, and transfer them between projects — enabling automated key rotation and zero-touch credential provisioning.

Is there support for n8n Data Tables so our workflows can read live state from our product?

Yes. You can create and manage Data Tables and their columns, list rows, create rows, and perform bulk upsert, update, clear, and delete operations against the rows.

Can we support enterprise governance features like SSO, RBAC, and audit logs?

Yes. The integration exposes projects, project users, roles, role-mapping rules, SAML and OIDC SSO settings, LDAP settings and syncs, security policies, log streaming destinations, and audit creation, so you can build enterprise-grade governance on top of a customer's n8n.

n8n

Get n8n integrated into your app

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