Workflow Editor UI for n8n - a comprehensive Vue.js-based visual workflow editor with drag-and-drop functionality.
—
Pending
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Pending
The risk profile of this skill
HTTP client methods for communication with the n8n backend API, handling workflows, credentials, executions, users, and other backend services.
Core workflow management operations.
/**
* Get new workflow template
* @param context - Request context
* @param data - Optional template data
* @returns New workflow template
*/
function getNewWorkflow(context: IRestApiContext, data?: IDataObject): Promise<NewWorkflowResponse>;
/**
* Fetch workflow by ID
* @param context - Request context
* @param id - Workflow ID
* @returns Workflow data
*/
function getWorkflow(context: IRestApiContext, id: string): Promise<IWorkflowDb>;
/**
* List workflows with filtering
* @param context - Request context
* @param filter - Filter criteria
* @param options - Pagination and sorting options
* @returns Paginated workflows list
*/
function getWorkflows(
context: IRestApiContext,
filter?: WorkflowsListRequestFilter,
options?: ListRequestOptions
): Promise<WorkflowsListResponse>;
/**
* Create new workflow
* @param context - Request context
* @param data - Workflow creation data
* @returns Created workflow
*/
function createWorkflow(context: IRestApiContext, data: WorkflowDataCreate): Promise<IWorkflowDb>;
/**
* Update existing workflow
* @param context - Request context
* @param id - Workflow ID
* @param data - Updated workflow data
* @returns Updated workflow
*/
function updateWorkflow(
context: IRestApiContext,
id: string,
data: WorkflowDataUpdate
): Promise<IWorkflowDb>;
/**
* Delete workflow
* @param context - Request context
* @param id - Workflow ID
*/
function deleteWorkflow(context: IRestApiContext, id: string): Promise<void>;
/**
* Get active workflow IDs
* @param context - Request context
* @returns Array of active workflow IDs
*/
function getActiveWorkflows(context: IRestApiContext): Promise<string[]>;Workflow execution operations.
/**
* Execute workflow
* @param context - Request context
* @param data - Execution configuration
* @returns Execution response
*/
function executeWorkflow(
context: IRestApiContext,
data: IStartRunData
): Promise<IExecutionPushResponse>;
/**
* Get workflow executions
* @param context - Request context
* @param filter - Execution filter criteria
* @param options - Pagination options
* @returns Paginated executions list
*/
function getExecutions(
context: IRestApiContext,
filter?: ExecutionsQueryFilter,
options?: ListRequestOptions
): Promise<IExecutionsListResponse>;
/**
* Get execution details
* @param context - Request context
* @param executionId - Execution ID
* @returns Execution data
*/
function getExecutionData(
context: IRestApiContext,
executionId: string
): Promise<IExecutionResponse>;
/**
* Stop execution
* @param context - Request context
* @param executionId - Execution ID
* @returns Stop response
*/
function stopExecution(
context: IRestApiContext,
executionId: string
): Promise<IExecutionsStopData>;
/**
* Delete executions
* @param context - Request context
* @param filter - Deletion filter
* @returns Deletion summary
*/
function deleteExecutions(
context: IRestApiContext,
filter: IExecutionDeleteFilter
): Promise<void>;
/**
* Get running executions
* @param context - Request context
* @param filter - Filter criteria
* @returns Running executions
*/
function getActiveExecutions(
context: IRestApiContext,
filter?: ExecutionsQueryFilter
): Promise<ExecutionSummary[]>;Credential management operations.
/**
* Get all credentials
* @param context - Request context
* @param filter - Filter criteria
* @param includeScopes - Include permission scopes
* @param onlySharedWithMe - Only shared credentials
* @returns Credentials list
*/
function getAllCredentials(
context: IRestApiContext,
filter?: CredentialsListRequestFilter,
includeScopes?: boolean,
onlySharedWithMe?: boolean
): Promise<ICredentialsResponse[]>;
/**
* Create new credential
* @param context - Request context
* @param data - Credential data
* @returns Created credential
*/
function createNewCredential(
context: IRestApiContext,
data: ICredentialsDecrypted
): Promise<ICredentialsResponse>;
/**
* Update credential
* @param context - Request context
* @param id - Credential ID
* @param data - Updated credential data
* @returns Updated credential
*/
function updateCredential(
context: IRestApiContext,
id: string,
data: ICredentialsDecrypted
): Promise<ICredentialsResponse>;
/**
* Delete credential
* @param context - Request context
* @param id - Credential ID
*/
function deleteCredential(context: IRestApiContext, id: string): Promise<void>;
/**
* Get credential data
* @param context - Request context
* @param id - Credential ID
* @returns Credential details
*/
function getCredentialData(
context: IRestApiContext,
id: string
): Promise<ICredentialsDecryptedResponse>;
/**
* Test credential connection
* @param context - Request context
* @param data - Credential test data
* @returns Test result
*/
function testCredential(
context: IRestApiContext,
data: ICredentialsDecrypted
): Promise<INodeCredentialTestResult>;OAuth authentication flow helpers.
/**
* Get OAuth1 authorization URL
* @param context - Request context
* @param data - OAuth1 configuration
* @returns Authorization URL
*/
function oAuth1CredentialAuthorize(
context: IRestApiContext,
data: IOAuth1Options
): Promise<string>;
/**
* Get OAuth2 authorization URL
* @param context - Request context
* @param data - OAuth2 configuration
* @returns Authorization URL
*/
function oAuth2CredentialAuthorize(
context: IRestApiContext,
data: IOAuth2Options
): Promise<string>;
interface IOAuth1Options {
credentialId: string;
}
interface IOAuth2Options {
credentialId: string;
state?: string;
}Workflow folder organization.
/**
* Create workflow folder
* @param context - Request context
* @param projectId - Project ID
* @param name - Folder name
* @param parentFolderId - Parent folder ID
* @returns Created folder
*/
function createFolder(
context: IRestApiContext,
projectId: string,
name: string,
parentFolderId?: string
): Promise<FolderCreateResponse>;
/**
* Delete folder
* @param context - Request context
* @param projectId - Project ID
* @param folderId - Folder ID
* @param transferToFolderId - Target folder for content
*/
function deleteFolder(
context: IRestApiContext,
projectId: string,
folderId: string,
transferToFolderId?: string
): Promise<void>;
/**
* Rename folder
* @param context - Request context
* @param projectId - Project ID
* @param folderId - Folder ID
* @param name - New folder name
* @returns Updated folder
*/
function renameFolder(
context: IRestApiContext,
projectId: string,
folderId: string,
name: string
): Promise<FolderCreateResponse>;
/**
* Move folder
* @param context - Request context
* @param projectId - Project ID
* @param folderId - Folder ID
* @param parentFolderId - New parent folder ID
* @returns Updated folder
*/
function moveFolder(
context: IRestApiContext,
projectId: string,
folderId: string,
parentFolderId?: string
): Promise<FolderCreateResponse>;Tag management for workflows and credentials.
/**
* Get all tags
* @param context - Request context
* @param withUsageCount - Include usage statistics
* @returns Tags list
*/
function getTags(context: IRestApiContext, withUsageCount?: boolean): Promise<ITag[]>;
/**
* Create new tag
* @param context - Request context
* @param data - Tag data
* @returns Created tag
*/
function createTag(context: IRestApiContext, data: ITagCreatePayload): Promise<ITag>;
/**
* Update tag
* @param context - Request context
* @param id - Tag ID
* @param data - Updated tag data
* @returns Updated tag
*/
function updateTag(context: IRestApiContext, id: string, data: ITagUpdatePayload): Promise<ITag>;
/**
* Delete tag
* @param context - Request context
* @param id - Tag ID
* @returns Deletion result
*/
function deleteTag(context: IRestApiContext, id: string): Promise<{ success: boolean }>;
interface ITagCreatePayload {
name: string;
}
interface ITagUpdatePayload {
name: string;
}AI-powered workflow assistance.
/**
* Generate workflow from natural language description
* @param context - Request context
* @param prompt - Natural language prompt
* @returns Generated workflow data
*/
function generateWorkflow(context: IRestApiContext, prompt: string): Promise<WorkflowData>;
/**
* Get AI chat response
* @param context - Request context
* @param message - User message
* @param sessionId - Chat session ID
* @returns AI response
*/
function aiChat(
context: IRestApiContext,
message: string,
sessionId?: string
): Promise<AiChatResponse>;
/**
* Generate node configuration suggestions
* @param context - Request context
* @param nodeType - Node type name
* @param context - Node context
* @returns Configuration suggestions
*/
function getNodeSuggestions(
context: IRestApiContext,
nodeType: string,
nodeContext: IDataObject
): Promise<NodeSuggestion[]>;
interface AiChatResponse {
message: string;
sessionId: string;
suggestions?: string[];
}
interface NodeSuggestion {
parameter: string;
value: NodeParameterValueType;
confidence: number;
}User and authentication operations.
/**
* Get current user info
* @param context - Request context
* @returns Current user data
*/
function getCurrentUser(context: IRestApiContext): Promise<IUserResponse>;
/**
* Update current user
* @param context - Request context
* @param data - Updated user data
* @returns Updated user data
*/
function updateCurrentUser(
context: IRestApiContext,
data: Partial<IUser>
): Promise<IUserResponse>;
/**
* Get all users (admin only)
* @param context - Request context
* @returns Users list
*/
function getUsers(context: IRestApiContext): Promise<IUserResponse[]>;
/**
* Invite user (admin only)
* @param context - Request context
* @param data - Invitation data
* @returns Invitation result
*/
function inviteUsers(
context: IRestApiContext,
data: Array<{ email: string; role: InvitableRoleName }>
): Promise<IInviteResponse[]>;
/**
* Delete user (admin only)
* @param context - Request context
* @param userId - User ID
* @param transferId - Transfer workflows to user ID
*/
function deleteUser(
context: IRestApiContext,
userId: string,
transferId?: string
): Promise<void>;Workflow Operations:
import { workflowsApi } from '@/api/workflows';
import { useRootStore } from '@/stores/n8nRootStore';
const rootStore = useRootStore();
// Create new workflow
const workflow = await workflowsApi.createWorkflow(rootStore.getRestApiContext, {
name: 'My New Workflow',
nodes: [],
connections: {}
});
// Update workflow
const updatedWorkflow = await workflowsApi.updateWorkflow(
rootStore.getRestApiContext,
workflow.id,
{
name: 'Updated Workflow Name',
active: true
}
);
// Execute workflow
const execution = await workflowsApi.executeWorkflow(
rootStore.getRestApiContext,
{
workflowData: workflow
}
);Credential Management:
import { credentialsApi } from '@/api/credentials';
// Get all credentials
const credentials = await credentialsApi.getAllCredentials(
rootStore.getRestApiContext,
{ filter: { type: 'httpHeaderAuth' } }
);
// Test credential
const testResult = await credentialsApi.testCredential(
rootStore.getRestApiContext,
{
type: 'httpHeaderAuth',
data: {
name: 'Authorization',
value: 'Bearer token123'
}
}
);
if (testResult.status === 'OK') {
console.log('Credential test successful');
}interface IRestApiContext {
baseUrl: string;
sessionId?: string;
}
interface WorkflowsListRequestFilter {
active?: boolean;
tags?: string[];
search?: string;
projectId?: string;
}
interface ListRequestOptions {
limit?: number;
offset?: number;
orderBy?: string;
orderDirection?: 'ASC' | 'DESC';
}
interface WorkflowsListResponse {
count: number;
data: WorkflowListItem[];
}
interface NewWorkflowResponse {
name: string;
defaultSettings: IWorkflowSettings;
}
interface INodeCredentialTestResult {
status: 'OK' | 'Error';
message?: string;
}
interface ExecutionsQueryFilter {
status?: ExecutionStatus[];
projectId?: string;
workflowId?: string;
finished?: boolean;
waitTill?: boolean;
metadata?: Array<{ key: string; value: string }>;
startedAfter?: string;
startedBefore?: string;
}
interface IExecutionsListResponse {
count: number;
results: ExecutionSummary[];
estimated: boolean;
}
interface CredentialsListRequestFilter {
type?: string;
search?: string;
projectId?: string;
}
type InvitableRoleName = 'member' | 'admin';
interface IInviteResponse {
user: {
id: string;
email: string;
emailSent: boolean;
inviteAcceptUrl: string;
role: string;
};
error?: string;
}