n8n-nodes-underchat 0.1.12 → 0.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -0
- package/dist/nodes/UnderChat/GenericFunctions.d.ts +1 -0
- package/dist/nodes/UnderChat/GenericFunctions.js +16 -0
- package/dist/nodes/UnderChat/GenericFunctions.js.map +1 -1
- package/dist/nodes/UnderChat/StartChatByPhone.d.ts +4 -0
- package/dist/nodes/UnderChat/StartChatByPhone.js +445 -0
- package/dist/nodes/UnderChat/StartChatByPhone.js.map +1 -0
- package/dist/nodes/UnderChat/UnderChat.node.d.ts +5 -0
- package/dist/nodes/UnderChat/UnderChat.node.js +173 -16
- package/dist/nodes/UnderChat/UnderChat.node.js.map +1 -1
- package/dist/package.json +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -8,6 +8,7 @@ Community Node do n8n para integrar workflows à API pública da UnderChat.
|
|
|
8
8
|
- Entrar em um atendimento aguardando com o executor selecionado
|
|
9
9
|
- Buscar ID do contato pelo telefone
|
|
10
10
|
- Criar contato
|
|
11
|
+
- Buscar/criar o contato e iniciar um atendimento em uma única operação
|
|
11
12
|
- Enviar mensagem de texto por `chat_id`
|
|
12
13
|
- Enviar mensagem por telefone, criando o contato quando necessário
|
|
13
14
|
- Enviar template oficial em uma conversa
|
|
@@ -28,6 +29,64 @@ A operação **Enviar mensagem por telefone** executa automaticamente:
|
|
|
28
29
|
buscar contato → criar se necessário → iniciar conversa → enviar mensagem
|
|
29
30
|
```
|
|
30
31
|
|
|
32
|
+
## Buscar/criar contato e iniciar atendimento
|
|
33
|
+
|
|
34
|
+
A operação **Buscar/Criar Contato E Iniciar Atendimento** (`startChatByPhone`)
|
|
35
|
+
substitui a sequência manual de nodes usada para localizar ou cadastrar o contato,
|
|
36
|
+
obter seu ID e abrir a conversa. Ela recebe o telefone diretamente e executa:
|
|
37
|
+
|
|
38
|
+
```text
|
|
39
|
+
buscar pelo telefone → criar se não existir → buscar o ID novamente
|
|
40
|
+
→ validar canal e setor → reutilizar um chat ativo ou iniciar o atendimento
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Configure os seguintes campos:
|
|
44
|
+
|
|
45
|
+
- **Executor:** usuário ativo que realiza as chamadas à API.
|
|
46
|
+
- **DDI** e **Telefone:** usados na busca exata; informe o telefone sem o DDI.
|
|
47
|
+
- **Nome para novo contato:** usado somente quando o contato não existe.
|
|
48
|
+
- **Criar se não existir:** ativado por padrão. Quando desativado, a operação falha
|
|
49
|
+
sem criar dados caso o telefone não seja encontrado.
|
|
50
|
+
- **Canal:** obrigatório em toda nova abertura, oficial ou não.
|
|
51
|
+
- **Setor:** obrigatório em toda nova abertura, oficial ou não.
|
|
52
|
+
- **Template oficial** e **Variáveis:** usados quando as regras do canal oficial
|
|
53
|
+
exigirem um template aprovado.
|
|
54
|
+
|
|
55
|
+
O usuário não precisa consultar nem transportar o `contact_id`. A API de criação
|
|
56
|
+
de contato não devolve esse ID; por isso o node consulta novamente o telefone após
|
|
57
|
+
uma criação bem-sucedida e só então inicia o atendimento. Se já existir um chat
|
|
58
|
+
ativo no mesmo canal e setor, ele é reutilizado em vez de criar outro. Um chat no
|
|
59
|
+
mesmo canal, mas em outro setor, não é movido silenciosamente: use a operação de
|
|
60
|
+
transferência ou selecione o setor atual.
|
|
61
|
+
|
|
62
|
+
O cadastro do contato e a abertura do atendimento são chamadas separadas da API.
|
|
63
|
+
Se a criação funcionar e uma validação posterior ou a abertura falhar, o contato
|
|
64
|
+
permanece cadastrado. Uma nova execução o localizará e reutilizará, sem duplicá-lo.
|
|
65
|
+
|
|
66
|
+
### Canal oficial e templates
|
|
67
|
+
|
|
68
|
+
Depois de resolver o contato, o node consulta o contexto oficial usando o canal e
|
|
69
|
+
o `contact_id`. Ele respeita a janela retornada pela UnderChat:
|
|
70
|
+
|
|
71
|
+
- texto livre só pode ser enviado quando `can_send_freeform` permitir;
|
|
72
|
+
- um template só pode ser usado quando estiver aprovado e disponível no contexto;
|
|
73
|
+
- quando `requires_template` estiver ativo, a abertura não continua sem um template
|
|
74
|
+
aprovado e todos os valores obrigatórios;
|
|
75
|
+
- `key`, componente, posição, nome do parâmetro e índice de botão vêm da API; o
|
|
76
|
+
usuário informa apenas os valores das variáveis, pelos campos ou em JSON;
|
|
77
|
+
- o template é enviado junto da abertura do chat, evitando depender de um
|
|
78
|
+
`chat_id` criado em um node anterior.
|
|
79
|
+
|
|
80
|
+
O campo **Template oficial** usa o seletor do n8n e também permite informar o nome
|
|
81
|
+
manualmente. A API pública lista os templates no contexto oficial, que exige um
|
|
82
|
+
`contact_id`. Quando o telefone é dinâmico ou o contato ainda não existe, o node
|
|
83
|
+
usa um contato já vinculado ao canal somente para carregar o catálogo no editor,
|
|
84
|
+
sem criar nem alterar dados. Na execução, ele consulta novamente o contexto com o
|
|
85
|
+
contato real e recusa qualquer template que não esteja aprovado ou cujas variáveis
|
|
86
|
+
não correspondam ao contrato retornado. Se o canal ainda não tiver nenhum contato,
|
|
87
|
+
o catálogo não poderá ser carregado antecipadamente; nesse caso ainda é possível
|
|
88
|
+
usar o modo manual/JSON, com a mesma validação rigorosa durante a execução.
|
|
89
|
+
|
|
31
90
|
Na operação **Transferir para setor ou usuário**, ative **Entrar no atendimento
|
|
32
91
|
antes de transferir** quando o chat ainda estiver aguardando atendimento. O node
|
|
33
92
|
muda o status para `in_chat` e, após a confirmação da API, realiza a transferência.
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { IDataObject, IExecuteFunctions, IHttpRequestMethods, ILoadOptionsFunctions } from 'n8n-workflow';
|
|
2
2
|
export declare function underChatApiRequest(this: IExecuteFunctions | ILoadOptionsFunctions, method: IHttpRequestMethods, endpoint: string, body?: IDataObject, qs?: IDataObject, executorId?: string): Promise<IDataObject>;
|
|
3
3
|
export declare function responseData(response: IDataObject): unknown;
|
|
4
|
+
export declare function underChatApiMultipartRequest(this: IExecuteFunctions, endpoint: string, formData: IDataObject, executorId: string): Promise<IDataObject>;
|
|
4
5
|
export declare function collectionRecords(value: unknown): IDataObject[];
|
|
5
6
|
export declare function firstRecord(response: IDataObject): IDataObject | undefined;
|
|
6
7
|
export declare function getOpaqueId(record: IDataObject | undefined, names: string[]): string | undefined;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.underChatApiRequest = underChatApiRequest;
|
|
4
4
|
exports.responseData = responseData;
|
|
5
|
+
exports.underChatApiMultipartRequest = underChatApiMultipartRequest;
|
|
5
6
|
exports.collectionRecords = collectionRecords;
|
|
6
7
|
exports.firstRecord = firstRecord;
|
|
7
8
|
exports.getOpaqueId = getOpaqueId;
|
|
@@ -32,6 +33,21 @@ function responseData(response) {
|
|
|
32
33
|
var _a;
|
|
33
34
|
return (_a = response.data) !== null && _a !== void 0 ? _a : response;
|
|
34
35
|
}
|
|
36
|
+
async function underChatApiMultipartRequest(endpoint, formData, executorId) {
|
|
37
|
+
const credentials = await this.getCredentials('underChatApi');
|
|
38
|
+
const baseUrl = String(credentials.baseUrl).replace(/\/$/, '');
|
|
39
|
+
const options = {
|
|
40
|
+
method: 'POST',
|
|
41
|
+
url: `${baseUrl}${endpoint}`,
|
|
42
|
+
body: formData,
|
|
43
|
+
json: true,
|
|
44
|
+
headers: {
|
|
45
|
+
'content-type': 'multipart/form-data',
|
|
46
|
+
'x-underchat-user-id': executorId,
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
return (await this.helpers.httpRequestWithAuthentication.call(this, 'underChatApi', options));
|
|
50
|
+
}
|
|
35
51
|
function collectionRecords(value) {
|
|
36
52
|
if (Array.isArray(value)) {
|
|
37
53
|
return value.filter((item) => Boolean(item) && typeof item === 'object' && !Array.isArray(item));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericFunctions.js","sourceRoot":"","sources":["../../../nodes/UnderChat/GenericFunctions.ts"],"names":[],"mappings":";;AAQA,kDA6BC;AAED,oCAEC;AAED,8CAiBC;AAED,kCASC;AAED,kCAOC;AAED,0CAKC;AAED,0CAiBC;AAED,wCAKC;AAED,gDAIC;
|
|
1
|
+
{"version":3,"file":"GenericFunctions.js","sourceRoot":"","sources":["../../../nodes/UnderChat/GenericFunctions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { IDataObject, IExecuteFunctions, ILoadOptionsFunctions, INodeListSearchResult, ResourceMapperFields } from 'n8n-workflow';
|
|
2
|
+
export declare function searchOfficialTemplates(this: ILoadOptionsFunctions, filter?: string): Promise<INodeListSearchResult>;
|
|
3
|
+
export declare function getOfficialTemplateVariables(this: ILoadOptionsFunctions): Promise<ResourceMapperFields>;
|
|
4
|
+
export declare function executeStartChatByPhone(this: IExecuteFunctions, itemIndex: number, executorId: string): Promise<IDataObject>;
|
|
@@ -0,0 +1,445 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.searchOfficialTemplates = searchOfficialTemplates;
|
|
4
|
+
exports.getOfficialTemplateVariables = getOfficialTemplateVariables;
|
|
5
|
+
exports.executeStartChatByPhone = executeStartChatByPhone;
|
|
6
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
7
|
+
const GenericFunctions_1 = require("./GenericFunctions");
|
|
8
|
+
const ACTIVE_CHAT_STATUSES = ['ura', 'queue', 'in_chat', 'ura_output', 'ura_schedule', 'ura_webhook'];
|
|
9
|
+
const TEMPLATE_SEPARATOR = '::';
|
|
10
|
+
function asRecord(value) {
|
|
11
|
+
return value && typeof value === 'object' && !Array.isArray(value)
|
|
12
|
+
? value
|
|
13
|
+
: undefined;
|
|
14
|
+
}
|
|
15
|
+
function requiredString(value, label) {
|
|
16
|
+
if (typeof value !== 'string' || !value.trim())
|
|
17
|
+
throw new Error(`${label} não foi informado`);
|
|
18
|
+
return value.trim();
|
|
19
|
+
}
|
|
20
|
+
function optionalString(value) {
|
|
21
|
+
return typeof value === 'string' && value.trim() ? value.trim() : undefined;
|
|
22
|
+
}
|
|
23
|
+
function resourceId(value) {
|
|
24
|
+
if (typeof value === 'string' || typeof value === 'number')
|
|
25
|
+
return String(value).trim();
|
|
26
|
+
if (value && typeof value === 'object' && 'value' in value) {
|
|
27
|
+
const selected = value.value;
|
|
28
|
+
if (typeof selected === 'string' || typeof selected === 'number')
|
|
29
|
+
return String(selected).trim();
|
|
30
|
+
}
|
|
31
|
+
return '';
|
|
32
|
+
}
|
|
33
|
+
function digits(value, label) {
|
|
34
|
+
const raw = requiredString(String(value !== null && value !== void 0 ? value : ''), label);
|
|
35
|
+
const normalized = raw.replace(/\D/g, '');
|
|
36
|
+
if (!normalized)
|
|
37
|
+
throw new Error(`${label} deve conter números`);
|
|
38
|
+
return normalized;
|
|
39
|
+
}
|
|
40
|
+
function recordId(record, keys) {
|
|
41
|
+
return (0, GenericFunctions_1.getOpaqueId)(record, keys);
|
|
42
|
+
}
|
|
43
|
+
function templateSelection(template) {
|
|
44
|
+
return `${template.name}${TEMPLATE_SEPARATOR}${template.language}`;
|
|
45
|
+
}
|
|
46
|
+
function parseTemplateSelection(value) {
|
|
47
|
+
const selected = resourceId(value);
|
|
48
|
+
if (!selected)
|
|
49
|
+
return undefined;
|
|
50
|
+
const separator = selected.lastIndexOf(TEMPLATE_SEPARATOR);
|
|
51
|
+
if (separator <= 0 || separator >= selected.length - TEMPLATE_SEPARATOR.length) {
|
|
52
|
+
throw new Error('Informe o template no formato nome::idioma');
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
55
|
+
name: selected.slice(0, separator).trim(),
|
|
56
|
+
language: selected.slice(separator + TEMPLATE_SEPARATOR.length).trim(),
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
function variableFieldId(variable) {
|
|
60
|
+
var _a, _b;
|
|
61
|
+
return `variable_${encodeURIComponent(JSON.stringify([
|
|
62
|
+
variable.key,
|
|
63
|
+
variable.componentType,
|
|
64
|
+
variable.index,
|
|
65
|
+
(_a = variable.parameterName) !== null && _a !== void 0 ? _a : null,
|
|
66
|
+
(_b = variable.buttonIndex) !== null && _b !== void 0 ? _b : null,
|
|
67
|
+
]))}`;
|
|
68
|
+
}
|
|
69
|
+
function parseVariable(value, templateLabel) {
|
|
70
|
+
var _a, _b;
|
|
71
|
+
const record = asRecord(value);
|
|
72
|
+
if (!record)
|
|
73
|
+
throw new Error(`Variável inválida no template ${templateLabel}`);
|
|
74
|
+
const componentType = requiredString(record.component_type, 'Tipo da variável').toUpperCase();
|
|
75
|
+
if (!['HEADER', 'BODY', 'FOOTER', 'BUTTON'].includes(componentType)) {
|
|
76
|
+
throw new Error(`Tipo de variável inválido no template ${templateLabel}`);
|
|
77
|
+
}
|
|
78
|
+
const index = Number(record.index);
|
|
79
|
+
if (!Number.isInteger(index) || index < 0) {
|
|
80
|
+
throw new Error(`Índice de variável inválido no template ${templateLabel}`);
|
|
81
|
+
}
|
|
82
|
+
const buttonIndex = record.button_index == null ? undefined : Number(record.button_index);
|
|
83
|
+
if (buttonIndex !== undefined && (!Number.isInteger(buttonIndex) || buttonIndex < 0)) {
|
|
84
|
+
throw new Error(`Índice de botão inválido no template ${templateLabel}`);
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
key: requiredString(record.key, 'Chave da variável'),
|
|
88
|
+
componentType: componentType,
|
|
89
|
+
index,
|
|
90
|
+
parameterName: (_a = optionalString(record.parameter_name)) !== null && _a !== void 0 ? _a : null,
|
|
91
|
+
buttonIndex: buttonIndex !== null && buttonIndex !== void 0 ? buttonIndex : null,
|
|
92
|
+
sample: (_b = optionalString(record.sample)) !== null && _b !== void 0 ? _b : null,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
function parseTemplate(value) {
|
|
96
|
+
const record = asRecord(value);
|
|
97
|
+
if (!record || record.status !== 'APPROVED')
|
|
98
|
+
return undefined;
|
|
99
|
+
const name = optionalString(record.name);
|
|
100
|
+
const language = optionalString(record.language);
|
|
101
|
+
if (!name || !language || !Array.isArray(record.variables))
|
|
102
|
+
return undefined;
|
|
103
|
+
const label = `${name} (${language})`;
|
|
104
|
+
return {
|
|
105
|
+
name,
|
|
106
|
+
language,
|
|
107
|
+
status: 'APPROVED',
|
|
108
|
+
variables: record.variables.map((variable) => parseVariable(variable, label)),
|
|
109
|
+
preview: asRecord(record.preview),
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
function parseOfficialContext(response) {
|
|
113
|
+
const data = asRecord((0, GenericFunctions_1.responseData)(response));
|
|
114
|
+
if (!data || typeof data.is_official !== 'boolean' || !Array.isArray(data.templates)) {
|
|
115
|
+
throw new Error('A API retornou um contexto oficial inválido');
|
|
116
|
+
}
|
|
117
|
+
const window = asRecord(data.official_window);
|
|
118
|
+
const canSendFreeform = (window === null || window === void 0 ? void 0 : window.can_send_freeform) === true;
|
|
119
|
+
const canSendTemplate = (window === null || window === void 0 ? void 0 : window.can_send_template) === true;
|
|
120
|
+
return {
|
|
121
|
+
isOfficial: data.is_official,
|
|
122
|
+
requiresTemplate: typeof data.requires_template === 'boolean'
|
|
123
|
+
? data.requires_template
|
|
124
|
+
: data.is_official && !canSendFreeform,
|
|
125
|
+
canSendFreeform,
|
|
126
|
+
canSendTemplate,
|
|
127
|
+
templates: data.templates
|
|
128
|
+
.map(parseTemplate)
|
|
129
|
+
.filter((template) => template !== undefined),
|
|
130
|
+
window,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
async function currentExecutor() {
|
|
134
|
+
const selected = this.getCurrentNodeParameter('executorId', { extractValue: true });
|
|
135
|
+
const id = resourceId(selected);
|
|
136
|
+
if (id)
|
|
137
|
+
return id;
|
|
138
|
+
const credentials = await this.getCredentials('underChatApi');
|
|
139
|
+
return typeof credentials.userId === 'string' ? credentials.userId : '';
|
|
140
|
+
}
|
|
141
|
+
async function findContactId(context, executorId, phoneDdi, phone) {
|
|
142
|
+
try {
|
|
143
|
+
const response = await GenericFunctions_1.underChatApiRequest.call(context, 'GET', '/chat/contacts/by-phone', {}, { phone_ddi: phoneDdi, phone }, executorId);
|
|
144
|
+
return recordId((0, GenericFunctions_1.firstRecord)(response), ['contact_id', 'id']);
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
if ((0, GenericFunctions_1.isNotFoundError)(error))
|
|
148
|
+
return undefined;
|
|
149
|
+
throw new n8n_workflow_1.NodeApiError(context.getNode(), error);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
function findById(response, id, keys) {
|
|
153
|
+
return (0, GenericFunctions_1.collectionRecords)(response).find((record) => recordId(record, keys) === id);
|
|
154
|
+
}
|
|
155
|
+
async function resolvePrerequisites(context, executorId, workerId, sectorId) {
|
|
156
|
+
const [workersResponse, sectorsResponse] = await Promise.all([
|
|
157
|
+
GenericFunctions_1.underChatApiRequest.call(context, 'GET', '/chat/workers', {}, {}, executorId),
|
|
158
|
+
GenericFunctions_1.underChatApiRequest.call(context, 'GET', '/chat/sectors', {}, {}, executorId),
|
|
159
|
+
]);
|
|
160
|
+
const worker = findById(workersResponse, workerId, ['worker_id', 'id']);
|
|
161
|
+
if (!worker)
|
|
162
|
+
throw new Error('O canal selecionado não está disponível para o executor');
|
|
163
|
+
const sector = findById(sectorsResponse, sectorId, ['sector_id', 'id']);
|
|
164
|
+
if (!sector)
|
|
165
|
+
throw new Error('O setor selecionado não está disponível para o executor');
|
|
166
|
+
return { worker, sector, isOfficial: worker.is_official === true };
|
|
167
|
+
}
|
|
168
|
+
async function loadOfficialContextFromCurrent(context) {
|
|
169
|
+
const executorId = await currentExecutor.call(context);
|
|
170
|
+
const workerId = resourceId(context.getCurrentNodeParameter('workerId', { extractValue: true }));
|
|
171
|
+
const sectorId = resourceId(context.getCurrentNodeParameter('sectorId', { extractValue: true }));
|
|
172
|
+
const rawPhone = context.getCurrentNodeParameter('phone');
|
|
173
|
+
const rawPhoneDdi = context.getCurrentNodeParameter('phoneDdi');
|
|
174
|
+
if (!executorId || !workerId || !sectorId)
|
|
175
|
+
return undefined;
|
|
176
|
+
const prerequisites = await resolvePrerequisites(context, executorId, workerId, sectorId);
|
|
177
|
+
if (!prerequisites.isOfficial)
|
|
178
|
+
return undefined;
|
|
179
|
+
let contactId;
|
|
180
|
+
if (typeof rawPhone === 'string' &&
|
|
181
|
+
typeof rawPhoneDdi === 'string' &&
|
|
182
|
+
!rawPhone.includes('{{') &&
|
|
183
|
+
!rawPhoneDdi.includes('{{')) {
|
|
184
|
+
const phone = rawPhone.replace(/\D/g, '');
|
|
185
|
+
const phoneDdi = rawPhoneDdi.replace(/\D/g, '');
|
|
186
|
+
if (phone && phoneDdi)
|
|
187
|
+
contactId = await findContactId(context, executorId, phoneDdi, phone);
|
|
188
|
+
}
|
|
189
|
+
if (!contactId) {
|
|
190
|
+
const contactsResponse = await GenericFunctions_1.underChatApiRequest.call(context, 'GET', '/chat/contacts', {}, { current_page: 1, per_page: 1, filter_channel_id: workerId }, executorId);
|
|
191
|
+
contactId = recordId((0, GenericFunctions_1.collectionRecords)(contactsResponse)[0], ['contact_id', 'id']);
|
|
192
|
+
}
|
|
193
|
+
if (!contactId)
|
|
194
|
+
return undefined;
|
|
195
|
+
const response = await GenericFunctions_1.underChatApiRequest.call(context, 'GET', '/chat/official-opening/context', {}, { worker_id: workerId, contact_id: contactId }, executorId);
|
|
196
|
+
return { context: parseOfficialContext(response), contactId };
|
|
197
|
+
}
|
|
198
|
+
function templatePreview(template) {
|
|
199
|
+
var _a;
|
|
200
|
+
const body = optionalString((_a = template.preview) === null || _a === void 0 ? void 0 : _a.body);
|
|
201
|
+
if (!body)
|
|
202
|
+
return undefined;
|
|
203
|
+
return body.length > 70 ? `${body.slice(0, 67)}...` : body;
|
|
204
|
+
}
|
|
205
|
+
async function searchOfficialTemplates(filter) {
|
|
206
|
+
var _a;
|
|
207
|
+
const loaded = await loadOfficialContextFromCurrent(this);
|
|
208
|
+
if (!loaded)
|
|
209
|
+
return { results: [] };
|
|
210
|
+
const normalizedFilter = (_a = filter === null || filter === void 0 ? void 0 : filter.trim().toLocaleLowerCase('pt-BR')) !== null && _a !== void 0 ? _a : '';
|
|
211
|
+
const results = loaded.context.templates
|
|
212
|
+
.filter((template) => {
|
|
213
|
+
var _a;
|
|
214
|
+
const searchable = `${template.name} ${template.language} ${(_a = templatePreview(template)) !== null && _a !== void 0 ? _a : ''}`
|
|
215
|
+
.toLocaleLowerCase('pt-BR');
|
|
216
|
+
return !normalizedFilter || searchable.includes(normalizedFilter);
|
|
217
|
+
})
|
|
218
|
+
.map((template) => ({
|
|
219
|
+
name: `${template.name} · ${template.language} · ${template.variables.length} variável${template.variables.length === 1 ? '' : 'is'}`,
|
|
220
|
+
value: templateSelection(template),
|
|
221
|
+
}));
|
|
222
|
+
return { results };
|
|
223
|
+
}
|
|
224
|
+
async function getOfficialTemplateVariables() {
|
|
225
|
+
const selected = parseTemplateSelection(this.getCurrentNodeParameter('officialTemplate', { extractValue: true }));
|
|
226
|
+
if (!selected) {
|
|
227
|
+
return { fields: [], emptyFieldsNotice: 'Selecione um template oficial para carregar as variáveis.' };
|
|
228
|
+
}
|
|
229
|
+
const loaded = await loadOfficialContextFromCurrent(this);
|
|
230
|
+
if (!loaded) {
|
|
231
|
+
return {
|
|
232
|
+
fields: [],
|
|
233
|
+
emptyFieldsNotice: 'Não há um contato de referência neste canal para carregar as variáveis. Use o modo JSON avançado; a execução validará tudo com o contato real.',
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
const template = loaded.context.templates.find((candidate) => candidate.name === selected.name && candidate.language === selected.language);
|
|
237
|
+
if (!template)
|
|
238
|
+
return { fields: [], emptyFieldsNotice: 'O template selecionado não está aprovado para este canal.' };
|
|
239
|
+
return {
|
|
240
|
+
fields: template.variables.map((variable) => ({
|
|
241
|
+
id: variableFieldId(variable),
|
|
242
|
+
displayName: `${variable.componentType} ${variable.key}${variable.sample ? ` — exemplo: ${variable.sample}` : ''}`,
|
|
243
|
+
defaultMatch: false,
|
|
244
|
+
canBeUsedToMatch: false,
|
|
245
|
+
required: true,
|
|
246
|
+
display: true,
|
|
247
|
+
type: 'string',
|
|
248
|
+
})),
|
|
249
|
+
emptyFieldsNotice: 'Este template não possui variáveis.',
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
function selectTemplate(context, selectionValue) {
|
|
253
|
+
const selected = parseTemplateSelection(selectionValue);
|
|
254
|
+
if (!selected) {
|
|
255
|
+
const automatic = context.templates.filter((template) => template.variables.length === 0);
|
|
256
|
+
if (context.requiresTemplate && automatic.length === 1)
|
|
257
|
+
return automatic[0];
|
|
258
|
+
return undefined;
|
|
259
|
+
}
|
|
260
|
+
return context.templates.find((template) => template.name === selected.name && template.language === selected.language);
|
|
261
|
+
}
|
|
262
|
+
function variableIdentity(variable) {
|
|
263
|
+
var _a, _b;
|
|
264
|
+
return (0, GenericFunctions_1.withoutEmptyValues)({
|
|
265
|
+
key: variable.key,
|
|
266
|
+
component_type: variable.componentType,
|
|
267
|
+
index: variable.index,
|
|
268
|
+
parameter_name: (_a = variable.parameterName) !== null && _a !== void 0 ? _a : undefined,
|
|
269
|
+
button_index: (_b = variable.buttonIndex) !== null && _b !== void 0 ? _b : undefined,
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
function validateManualVariables(template, raw) {
|
|
273
|
+
if (raw.length !== template.variables.length) {
|
|
274
|
+
throw new Error(`O template ${template.name} exige ${template.variables.length} variável(is)`);
|
|
275
|
+
}
|
|
276
|
+
return template.variables.map((variable) => {
|
|
277
|
+
const expected = variableIdentity(variable);
|
|
278
|
+
const match = raw.find((candidate) => Object.entries(expected).every(([key, value]) => candidate[key] === value));
|
|
279
|
+
if (!match || (typeof match.value !== 'string' && typeof match.value !== 'number')) {
|
|
280
|
+
throw new Error(`Preencha a variável ${variable.componentType} ${variable.key}`);
|
|
281
|
+
}
|
|
282
|
+
return { ...expected, value: match.value };
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
function mappedVariables(template, raw) {
|
|
286
|
+
const mapper = asRecord(raw);
|
|
287
|
+
const values = asRecord(mapper === null || mapper === void 0 ? void 0 : mapper.value);
|
|
288
|
+
if (!values && template.variables.length > 0)
|
|
289
|
+
throw new Error('Preencha as variáveis do template');
|
|
290
|
+
return template.variables.map((variable) => {
|
|
291
|
+
const value = values === null || values === void 0 ? void 0 : values[variableFieldId(variable)];
|
|
292
|
+
if (typeof value !== 'string' && typeof value !== 'number') {
|
|
293
|
+
throw new Error(`Preencha a variável ${variable.componentType} ${variable.key}`);
|
|
294
|
+
}
|
|
295
|
+
if (typeof value === 'string' && !value.trim()) {
|
|
296
|
+
throw new Error(`Preencha a variável ${variable.componentType} ${variable.key}`);
|
|
297
|
+
}
|
|
298
|
+
return { ...variableIdentity(variable), value };
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
function buildOfficialTemplate(template, inputMode, rawMapper, rawJson) {
|
|
302
|
+
const variables = inputMode === 'json'
|
|
303
|
+
? validateManualVariables(template, (0, GenericFunctions_1.parseJsonArray)(rawJson))
|
|
304
|
+
: mappedVariables(template, rawMapper);
|
|
305
|
+
return { name: template.name, language: template.language, variables };
|
|
306
|
+
}
|
|
307
|
+
async function findActiveChat(context, executorId, contactId, phone, workerId, sectorId) {
|
|
308
|
+
const response = await GenericFunctions_1.underChatApiRequest.call(context, 'GET', '/chat', {}, {
|
|
309
|
+
status: ACTIVE_CHAT_STATUSES,
|
|
310
|
+
filter_phone: phone,
|
|
311
|
+
filter_worker_id: workerId,
|
|
312
|
+
current_page: 1,
|
|
313
|
+
per_page: 200,
|
|
314
|
+
}, executorId);
|
|
315
|
+
const matches = (0, GenericFunctions_1.collectionRecords)(response).filter((chat) => {
|
|
316
|
+
const contact = asRecord(chat.contact);
|
|
317
|
+
const worker = asRecord(chat.worker);
|
|
318
|
+
return recordId(contact, ['contact_id', 'id']) === contactId && recordId(worker, ['worker_id', 'id']) === workerId;
|
|
319
|
+
});
|
|
320
|
+
if (matches.length > 1)
|
|
321
|
+
throw new Error('Existe mais de um atendimento ativo para este contato e canal');
|
|
322
|
+
const chat = matches[0];
|
|
323
|
+
if (!chat)
|
|
324
|
+
return undefined;
|
|
325
|
+
const chatSectorId = recordId(asRecord(chat.sector), ['sector_id', 'id']);
|
|
326
|
+
if (chatSectorId !== sectorId) {
|
|
327
|
+
throw new Error('O contato já possui um atendimento ativo neste canal, mas em outro setor. Selecione o setor atual ou use a operação de transferência.');
|
|
328
|
+
}
|
|
329
|
+
return chat;
|
|
330
|
+
}
|
|
331
|
+
function templateChoices(context) {
|
|
332
|
+
return context.templates
|
|
333
|
+
.slice(0, 10)
|
|
334
|
+
.map((template) => `${template.name}::${template.language} (${template.variables.length} variável(is))`)
|
|
335
|
+
.join(', ');
|
|
336
|
+
}
|
|
337
|
+
async function executeStartChatByPhone(itemIndex, executorId) {
|
|
338
|
+
var _a, _b, _c, _d, _e;
|
|
339
|
+
try {
|
|
340
|
+
const phoneDdi = digits(this.getNodeParameter('phoneDdi', itemIndex), 'DDI');
|
|
341
|
+
const phone = digits(this.getNodeParameter('phone', itemIndex), 'Telefone');
|
|
342
|
+
const contactName = optionalString(this.getNodeParameter('contactName', itemIndex, ''));
|
|
343
|
+
const workerId = resourceId(this.getNodeParameter('workerId', itemIndex, ''));
|
|
344
|
+
const sectorId = resourceId(this.getNodeParameter('sectorId', itemIndex, ''));
|
|
345
|
+
const createIfMissing = this.getNodeParameter('createIfMissing', itemIndex, true);
|
|
346
|
+
if (!workerId)
|
|
347
|
+
throw new Error('Selecione o canal');
|
|
348
|
+
if (!sectorId)
|
|
349
|
+
throw new Error('Selecione o setor');
|
|
350
|
+
const prerequisites = await resolvePrerequisites(this, executorId, workerId, sectorId);
|
|
351
|
+
let contactId = await findContactId(this, executorId, phoneDdi, phone);
|
|
352
|
+
let contactCreated = false;
|
|
353
|
+
if (!contactId) {
|
|
354
|
+
if (!createIfMissing)
|
|
355
|
+
throw new Error('Contato não encontrado');
|
|
356
|
+
if (!contactName)
|
|
357
|
+
throw new Error('Informe o nome para cadastrar o novo contato');
|
|
358
|
+
const extra = (0, GenericFunctions_1.parseJsonObject)(this.getNodeParameter('additionalFields', itemIndex, '{}'));
|
|
359
|
+
await GenericFunctions_1.underChatApiMultipartRequest.call(this, '/chat/contacts', (0, GenericFunctions_1.withoutEmptyValues)({
|
|
360
|
+
...extra,
|
|
361
|
+
name: contactName,
|
|
362
|
+
phone_ddi: phoneDdi,
|
|
363
|
+
phone,
|
|
364
|
+
channel_ids: [workerId],
|
|
365
|
+
}), executorId);
|
|
366
|
+
contactId = await findContactId(this, executorId, phoneDdi, phone);
|
|
367
|
+
contactCreated = true;
|
|
368
|
+
}
|
|
369
|
+
if (!contactId)
|
|
370
|
+
throw new Error('A API não retornou o ID do contato após o cadastro');
|
|
371
|
+
const existingChat = await findActiveChat(this, executorId, contactId, phone, workerId, sectorId);
|
|
372
|
+
let officialContext;
|
|
373
|
+
if (prerequisites.isOfficial) {
|
|
374
|
+
const contextResponse = await GenericFunctions_1.underChatApiRequest.call(this, 'GET', existingChat
|
|
375
|
+
? `/chat/${recordId(existingChat, ['chat_id', 'id'])}/official-conversation/context`
|
|
376
|
+
: '/chat/official-opening/context', {}, existingChat ? {} : { worker_id: workerId, contact_id: contactId }, executorId);
|
|
377
|
+
officialContext = parseOfficialContext(contextResponse);
|
|
378
|
+
}
|
|
379
|
+
const selectionValue = this.getNodeParameter('officialTemplate', itemIndex, '');
|
|
380
|
+
if (!prerequisites.isOfficial && resourceId(selectionValue)) {
|
|
381
|
+
throw new Error('Template oficial não pode ser usado em um canal não oficial');
|
|
382
|
+
}
|
|
383
|
+
const selectedTemplate = officialContext
|
|
384
|
+
? selectTemplate(officialContext, selectionValue)
|
|
385
|
+
: undefined;
|
|
386
|
+
if (officialContext && parseTemplateSelection(selectionValue) && !selectedTemplate) {
|
|
387
|
+
throw new Error('O template selecionado não está aprovado para este canal');
|
|
388
|
+
}
|
|
389
|
+
if ((officialContext === null || officialContext === void 0 ? void 0 : officialContext.requiresTemplate) && !selectedTemplate) {
|
|
390
|
+
throw new Error(`Este canal exige um template oficial. Selecione uma opção aprovada: ${templateChoices(officialContext) || 'nenhum template disponível'}`);
|
|
391
|
+
}
|
|
392
|
+
if (selectedTemplate && (officialContext === null || officialContext === void 0 ? void 0 : officialContext.canSendTemplate) !== true) {
|
|
393
|
+
throw new Error('A janela oficial não permite enviar template neste momento');
|
|
394
|
+
}
|
|
395
|
+
const inputMode = this.getNodeParameter('templateVariableInputMode', itemIndex, 'fields');
|
|
396
|
+
const officialTemplate = selectedTemplate
|
|
397
|
+
? buildOfficialTemplate(selectedTemplate, inputMode, this.getNodeParameter('officialTemplateVariables', itemIndex, {}), this.getNodeParameter('officialTemplateVariablesJson', itemIndex, '[]'))
|
|
398
|
+
: undefined;
|
|
399
|
+
let chat;
|
|
400
|
+
let chatCreated = false;
|
|
401
|
+
let templateSent = false;
|
|
402
|
+
if (existingChat) {
|
|
403
|
+
chat = existingChat;
|
|
404
|
+
const chatId = requiredString(recordId(chat, ['chat_id', 'id']), 'Chat ID');
|
|
405
|
+
if (officialTemplate) {
|
|
406
|
+
const response = await GenericFunctions_1.underChatApiRequest.call(this, 'POST', `/chat/${chatId}/official-template`, officialTemplate, {}, executorId);
|
|
407
|
+
chat = (_a = (0, GenericFunctions_1.firstRecord)(response)) !== null && _a !== void 0 ? _a : chat;
|
|
408
|
+
templateSent = true;
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
else {
|
|
412
|
+
const response = await GenericFunctions_1.underChatApiRequest.call(this, 'POST', '/chat/start-with-contact', {
|
|
413
|
+
contact_id: contactId,
|
|
414
|
+
worker_id: workerId,
|
|
415
|
+
sector_id: sectorId,
|
|
416
|
+
...(officialTemplate ? { official_template: officialTemplate } : {}),
|
|
417
|
+
}, {}, executorId);
|
|
418
|
+
chat = (_b = (0, GenericFunctions_1.firstRecord)(response)) !== null && _b !== void 0 ? _b : {};
|
|
419
|
+
chatCreated = true;
|
|
420
|
+
templateSent = Boolean(officialTemplate);
|
|
421
|
+
}
|
|
422
|
+
const chatId = recordId(chat, ['chat_id', 'id']);
|
|
423
|
+
if (!chatId)
|
|
424
|
+
throw new Error('A API não retornou o ID do atendimento');
|
|
425
|
+
return {
|
|
426
|
+
contact_id: contactId,
|
|
427
|
+
contact_created: contactCreated,
|
|
428
|
+
chat_id: chatId,
|
|
429
|
+
chat_created: chatCreated,
|
|
430
|
+
chat_reused: !chatCreated,
|
|
431
|
+
worker: (_c = asRecord(chat.worker)) !== null && _c !== void 0 ? _c : prerequisites.worker,
|
|
432
|
+
sector: (_d = asRecord(chat.sector)) !== null && _d !== void 0 ? _d : prerequisites.sector,
|
|
433
|
+
official: prerequisites.isOfficial,
|
|
434
|
+
official_window: (_e = officialContext === null || officialContext === void 0 ? void 0 : officialContext.window) !== null && _e !== void 0 ? _e : null,
|
|
435
|
+
template: selectedTemplate
|
|
436
|
+
? { name: selectedTemplate.name, language: selectedTemplate.language, sent: templateSent }
|
|
437
|
+
: null,
|
|
438
|
+
chat,
|
|
439
|
+
};
|
|
440
|
+
}
|
|
441
|
+
catch (error) {
|
|
442
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, { itemIndex });
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
//# sourceMappingURL=StartChatByPhone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StartChatByPhone.js","sourceRoot":"","sources":["../../../nodes/UnderChat/StartChatByPhone.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { IExecuteFunctions, ILoadOptionsFunctions, INodeExecutionData, INodeListSearchResult, INodeType, INodeTypeDescription } from 'n8n-workflow';
|
|
2
|
+
import { getOfficialTemplateVariables, searchOfficialTemplates } from './StartChatByPhone';
|
|
2
3
|
declare function searchExecutors(this: ILoadOptionsFunctions, filter?: string): Promise<INodeListSearchResult>;
|
|
3
4
|
declare function searchWorkers(this: ILoadOptionsFunctions, filter?: string): Promise<INodeListSearchResult>;
|
|
4
5
|
declare function searchSectors(this: ILoadOptionsFunctions, filter?: string): Promise<INodeListSearchResult>;
|
|
@@ -8,10 +9,14 @@ export declare class UnderChat implements INodeType {
|
|
|
8
9
|
methods: {
|
|
9
10
|
listSearch: {
|
|
10
11
|
searchExecutors: typeof searchExecutors;
|
|
12
|
+
searchOfficialTemplates: typeof searchOfficialTemplates;
|
|
11
13
|
searchSectors: typeof searchSectors;
|
|
12
14
|
searchUsers: typeof searchUsers;
|
|
13
15
|
searchWorkers: typeof searchWorkers;
|
|
14
16
|
};
|
|
17
|
+
resourceMapping: {
|
|
18
|
+
getOfficialTemplateVariables: typeof getOfficialTemplateVariables;
|
|
19
|
+
};
|
|
15
20
|
};
|
|
16
21
|
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|
|
17
22
|
}
|