@gotohuman/n8n-nodes-gotohuman
Version:
n8n node to request human reviews in AI workflows with gotoHuman
180 lines • 7.49 kB
JavaScript
;
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