UNPKG

@gotohuman/n8n-nodes-gotohuman

Version:

n8n node to request human reviews in AI workflows with gotoHuman

180 lines 7.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GotoHumanTrigger = void 0; const n8n_workflow_1 = require("n8n-workflow"); const helpers_1 = require("./helpers"); class GotoHumanTrigger { constructor() { this.description = { displayName: 'gotoHuman Trigger', name: 'gotoHumanTrigger', icon: 'file:gotohuman.svg', group: ['trigger'], version: 1, subtitle: '={{$parameter["triggerOn"] === "onTriggerFormSubmission" ? "Trigger form: " + $parameter["triggerFormID"] : $parameter["triggerOn"] === "onAgentMessageOrToolResult" ? "Agent: " + $parameter["agentID"] : "Review template: " + $parameter["reviewTemplateID"]}}', description: 'Triggers when a gotoHuman event occurs', defaults: { name: 'gotoHuman Trigger', }, usableAsTool: undefined, inputs: [], outputs: [n8n_workflow_1.NodeConnectionTypes.Main], credentials: [ { name: 'gotoHumanApi', required: true, }, ], webhooks: [ { name: 'default', httpMethod: 'POST', responseMode: 'onReceived', responseData: 'Ok', path: 'webhook', }, ], properties: [ { displayName: 'Trigger On', name: 'triggerOn', type: 'options', required: true, default: 'onReviewCompletion', options: [ { name: 'Completed Review', value: 'onReviewCompletion', }, { name: 'Message or Tool Result for Agent', value: 'onAgentMessageOrToolResult', }, { name: 'Submitted Agent Trigger Form', value: 'onTriggerFormSubmission', }, ], }, { displayName: 'Review Template', name: 'reviewTemplateID', type: 'resourceLocator', description: 'Choose a review template from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>', default: { mode: 'list', value: '' }, required: true, modes: [ { displayName: 'From List', name: 'list', type: 'list', placeholder: 'Select a review template...', typeOptions: { searchListMethod: 'searchReviewTemplates', searchable: true, }, }, { displayName: 'ID', name: 'id', type: 'string', hint: 'Enter an ID', placeholder: 'e.g. FjbxGtNfPIuDdRm55eqK', }, ], displayOptions: { show: { triggerOn: ['onReviewCompletion'], }, }, }, { displayName: 'Trigger Form', name: 'triggerFormID', type: 'resourceLocator', description: 'Choose a trigger form from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>', default: { mode: 'list', value: '' }, required: true, modes: [ { displayName: 'From List', name: 'list', type: 'list', placeholder: 'Select a trigger form...', typeOptions: { searchListMethod: 'searchTriggerForms', searchable: true, }, }, { displayName: 'ID', name: 'id', type: 'string', hint: 'Enter an ID', placeholder: 'e.g. FjbxGtNfPIuDdRm55eqK', }, ], displayOptions: { show: { triggerOn: ['onTriggerFormSubmission'], }, }, }, { displayName: 'Agent', name: 'agentID', type: 'resourceLocator', description: 'Choose an agent from the list, or specify an ID using an <a href="https://docs.n8n.io/code/expressions/">expression</a>', default: { mode: 'list', value: '' }, required: true, modes: [ { displayName: 'From List', name: 'list', type: 'list', placeholder: 'Select an agent...', typeOptions: { searchListMethod: 'searchAgents', searchable: true, }, }, { displayName: 'ID', name: 'id', type: 'string', hint: 'Enter an ID', placeholder: 'e.g. Y5XrpfmvpKcdJzKYLX2M', }, ], displayOptions: { show: { triggerOn: ['onAgentMessageOrToolResult'], }, }, }, ], }; this.methods = { listSearch: { async searchReviewTemplates(filter) { return helpers_1.fetchN8nFormsListSearch.call(this, filter); }, async searchTriggerForms(filter) { return helpers_1.fetchN8nFormsListSearch.call(this, filter, { onlyTriggerForms: true }); }, async searchAgents(filter) { return helpers_1.fetchN8nAgentsListSearch.call(this, filter); }, }, }; this.webhookMethods = helpers_1.gotoHumanWebhookMethods; } async webhook() { const bodyData = this.getBodyData(); return { workflowData: [this.helpers.returnJsonArray(bodyData)], }; } } exports.GotoHumanTrigger = GotoHumanTrigger; //# sourceMappingURL=GotoHumanTrigger.node.js.map