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

# n8n API Integration on Truto



**Category:** iPaaS  
**Status:** Beta

## MCP-ready AI tools

Truto exposes 166 tools for n8n that AI agents can call directly.

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

## How it works

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

## Use cases

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

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

## FAQs

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