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 usUse Cases
Why integrate with n8n
Common scenarios for SaaS companies building n8n integrations for their customers.
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.
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.
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.
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.
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.
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.
Execution monitoring dashboard
List, inspect, retry, and stop n8n executions to give your users a native view of automation health and historical runs.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.