UNPKG

n8n-nodes-typebot-devanvil

Version:

Nó para integração com o Typebot via API

84 lines (75 loc) 2.8 kB
import { IExecuteFunctions } from 'n8n-core'; import { INodeType, INodeTypeDescription } from 'n8n-workflow'; export class Typebot implements INodeType { description: INodeTypeDescription = { displayName: 'Typebot', name: 'typebot', group: ['transform'], version: 1, description: 'Integração com o Typebot via API', defaults: { name: 'Typebot', }, inputs: ['main'], outputs: ['main'], properties: [ { displayName: 'Token de Autenticação', name: 'authToken', type: 'string', default: '', required: true, description: 'Token Bearer para autenticação na API do Typebot', }, { displayName: 'ID do Typebot', name: 'typebotId', type: 'string', default: '', required: true, description: 'ID do Typebot que será utilizado', }, { displayName: 'Mensagem', name: 'message', type: 'string', default: '', required: true, description: 'Mensagem a ser enviada ao Typebot', }, ], }; async execute(this: IExecuteFunctions) { const items = this.getInputData(); const returnData = []; for (let i = 0; i < items.length; i++) { const authToken = this.getNodeParameter('authToken', i) as string; const typebotId = this.getNodeParameter('typebotId', i) as string; const message = this.getNodeParameter('message', i) as string; // Iniciar conversa const startResponse = await this.helpers.request({ method: 'POST', uri: `https://typebot.io/api/v1/typebots/${typebotId}/startChat`, headers: { Authorization: `Bearer ${authToken}`, }, json: true, }); const sessionId = startResponse.sessionId; // Enviar mensagem const sendResponse = await this.helpers.request({ method: 'POST', uri: `https://typebot.io/api/v1/sessions/${sessionId}/continueChat`, headers: { Authorization: `Bearer ${authToken}`, }, body: { message, }, json: true, }); returnData.push({ json: sendResponse }); } return this.prepareOutputData(returnData); } }