@lionchat/mcp-server 1.27.0 → 1.29.0
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/dist/client.js +16 -0
- package/dist/client.js.map +1 -1
- package/dist/docs/instructions.md +20 -0
- package/dist/docs/resources/best-practices.md +51 -0
- package/dist/docs/resources/filtros-e-relatorios.md +16 -0
- package/dist/docs/resources/glossary.md +8 -0
- package/dist/docs/resources/reports-guide.md +20 -2
- package/dist/docs/resources/troubleshooting.md +47 -2
- package/endpoints.json +123 -12
- package/package.json +1 -1
package/dist/client.js
CHANGED
|
@@ -20,6 +20,13 @@ const MAX_RETRIES_NETWORK = 1;
|
|
|
20
20
|
function getErrorMessage(status, body) {
|
|
21
21
|
switch (status) {
|
|
22
22
|
case 401:
|
|
23
|
+
// AIDEV-NOTE: [cargo-acessar-menus 02/10] O LionChat responde 401 com este texto quando o TOKEN e valido mas a
|
|
24
|
+
// pessoa nao pode fazer a acao (Pundit) — inclusive menu escondido pelo cargo ("Acessar menu X" desmarcado).
|
|
25
|
+
// Traduzir isso como "token invalido" fazia a IA mandar renovar credenciais que estavam certas.
|
|
26
|
+
if (isPermissionRefusal(body)) {
|
|
27
|
+
return 'Permission denied: your role does not allow this action (an administrator may have hidden this menu ' +
|
|
28
|
+
'in the custom role). The token is valid — do not ask the user to renew it.';
|
|
29
|
+
}
|
|
23
30
|
return 'Authentication failed. Check your token at Login > Profile Settings';
|
|
24
31
|
case 403:
|
|
25
32
|
return 'Permission denied. Your token may not have access to this resource';
|
|
@@ -38,6 +45,15 @@ function getErrorMessage(status, body) {
|
|
|
38
45
|
return `HTTP error ${status}`;
|
|
39
46
|
}
|
|
40
47
|
}
|
|
48
|
+
// AIDEV-NOTE: [cargo-acessar-menus 02/10] Recusa de PERMISSAO (Pundit) chega como 401 com este texto exato; o 401
|
|
49
|
+
// de token invalido/expirado vem com outro corpo. Comparacao pelo texto do servidor, sem adivinhar.
|
|
50
|
+
const PERMISSION_REFUSAL_TEXT = 'You are not authorized to do this action';
|
|
51
|
+
function isPermissionRefusal(body) {
|
|
52
|
+
if (!body || typeof body !== 'object')
|
|
53
|
+
return false;
|
|
54
|
+
const obj = body;
|
|
55
|
+
return obj.error === PERMISSION_REFUSAL_TEXT || obj.message === PERMISSION_REFUSAL_TEXT;
|
|
56
|
+
}
|
|
41
57
|
// AIDEV-NOTE: Extract validation details from 422 response body
|
|
42
58
|
function extractValidationDetails(body) {
|
|
43
59
|
if (body && typeof body === 'object') {
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,2DAA2D;AAC3D,6EAA6E;AAsB7E,yEAAyE;AACzE,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzB,MAAM,CAAS;IACf,YAAY,CAAU;IAEtC,YAAY,OAAe,EAAE,MAAc,EAAE,YAAsB;QACjE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;CACF;AAED,MAAM,UAAU,GAAG,MAAM,CAAC;AAC1B,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,wDAAwD;AACxD,SAAS,eAAe,CAAC,MAAc,EAAE,IAAa;IACpD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,GAAG;YACN,OAAO,qEAAqE,CAAC;QAC/E,KAAK,GAAG;YACN,OAAO,oEAAoE,CAAC;QAC9E,KAAK,GAAG;YACN,OAAO,iDAAiD,CAAC;QAC3D,KAAK,GAAG,CAAC,CAAC,CAAC;YACT,MAAM,OAAO,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;YAC/C,OAAO,qBAAqB,OAAO,EAAE,CAAC;QACxC,CAAC;QACD,KAAK,GAAG;YACN,OAAO,8BAA8B,CAAC;QACxC;YACE,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;gBAClB,OAAO,wCAAwC,CAAC;YAClD,CAAC;YACD,OAAO,cAAc,MAAM,EAAE,CAAC;IAClC,CAAC;AACH,CAAC;AAED,gEAAgE;AAChE,SAAS,wBAAwB,CAAC,IAAa;IAC7C,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAA+B,CAAC;QAC5C,6CAA6C;QAC7C,IAAI,GAAG,CAAC,OAAO,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACnD,OAAO,GAAG,CAAC,OAAO,CAAC;QACrB,CAAC;QACD,IAAI,GAAG,CAAC,KAAK,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/C,OAAO,GAAG,CAAC,KAAK,CAAC;QACnB,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5C,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,0EAA0E;AAC1E,SAAS,cAAc,CAAC,GAAY;IAClC,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACtC,OAAO,CACL,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC;YAC5B,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC1B,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC;YACzB,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC;YAC5B,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;YACrB,GAAG,CAAC,IAAI,KAAK,YAAY,CAC1B,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8CAA8C;AAC9C,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,sEAAsE;AACtE,4DAA4D;AAC5D,mCAAmC;AACnC,oCAAoC;AACpC,SAAS,iBAAiB,CAAC,IAAa;IACtC,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,MAAM,GAAG,GAAG,IAA+B,CAAC;QAE5C,sGAAsG;QACtG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3E,MAAM,IAAI,GAAG,GAAG,CAAC,IAA+B,CAAC;YACjD,mFAAmF;YACnF,2FAA2F;YAC3F,wFAAwF;YACxF,oDAAoD;YACpD,MAAM,QAAQ,GACZ,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;gBAChC,CAAC,CAAC,IAAI,CAAC,SAAS;gBAChB,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;oBAC9B,CAAC,CAAC,IAAI,CAAC,KAAK;oBACZ,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;wBACpC,CAAC,CAAC,IAAI,CAAC,WAAW;wBAClB,CAAC,CAAC,CAAC,CAAC;YACZ,MAAM,WAAW,GACf,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAEhE,8FAA8F;YAC9F,8FAA8F;YAC9F,2FAA2F;YAC3F,kGAAkG;YAClG,gGAAgG;YAChG,MAAM,aAAa,GAAI,GAAG,CAAC,OAAqB,CAAC,MAAM,CAAC;YACxD,MAAM,OAAO,GACX,aAAa,GAAG,CAAC;gBACjB,CAAC,QAAQ,KAAK,CAAC,IAAI,WAAW,GAAG,aAAa,GAAG,QAAQ,CAAC,CAAC;YAC7D,MAAM,UAAU,GACd,QAAQ,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC;gBAC/B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;gBACrC,CAAC,CAAC,OAAO;oBACP,CAAC,CAAC,WAAW,GAAG,CAAC;oBACjB,CAAC,CAAC,WAAW,CAAC;YAEpB,OAAO;gBACL,IAAI,EAAE,GAAG,CAAC,OAAO;gBACjB,UAAU,EAAE;oBACV,YAAY,EAAE,WAAW;oBACzB,WAAW,EAAE,UAAU;oBACvB,WAAW,EAAE,QAAQ;oBACrB,QAAQ,EAAE,OAAO;iBAClB;aAC0B,CAAC;QAChC,CAAC;QAED,wEAAwE;QACxE,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACxE,MAAM,IAAI,GAAG,GAAG,CAAC,IAA+B,CAAC;YACjD,6FAA6F;YAC7F,0FAA0F;YAC1F,uFAAuF;YACvF,MAAM,UAAU,GACd,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;gBAClC,CAAC,CAAC,IAAI,CAAC,WAAW;gBAClB,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;oBAClC,CAAC,CAAC,IAAI,CAAC,SAAS;oBAChB,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;wBAC9B,CAAC,CAAC,IAAI,CAAC,KAAK;wBACZ,CAAC,CAAE,GAAG,CAAC,IAAkB,CAAC,MAAM,CAAC;YACzC,MAAM,WAAW,GACf,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ;gBACnC,CAAC,CAAC,IAAI,CAAC,YAAY;gBACnB,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;oBAC7B,CAAC,CAAC,IAAI,CAAC,IAAI;oBACX,CAAC,CAAC,CAAC,CAAC;YACV,6FAA6F;YAC7F,4FAA4F;YAC5F,8BAA8B;YAC9B,MAAM,QAAQ,GACZ,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC;gBAC1C,CAAC,CAAC,IAAI,CAAC,GAAG;gBACV,CAAC,CAAC,IAAI,CAAC,GAAG,CAAE,GAAG,CAAC,IAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAClD,MAAM,UAAU,GACd,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;gBAClC,CAAC,CAAC,IAAI,CAAC,WAAW;gBAClB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC;YAEvC,OAAO;gBACL,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,UAAU,EAAE;oBACV,YAAY,EAAE,WAAW;oBACzB,WAAW,EAAE,UAAU;oBACvB,WAAW,EAAE,UAAU;oBACvB,QAAQ,EAAE,WAAW,GAAG,UAAU;iBACnC;aAC0B,CAAC;QAChC,CAAC;QAED,kGAAkG;QAClG,iGAAiG;QACjG,wGAAwG;QACxG,IAAI,GAAG,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACzE,MAAM,KAAK,GAAG,GAAG,CAAC,IAA+B,CAAC;YAClD,IACE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;gBAC5B,KAAK,CAAC,IAAI;gBACV,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAC9B,CAAC;gBACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAA+B,CAAC;gBACnD,MAAM,QAAQ,GACZ,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;oBAChC,CAAC,CAAC,IAAI,CAAC,SAAS;oBAChB,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;wBAC9B,CAAC,CAAC,IAAI,CAAC,KAAK;wBACZ,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;4BACpC,CAAC,CAAC,IAAI,CAAC,WAAW;4BAClB,CAAC,CAAC,CAAC,CAAC;gBACZ,MAAM,WAAW,GACf,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChE,MAAM,aAAa,GAAI,KAAK,CAAC,OAAqB,CAAC,MAAM,CAAC;gBAC1D,MAAM,OAAO,GACX,aAAa,GAAG,CAAC;oBACjB,CAAC,QAAQ,KAAK,CAAC,IAAI,WAAW,GAAG,aAAa,GAAG,QAAQ,CAAC,CAAC;gBAC7D,MAAM,UAAU,GACd,QAAQ,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC;oBAC/B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;oBACrC,CAAC,CAAC,OAAO;wBACP,CAAC,CAAC,WAAW,GAAG,CAAC;wBACjB,CAAC,CAAC,WAAW,CAAC;gBACpB,OAAO;oBACL,IAAI,EAAE,KAAK,CAAC,OAAO;oBACnB,UAAU,EAAE;wBACV,YAAY,EAAE,WAAW;wBACzB,WAAW,EAAE,UAAU;wBACvB,WAAW,EAAE,QAAQ;wBACrB,QAAQ,EAAE,OAAO;qBAClB;iBAC0B,CAAC;YAChC,CAAC;QACH,CAAC;QAED,oDAAoD;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4DAA4D;IAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,OAAO,cAAc;IACjB,MAAM,CAAS;IAEvB,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,+EAA+E;IAC/E,KAAK,CAAC,OAAO,CAAC,OAAuB;QACnC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QAEvC,iFAAiF;QACjF,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEhC,6EAA6E;QAC7E,gGAAgG;QAChG,iDAAiD;QACjD,MAAM,OAAO,GAA2B;YACtC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;YACtC,YAAY,EAAE,wBAAwB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;SAC5D,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1F,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;QAC/C,CAAC;QAED,MAAM,YAAY,GAAgB;YAChC,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE;YAC5B,OAAO;SACR,CAAC;QAEF,IAAI,OAAO,EAAE,CAAC;YACZ,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;QAED,uCAAuC;QACvC,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAClD,CAAC;IAED,+EAA+E;IACvE,QAAQ,CAAC,IAAY;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QAC3D,OAAO,GAAG,IAAI,GAAG,SAAS,EAAE,CAAC;IAC/B,CAAC;IAED,6FAA6F;IACrF,KAAK,CAAC,gBAAgB,CAC5B,GAAW,EACX,YAAyB;QAEzB,IAAI,SAAkB,CAAC;QACvB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,cAAc,GAAG,CAAC,CAAC;QAEvB,8EAA8E;QAC9E,kFAAkF;QAClF,kFAAkF;QAClF,MAAM,UAAU,GAAG,CAAC,YAAY,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QAChE,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAE/F,kFAAkF;QAClF,2DAA2D;QAC3D,MAAM,WAAW,GAAG,CAAC,GAAG,eAAe,GAAG,eAAe,GAAG,mBAAmB,CAAC;QAEhF,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;YACvD,IAAI,CAAC;gBACH,8CAA8C;gBAC9C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;gBACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC,CAAC;gBAEnE,IAAI,QAAkB,CAAC;gBACvB,IAAI,CAAC;oBACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;wBAC1B,GAAG,YAAY;wBACf,MAAM,EAAE,UAAU,CAAC,MAAM;qBAC1B,CAAC,CAAC;gBACL,CAAC;wBAAS,CAAC;oBACT,YAAY,CAAC,SAAS,CAAC,CAAC;gBAC1B,CAAC;gBAED,8EAA8E;gBAC9E,sEAAsE;gBACtE,iFAAiF;gBACjF,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACtC,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;gBACrE,IAAI,WAAW,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;oBAC/B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACpD,CAAC;gBAED,mCAAmC;gBACnC,iFAAiF;gBACjF,oFAAoF;gBACpF,iFAAiF;gBACjF,8EAA8E;gBAC9E,gCAAgC;gBAChC,IAAI,YAAqB,CAAC;gBAC1B,IAAI,WAAW,EAAE,CAAC;oBAChB,YAAY,GAAG,SAAS,CAAC;gBAC3B,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC;wBACH,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACrC,CAAC;oBAAC,MAAM,CAAC;wBACP,YAAY,GAAG,OAAO,CAAC;oBACzB,CAAC;gBACH,CAAC;gBAED,6CAA6C;gBAC7C,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;oBAChB,OAAO,iBAAiB,CAAC,YAAY,CAAC,CAAC;gBACzC,CAAC;gBAED,wEAAwE;gBACxE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,UAAU,GAAG,eAAe,EAAE,CAAC;oBAC5D,UAAU,EAAE,CAAC;oBACb,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;oBACvD,IAAI,OAAe,CAAC;oBACpB,IAAI,UAAU,EAAE,CAAC;wBACf,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;wBACzC,6EAA6E;wBAC7E,kEAAkE;wBAClE,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;oBACxF,CAAC;yBAAM,CAAC;wBACN,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa;oBAC7D,CAAC;oBACD,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;oBACrB,SAAS;gBACX,CAAC;gBAED,8EAA8E;gBAC9E,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,YAAY,IAAI,UAAU,GAAG,eAAe,EAAE,CAAC;oBAC3E,UAAU,EAAE,CAAC;oBACb,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;oBAClB,SAAS;gBACX,CAAC;gBAED,kEAAkE;gBAClE,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;gBAC/D,MAAM,IAAI,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YACrE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,8DAA8D;gBAC9D,IAAI,GAAG,YAAY,gBAAgB,EAAE,CAAC;oBACpC,MAAM,GAAG,CAAC;gBACZ,CAAC;gBAED,yFAAyF;gBACzF,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,YAAY,IAAI,cAAc,GAAG,mBAAmB,EAAE,CAAC;oBAChF,cAAc,EAAE,CAAC;oBACjB,SAAS,GAAG,GAAG,CAAC;oBAChB,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;oBAClB,SAAS;gBACX,CAAC;gBAED,0CAA0C;gBAC1C,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxB,MAAM,IAAI,gBAAgB,CACxB,uCAAuC,IAAI,CAAC,MAAM,CAAC,OAAO,+CAA+C,EACzG,CAAC,EACD,SAAS,CACV,CAAC;gBACJ,CAAC;gBAED,yCAAyC;gBACzC,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QAED,yDAAyD;QACzD,MAAM,SAAS,IAAI,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACnE,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -396,6 +396,26 @@ trava a criação.
|
|
|
396
396
|
|
|
397
397
|
**NUNCA sobrescreva por inferência dados já preenchidos.** Em especial, **NUNCA sobrescreva telefone ou e-mail existente de um contato** — se já há valor preenchido, pergunte antes de alterar.
|
|
398
398
|
|
|
399
|
+
**O cliente mudou de número? NÃO é `lionchat_contacts_update`.** Trocar `phone_number` por lá muda o
|
|
400
|
+
que aparece na tela e **não redireciona as mensagens**: o endereço de entrega vem do crachá de cada
|
|
401
|
+
caixa e de um cache por contato, não da ficha. Medido em 01/10/2026 — depois de editar só a ficha, todas
|
|
402
|
+
as conversas seguiam enviando para o número ANTIGO nos dois canais de WhatsApp, sem erro nenhum.
|
|
403
|
+
|
|
404
|
+
| Situação | Tool |
|
|
405
|
+
|---|---|
|
|
406
|
+
| A pessoa **mudou de número** | `lionchat_contacts_change_phone` |
|
|
407
|
+
| **Corrigir erro de digitação** no cadastro de quem nunca conversou | `lionchat_contacts_update` |
|
|
408
|
+
|
|
409
|
+
`lionchat_contacts_change_phone` mantém a mesma conversa, acerta o endereço nas duas caixas de WhatsApp,
|
|
410
|
+
escreve uma pílula registrando a mudança e limpa a marca "não tem WhatsApp" do número antigo. Recusa
|
|
411
|
+
quando o número é o mesmo, é inválido, o contato é um **grupo**, ou o número já pertence a outra ficha
|
|
412
|
+
(devolve 409 dizendo de quem é).
|
|
413
|
+
|
|
414
|
+
**Quando o número já é de outra ficha:** o parâmetro `merge_with` junta as duas e troca numa operação
|
|
415
|
+
só — mas **apaga** a outra ficha e **não tem como desfazer**. Antes de usar, chame
|
|
416
|
+
`lionchat_contact_merge_preview`, **mostre ao usuário o que será descartado e espere a confirmação
|
|
417
|
+
dele**. Nunca use `merge_with` por conta própria.
|
|
418
|
+
|
|
399
419
|
## 8. Índice de roteamento (intenção → tool certa)
|
|
400
420
|
|
|
401
421
|
Antes de escolher a ferramenta, cheque se a intenção bate com a coluna da direita. Erros comuns aqui levam a ações de escrita disfaradas de leitura.
|
|
@@ -463,6 +463,22 @@ Meta só aceita isso num **dataset vinculado à WABA**, nunca no pixel do site (
|
|
|
463
463
|
`lionchat:caixa_sem_token`, `lionchat:dataset_id_invalido`, `lionchat:desligado_pelo_cliente`,
|
|
464
464
|
`lionchat:nome_sem_equivalente_whatsapp`; da Meta: `"<subcode>: <mensagem>"` (ex.: 2804087 = clique
|
|
465
465
|
do anúncio inválido/expirado).
|
|
466
|
+
- **Caixa QR Code (WhatsApp não oficial) atribui campanha pelo MESMO caminho que a oficial** (desde
|
|
467
|
+
01/10/2026). A identidade do negócio é a **Página do Facebook que rodou o anúncio** no lugar da
|
|
468
|
+
conta do WhatsApp Business (que caixa de QR Code não tem), e o evento vai para o pixel que a conta
|
|
469
|
+
já usa. Vale a régua normal: `degraded=true` + `fallback_reason` + `action_source`.
|
|
470
|
+
`action_source: business_messaging` = saiu como anúncio de WhatsApp; `website` = saiu como site.
|
|
471
|
+
**É um evento só** — quando a Meta recusa o de mensagem, ele é reenviado como site
|
|
472
|
+
automaticamente, e o motivo fica em `fallback_reason`.
|
|
473
|
+
**Motivo mais comum nessa caixa:** `"2804065: ..."` — a Página do anúncio não está vinculada ao
|
|
474
|
+
conjunto de dados. O cliente resolve sozinho no Gerenciador de Eventos da Meta (abrir o conjunto de
|
|
475
|
+
dados > Configurações > Dados vinculados > conectar a Página). Cabe **uma** Página por conjunto de
|
|
476
|
+
dados. Outros: `"2804072: ..."` (clique e Página de anúncios diferentes) e `"2804087: ..."` (clique
|
|
477
|
+
inválido ou expirado).
|
|
478
|
+
**NÃO existe mais** `qr_page_attribution` na resposta, nem os motivos `dataset_indisponivel`,
|
|
479
|
+
`sem_pagina_do_anuncio`, `pagina_sem_conexao` e `dataset_e_o_proprio_pixel`: o desenho de 30/09 que
|
|
480
|
+
criava um conjunto de dados próprio para a Página foi removido em 01/10 (exigia a permissão
|
|
481
|
+
`page_events`, que o aplicativo só tem em acesso padrão, e entregou zero em produção).
|
|
466
482
|
- Recusa ao vincular (422 com `subcode`, ex.: 2804116 / "whatsapp_business_manage_events"): a chave da
|
|
467
483
|
caixa não tem a permissão — reconectar a caixa pelo Cadastro Incorporado da Meta; nunca pedir o token
|
|
468
484
|
do pixel para isso. Um 401/403 da caixa NUNCA desliga o pixel da conta (site, formulário e agenda
|
|
@@ -559,6 +575,13 @@ com uma única agenda liberada ela assume essa; com duas ou mais, recusa nomeand
|
|
|
559
575
|
restringir quais agendas a IA oferece, continua valendo `captain_assistants_update` com
|
|
560
576
|
`config.booking_event_type_ids`.
|
|
561
577
|
|
|
578
|
+
**1-A. Quem limita a busca de horário é o DONO, não a IA (01/10/2026).** A janela de busca sai do
|
|
579
|
+
`max_advance_days` do tipo de agendamento; sem limite configurado, vale o teto de 30 dias. A IA não
|
|
580
|
+
consegue mais encurtar essa busca: ela varre dia a dia até achar vaga ou bater no limite. Consequência
|
|
581
|
+
para quem configura pelo conector: se a IA está dizendo que "não há horário", o número a conferir é o
|
|
582
|
+
`max_advance_days` do tipo (`lionchat_booking_event_types_update`), não o comportamento da IA. Agenda com
|
|
583
|
+
vaga só daqui a 20 dias e janela configurada em 7 nunca oferece nada.
|
|
584
|
+
|
|
562
585
|
**2. A IA entrega o link do Meet sozinha.** O link do Google Meet não existe no instante em que o
|
|
563
586
|
agendamento é criado (nasce depois da ida ao Google), e antes a IA prometia o link e nunca voltava.
|
|
564
587
|
Agora o sistema arma uma volta de ~25s; sem link ainda, ele remarca sozinho (+40s) sem gastar turno
|
|
@@ -983,6 +1006,34 @@ na descrição** — a tela já as mostra na coluna "Permissões". Uma descriç
|
|
|
983
1006
|
escondeu o cargo recém-criado na lista de Funções personalizadas da conta 1 (a tela foi corrigida
|
|
984
1007
|
para cortar o texto com reticências, mas a descrição longa continua ilegível ali).
|
|
985
1008
|
|
|
1009
|
+
## Cargo personalizado: esconder menus e "ver conversas dos colegas" (02/10/2026)
|
|
1010
|
+
|
|
1011
|
+
Permissão nunca TIRA nada — toda permissão só soma ao atendente comum. Para TIRAR um menu de um
|
|
1012
|
+
cargo existe o campo `hidden_menus` em `custom_roles_create` / `custom_roles_update`:
|
|
1013
|
+
|
|
1014
|
+
- Lista dos menus **escondidos** (as caixinhas "Acessar menu X" desmarcadas na tela). Valores:
|
|
1015
|
+
`contacts`, `companies`, `kanban`, `flows`, `macros`, `ai_agent`, `help_center`, `agenda`,
|
|
1016
|
+
`internal_chat`. `[]` = vê todos (é como todo cargo nasce). **`flows` vale para Fluxos E Automação
|
|
1017
|
+
juntos** (na tela: "Acessar menu Fluxos e Automação"): esconde os dois ou libera os dois. A Automação
|
|
1018
|
+
continua aparecendo só para quem também tem `automation_manage`.
|
|
1019
|
+
- **Substitui a lista inteira.** Para esconder mais um menu, leia o cargo (`custom_roles_show`),
|
|
1020
|
+
acrescente e mande a lista toda. Não mandar o campo deixa o que está gravado.
|
|
1021
|
+
- Menu escondido some da barra lateral e a tela dele fica fechada; o que a pessoa usa **dentro da
|
|
1022
|
+
conversa** continua (executar macro, ligar/desligar a IA, agendar tarefa, campo Empresa do contato).
|
|
1023
|
+
Com Kanban escondido ela não vê card em lugar nenhum, nem os dela.
|
|
1024
|
+
- O servidor recusa (422) esconder um menu e dar o "Gerenciar" da mesma área no mesmo cargo
|
|
1025
|
+
(ex.: `kanban` escondido com `kanban_manage`; `flows` escondido com `flowbuilder_manage` ou
|
|
1026
|
+
`automation_manage`). Tire a permissão junto.
|
|
1027
|
+
- Vale na hora para quem tem o cargo; administrador nunca perde menu.
|
|
1028
|
+
- Quando a pessoa tenta abrir algo escondido, a API responde **401 "You are not authorized to do
|
|
1029
|
+
this action"** — é falta de permissão, não token vencido (ver `troubleshooting.md`).
|
|
1030
|
+
|
|
1031
|
+
Permissão nova `conversation_assigned_manage` — "Ver conversas dos colegas": a pessoa vê as conversas
|
|
1032
|
+
que **já têm responsável** nas caixas de que é membro, mas nunca a fila sem dono. É o jeito de montar
|
|
1033
|
+
"vê tudo, menos as não atribuídas": marque essa + `conversation_team_manage` +
|
|
1034
|
+
`conversation_participating_manage`, sem `conversation_manage` e sem `conversation_unassigned_manage`.
|
|
1035
|
+
`conversation_manage` já inclui as quatro de conversa; mande a lista completa como a tela faz.
|
|
1036
|
+
|
|
986
1037
|
## Entrar num grupo por convite (17/09/2026)
|
|
987
1038
|
|
|
988
1039
|
Só em caixa de WhatsApp QR Code (`Channel::Waha`). São DUAS tools e a ordem importa.
|
|
@@ -298,6 +298,22 @@ custom_dashboards_preview_widget
|
|
|
298
298
|
> `today`/`yesterday` em vez de datas fixas, que envelhecem.
|
|
299
299
|
> ⚠️ O `total` da tabela **não é a soma das linhas** — cada métrica tem contagem própria.
|
|
300
300
|
|
|
301
|
+
**R8b — Tabela do time de atendimento com tempo de resposta e ligações (02/10/2026):**
|
|
302
|
+
|
|
303
|
+
```json
|
|
304
|
+
custom_dashboards_preview_widget
|
|
305
|
+
widget_type=agent_report chart_type=table dimension=agent scope_type=team scope_id=142
|
|
306
|
+
time_range=yesterday timezone_offset=-3
|
|
307
|
+
columns=[
|
|
308
|
+
{"metric":"leads"}, {"metric":"atendidos"},
|
|
309
|
+
{"metric":"primeira_resposta"}, {"metric":"tempo_resposta"},
|
|
310
|
+
{"metric":"ligacoes_feitas"}, {"metric":"taxa_ligacao"}
|
|
311
|
+
]
|
|
312
|
+
```
|
|
313
|
+
> ⚠️ `primeira_resposta`/`tempo_resposta` vêm em **segundos**, contados só no horário comercial da conta.
|
|
314
|
+
> `taxa_ligacao` = ligações feitas ÷ leads (ou `"denominator":"atendidos"`). Essas 4 colunas só valem com
|
|
315
|
+
> `dimension: agent` — em tabela por equipe/caixa o salvamento volta 422 com o motivo.
|
|
316
|
+
|
|
301
317
|
**R9 — Salvar isso como relatório na tela do cliente:** teste com o R8, mostre o número, confirme
|
|
302
318
|
com o usuário e só então:
|
|
303
319
|
```json
|
|
@@ -514,6 +514,14 @@ cards daquele funil).
|
|
|
514
514
|
- **Plano B** (`fallback_reason` no `meta_capi_events`): o evento de anúncio saiu como SITE. O motivo
|
|
515
515
|
fica gravado (`lionchat:*` nosso ou `"<subcode>: <mensagem>"` da Meta); na tela é o selo âmbar
|
|
516
516
|
"site (plano B)" e o filtro "Só plano B" (`degraded=true` na API).
|
|
517
|
+
- **Atribuição de campanha em caixa QR Code** (desde 2026-10-01): caixa de QR Code não tem conta do
|
|
518
|
+
WhatsApp Business, então a identidade do negócio no evento é a **Página do Facebook que rodou o
|
|
519
|
+
anúncio** (`page_id` no `user_data`), e o destino é o pixel que a conta já usa. Daí em diante vale
|
|
520
|
+
a régua normal: `action_source` diz se saiu como `business_messaging` ou `website`, e
|
|
521
|
+
`fallback_reason` diz por que degradou. **Um evento por conversão** — nunca dois.
|
|
522
|
+
Para a campanha contar, o cliente precisa ter vinculado a Página ao conjunto de dados no
|
|
523
|
+
Gerenciador de Eventos da Meta; sem isso a recusa é `2804065` e o evento sai como site.
|
|
524
|
+
O campo `qr_page_attribution`, que existiu entre 30/09 e 01/10/2026, **não existe mais**.
|
|
517
525
|
|
|
518
526
|
## Idiomas da plataforma (2026-06)
|
|
519
527
|
|
|
@@ -659,7 +659,7 @@ Não é consulta livre: escolha um `widget_type` e preencha **só os campos daqu
|
|
|
659
659
|
| `sla_summary` | `time_range` | `sla` (Enterprise) |
|
|
660
660
|
| `funnel_stages` | `funnel_id` · `date_basis` (created/moved/closed/any) · `status` (all/open/won/lost) · `measure` (count padrão / value = soma do valor dos cards) · `time_range` | `kanban_board` |
|
|
661
661
|
| `stage_entries` | `funnel_id` · `measure` (count/value) · `time_range` — quantos cards DISTINTOS ENTRARAM em cada etapa no período (histórico desde 12/07/2026) | `kanban_board` |
|
|
662
|
-
| `calls_report` | `dimension` (agent/inbox) · `scope_type` (
|
|
662
|
+
| `calls_report` | `dimension` (agent/inbox) · `scope_type` (`inbox` desde 27/08/2026; `team` desde 02/10/2026, só com `dimension: agent`, opcional) + `scope_id` · `time_range` — ligações / atendidas / não atendidas / não concluídas / tempo total / tempo médio | — |
|
|
663
663
|
| `lead_origin` | `time_range` | `liontrack` |
|
|
664
664
|
| `agent_report` | `dimension` (agent/team/inbox) · `scope_type`+`scope_id` · `columns[]` · `time_range` | — |
|
|
665
665
|
| `eclinica_no_show` | `dimension` (unit / operator / date) · `time_range` · `no_show_over_scheduled` (true/false, nasce desligada) · `only_first_visit` (true/false, nasce desligada) — faltas na agenda da e-Clínica: agendados / compareceram / faltaram / desmarcados / sem desfecho / % de falta (o rótulo da coluna declara a base) | `eclinica_integration` |
|
|
@@ -721,6 +721,21 @@ funil sem nome chegam indistinguíveis pra quem lê depois.
|
|
|
721
721
|
`label_count` (exige `label_id`) e `conversao` (exige `denominator` e `numerator`, que é **lista de
|
|
722
722
|
IDs de etiqueta**, nunca nome de métrica).
|
|
723
723
|
|
|
724
|
+
**Quatro colunas por PESSOA (novas, 02/10/2026 — só com `dimension: agent`; em tabela por equipe ou
|
|
725
|
+
caixa o salvamento é RECUSADO com o motivo):**
|
|
726
|
+
|
|
727
|
+
| `metric` | O que mostra | Cuidado |
|
|
728
|
+
|---|---|---|
|
|
729
|
+
| `primeira_resposta` | Tempo **médio** da 1ª resposta do atendente | Conta **só o horário comercial da conta** (o do SLA). Sem horário ligado na conta, cai no relógio corrido. O início é quando a IA passou a conversa (ou a reabertura/criação), não o instante da atribuição — pode divergir do SLA por alguns minutos. Vem em segundos; quem não respondeu nada no período vem vazio (travessão), nunca "0s" |
|
|
730
|
+
| `tempo_resposta` | Tempo médio entre respostas, depois da 1ª | Mesma regra de horário. Registro de `reply_time` |
|
|
731
|
+
| `ligacoes_feitas` | Ligações que a pessoa **fez** (`outbound`), atendidas ou não | Recebidas não entram. Acompanha o recorte por caixa; VTCall e Zenvia quase não gravam caixa |
|
|
732
|
+
| `taxa_ligacao` | Ligações feitas ÷ leads, em % | `denominator` opcional: `leads` (padrão, a definição do Wesley — "100 leads, 10 ligações = 10%") ou `atendidos`; outro valor é recusado. Pessoa sem lead dá 0,0%, nunca erro |
|
|
733
|
+
|
|
734
|
+
O `as` dessas colunas é honrado (diferente das métricas núcleo). Exemplo de bloco do Instituto Homem:
|
|
735
|
+
`{"widget_type":"agent_report","chart_type":"table","dimension":"agent","scope_type":"team","scope_id":142,
|
|
736
|
+
"columns":[{"metric":"leads"},{"metric":"atendidos"},{"metric":"primeira_resposta"},
|
|
737
|
+
{"metric":"tempo_resposta"},{"metric":"ligacoes_feitas"},{"metric":"taxa_ligacao"}]}`.
|
|
738
|
+
|
|
724
739
|
### Como ler a resposta (campo `shape`)
|
|
725
740
|
|
|
726
741
|
| `shape` | Estrutura | Cuidado |
|
|
@@ -739,7 +754,10 @@ IDs de etiqueta**, nunca nome de métrica).
|
|
|
739
754
|
o que fizeram naquela caixa — é o desenho de "relatório por médico/unidade"). `inbox` +
|
|
740
755
|
`dimension: team` é RECUSADO com motivo. No `calls_report`, `scope_type: inbox` conta só as
|
|
741
756
|
ligações daquela caixa — **ligação sem caixa fica de fora** (VTCall ~90% e Zenvia 100% das
|
|
742
|
-
ligações não têm caixa; LionCalls e Wavoip têm em 100%).
|
|
757
|
+
ligações não têm caixa; LionCalls e Wavoip têm em 100%). **Desde 02/10/2026 o `calls_report`
|
|
758
|
+
também aceita `scope_type: team`** (recorta as LINHAS: só quem é da equipe, inclusive quem saiu
|
|
759
|
+
dela; só com `dimension: agent`, com `inbox` é recusado). A linha "Sem responsável" (ligação que
|
|
760
|
+
ninguém atendeu) **continua aparecendo** de propósito. Confundir troca a conta inteira.
|
|
743
761
|
2. **Campo fora da lista é descartado em silêncio.** Se um valor "não fez efeito", provavelmente o
|
|
744
762
|
nome do campo está errado.
|
|
745
763
|
3. **Sempre envie `timezone_offset` em HORAS, derivado do fuso DA CONTA** (`account_show.timezone`;
|
|
@@ -19,9 +19,18 @@ Input malformado. Causas comuns:
|
|
|
19
19
|
**Ação:** Releia a mensagem de erro. Corrija o payload. NÃO retry sem mudar nada.
|
|
20
20
|
|
|
21
21
|
### 401 Unauthorized
|
|
22
|
-
|
|
22
|
+
Há DOIS tipos de 401 — leia o corpo da resposta antes de concluir:
|
|
23
23
|
|
|
24
|
-
**
|
|
24
|
+
- **Corpo `{"error": "You are not authorized to do this action"}`** = o token está CERTO, mas a pessoa
|
|
25
|
+
não pode fazer aquela ação. Inclui o caso de o administrador ter escondido o menu no cargo
|
|
26
|
+
personalizado (caixinha "Acessar menu X" desmarcada: Contatos, Empresas, Kanban, Fluxos e Automação, Macros,
|
|
27
|
+
Agente de IA, Central de ajuda, Agenda ou Chat interno). **NÃO peça para renovar o token.** Diga ao
|
|
28
|
+
usuário que o cargo dele não libera aquela área e que quem resolve é um administrador da conta
|
|
29
|
+
(desmarcar a ocultação em Configurações > Funções personalizadas, ou dar outro cargo).
|
|
30
|
+
- **Qualquer outro corpo** (ex.: "You need to sign in or sign up before continuing") = token de API
|
|
31
|
+
inválido ou expirado. Parar e reportar que precisa renovar as credenciais.
|
|
32
|
+
|
|
33
|
+
**Ação nos dois casos:** NÃO retry — vai falhar igual.
|
|
25
34
|
|
|
26
35
|
### 403 Forbidden
|
|
27
36
|
Token válido, mas SEM permissão pra essa ação.
|
|
@@ -617,6 +626,42 @@ abre esse canal e nunca vê isso.
|
|
|
617
626
|
Correção (v1.15.1): o servidor manda um `ping` a cada 30 s enquanto o canal está aberto.
|
|
618
627
|
Interruptor: `MCP_KEEPALIVE_INTERVAL_MS` (0 = desligado). Detalhe: `docs/plans/mcp-keepalive-cloudflare/`.
|
|
619
628
|
|
|
629
|
+
## Conector REMOTO parou de funcionar e só volta reconectando na mão — CORRIGIDO na v1.27.0
|
|
630
|
+
|
|
631
|
+
Vale SÓ para o conector remoto (`mcp.lionchat.com.br`). O conector local (npm, stdio) nunca teve isso.
|
|
632
|
+
|
|
633
|
+
Sintoma, como o cliente relata: *"o MCP caiu"*, *"deu Server not initialized"*, *"parou de responder e
|
|
634
|
+
só voltou quando eu desconectei e conectei o conector de novo"*. Todas as chamadas falham, não só
|
|
635
|
+
algumas, e **não volta sozinho** — nem esperando, nem fechando e abrindo o chat. O que resolve é ir em
|
|
636
|
+
Conectores e reconectar.
|
|
637
|
+
|
|
638
|
+
Causa (até a v1.26.1): o servidor guardava cada conexão **na memória**. Quando o pod reiniciava (deploy,
|
|
639
|
+
troca de nó, queda de máquina), a memória ia embora e o pedido seguinte do cliente recebia
|
|
640
|
+
`400 Server not initialized`. O programa do cliente trata só 401/403/405 e **desiste em definitivo** com
|
|
641
|
+
qualquer outro código — ele nunca descarta o número de sessão por conta própria. Daí o "só volta
|
|
642
|
+
reconectando": reconectar é o único jeito de ele pedir um número novo.
|
|
643
|
+
Caso real (01/10/2026): um cliente levou **28 recusas em 2 minutos** e ficou sem o MCP até alguém
|
|
644
|
+
reconectar; ninguém foi avisado de nada.
|
|
645
|
+
|
|
646
|
+
Correção (v1.27.0, 01/10/2026): o servidor não guarda mais sessão — cada pedido se resolve sozinho com
|
|
647
|
+
as credenciais que já vêm nele. O número de sessão antigo passa a ser ignorado em vez de recusado, e o
|
|
648
|
+
reinício do pod fica invisível para quem está usando.
|
|
649
|
+
|
|
650
|
+
O que NÃO mudou, para quem perguntar:
|
|
651
|
+
- A conta em que a IA age continua a mesma (a escolha do `lionchat_switch_account` é guardada e lida em
|
|
652
|
+
todo pedido novo). **Mudou um detalhe:** a conta escolhida agora vale para TODAS as janelas daquela
|
|
653
|
+
pessoa. Antes, cada janela tinha a sua — mas só até a próxima reconexão, que acontece sozinha a cada
|
|
654
|
+
poucos minutos, e então herdava a da outra. Era imprevisível, não isolamento.
|
|
655
|
+
- O catálogo do ChatGPT (modo enxuto, 35 ferramentas na vitrine + o balcão que alcança as 935) é idêntico.
|
|
656
|
+
- O `ping` de 30 s contra o corte do Cloudflare continua ativo (seção acima).
|
|
657
|
+
|
|
658
|
+
Interruptor: `MCP_STATELESS` (`off` volta ao modo antigo, com sessão). Nasce ligado.
|
|
659
|
+
Detalhe e medições: `docs/plans/mcp-sessao-sobrevive-reinicio/design.md` no repo `lionchat-mcp-remote`.
|
|
660
|
+
|
|
661
|
+
**Se o sintoma voltar na v1.27.0 ou depois, NÃO é esta causa** — era por construção, e há rede de teste
|
|
662
|
+
cobrindo. Procurar outra: token expirado (401), conector apontando para endereço errado, ou o canal de
|
|
663
|
+
avisos sendo cortado (seção acima).
|
|
664
|
+
|
|
620
665
|
## "O grupo não recebeu o resumo diário" (Avisos de relatório) — 27/08
|
|
621
666
|
|
|
622
667
|
Diagnóstico em 2 passos: `lionchat_report_alerts_list` (colunas `last_delivery_status`/`last_error`
|
package/endpoints.json
CHANGED
|
@@ -290,7 +290,7 @@
|
|
|
290
290
|
"method": "PATCH",
|
|
291
291
|
"path": "/api/v1/accounts/{account_id}/contacts/{id}",
|
|
292
292
|
"title": "Atualizar Contato",
|
|
293
|
-
"description": "Atualiza um contato. Aceita name, email, phone_number, identifier, custom_attributes, additional_attributes, blocked, avatar/avatar_url. NUNCA sobrescreva phone_number/email ja preenchido sem confirmacao.
|
|
293
|
+
"description": "Atualiza um contato. Aceita name, email, phone_number, identifier, custom_attributes, additional_attributes, blocked, avatar/avatar_url. NUNCA sobrescreva phone_number/email ja preenchido sem confirmacao. ATENCAO — TROCAR DE NUMERO NAO E AQUI: mudar `phone_number` por esta rota muda o que aparece na tela mas NAO redireciona as mensagens, porque o endereco de entrega vem do cracha de cada caixa e de um cache por contato. Medido em 01/10: depois de editar so a ficha, todas as conversas seguiam enviando pro numero ANTIGO nos dois canais de WhatsApp, sem erro nenhum. Para trocar de numero de verdade use lionchat_contacts_change_phone. Esta rota serve para CORRIGIR o cadastro (erro de digitacao em contato que nunca conversou).",
|
|
294
294
|
"category": "Contatos",
|
|
295
295
|
"params": [
|
|
296
296
|
{
|
|
@@ -319,7 +319,7 @@
|
|
|
319
319
|
"type": "string",
|
|
320
320
|
"location": "body",
|
|
321
321
|
"required": false,
|
|
322
|
-
"description": "Telefone"
|
|
322
|
+
"description": "Telefone. So para CORRIGIR o cadastro — nao redireciona o envio. Troca de numero de verdade: lionchat_contacts_change_phone"
|
|
323
323
|
},
|
|
324
324
|
{
|
|
325
325
|
"name": "identifier",
|
|
@@ -371,6 +371,7 @@
|
|
|
371
371
|
"Atualização em massa via automação"
|
|
372
372
|
],
|
|
373
373
|
"related_tools": [
|
|
374
|
+
"lionchat_contacts_change_phone",
|
|
374
375
|
"lionchat_contacts_update_1"
|
|
375
376
|
]
|
|
376
377
|
},
|
|
@@ -14277,7 +14278,7 @@
|
|
|
14277
14278
|
"description": "Lista todos os roles personalizados da conta. Lista papéis personalizados paginados (per_page padrão 25, máximo 100). Retorna meta (contadores) + payload (array de papel personalizado).",
|
|
14278
14279
|
"category": "Roles Personalizados",
|
|
14279
14280
|
"params": [],
|
|
14280
|
-
"returns": "Lista pura (array), sem embrulho: a resposta E o array de papeis personalizados da conta. Cada papel traz id, name, description, `permissions` (lista de permissoes) e created_at/updated_at. Sem paginacao e sem contador. Recurso Enterprise — em instalacao sem Enterprise a rota nao responde.",
|
|
14281
|
+
"returns": "Lista pura (array), sem embrulho: a resposta E o array de papeis personalizados da conta. Cada papel traz id, name, description, `permissions` (lista de permissoes), `hidden_menus` (lista dos menus ocultos; [] = ve todos) e created_at/updated_at. Sem paginacao e sem contador. Recurso Enterprise — em instalacao sem Enterprise a rota nao responde.",
|
|
14281
14282
|
"common_use_cases": [
|
|
14282
14283
|
"Dashboard: contar/exibir papéis personalizados",
|
|
14283
14284
|
"Buscar com filtros antes de outra operação",
|
|
@@ -14294,7 +14295,7 @@
|
|
|
14294
14295
|
"method": "POST",
|
|
14295
14296
|
"path": "/api/v1/accounts/{account_id}/custom_roles",
|
|
14296
14297
|
"title": "Criar Role",
|
|
14297
|
-
"description": "Cria um novo role personalizado.
|
|
14298
|
+
"description": "Cria um novo role personalizado. Obrigatorios: name, permissions. Opcional: hidden_menus (menus que este cargo NAO ve). Retorna o papel personalizado criado com ID atribuido.",
|
|
14298
14299
|
"category": "Roles Personalizados",
|
|
14299
14300
|
"params": [
|
|
14300
14301
|
{
|
|
@@ -14316,7 +14317,14 @@
|
|
|
14316
14317
|
"type": "array",
|
|
14317
14318
|
"location": "body",
|
|
14318
14319
|
"required": true,
|
|
14319
|
-
"description": "Array de permissoes (array de strings). Valores aceitos (
|
|
14320
|
+
"description": "Array de permissoes (array de strings). Valores aceitos (24): conversation_manage, conversation_delete, conversation_unassigned_manage, conversation_participating_manage, conversation_team_manage, conversation_assigned_manage (Ver conversas dos colegas: so as que JA TEM responsavel, nas caixas de que a pessoa e membro; nunca a fila sem dono — 02/10/2026), contact_manage, contact_export_import, report_manage, knowledge_base_manage, kanban_manage, kanban_view, kanban_delete, kanban_export_import, offer_manage, funnel_manage, campaign_manage, automation_manage, marketing_integrations_manage, captain_manage, flowbuilder_manage, lead_form_manage (Formularios publicos, 05/09), signature_manage (Assinatura eletronica, 05/09), agenda_manage (Gerenciar a Agenda). Fora da lista = recusado. Administrador tem tudo sem cargo; agente sem cargo nao tem lead_form_manage nem signature_manage (nao ve Formularios nem Assinaturas no menu). O editor da tela marca junto as que uma inclui: conversation_manage inclui as 4 outras de conversa; conversation_team_manage inclui conversation_participating_manage; kanban_manage inclui kanban_view. Mande a lista ja completa."
|
|
14321
|
+
},
|
|
14322
|
+
{
|
|
14323
|
+
"name": "hidden_menus",
|
|
14324
|
+
"type": "array",
|
|
14325
|
+
"location": "body",
|
|
14326
|
+
"required": false,
|
|
14327
|
+
"description": "Menus DESMARCADOS em 'Acessar menu X' (array de strings, 02/10/2026). Valores aceitos: contacts, companies, kanban, flows, macros, ai_agent, help_center, agenda, internal_chat. `flows` vale para Fluxos E Automacao juntos (na tela: 'Acessar menu Fluxos e Automacao'): esconde ou libera os dois; a Automacao continua so para quem tem automation_manage. SUBSTITUI a lista inteira (mande todos os que devem ficar ocultos; [] = mostra todos). Campo AUSENTE no pedido NAO muda o que esta gravado. Menu oculto some da barra lateral e a tela dele fica fechada no servidor; o que a pessoa usa dentro da conversa continua (ex.: executar macro, ligar/desligar a IA, agendar tarefa). RECUSADO com 422: texto solto ou objeto no lugar da lista, menu desconhecido, e menu oculto junto do 'Gerenciar' da mesma area (contacts x contact_manage; kanban x kanban_manage/kanban_view/kanban_delete/kanban_export_import/offer_manage/funnel_manage; flows x flowbuilder_manage/automation_manage; ai_agent x captain_manage; help_center x knowledge_base_manage; agenda x agenda_manage). contact_export_import NAO conflita com contacts. Nunca esconde nada de administrador nem de conta sem o recurso de cargo personalizado. A mudanca vale NA HORA para quem tem o cargo (a tela dela se atualiza sozinha)."
|
|
14320
14328
|
}
|
|
14321
14329
|
],
|
|
14322
14330
|
"returns": "papel personalizado criado (com novo ID)",
|
|
@@ -14348,7 +14356,7 @@
|
|
|
14348
14356
|
"description": "ID do role"
|
|
14349
14357
|
}
|
|
14350
14358
|
],
|
|
14351
|
-
"returns": "papel personalizado
|
|
14359
|
+
"returns": "papel personalizado: id, name, description, permissions, hidden_menus, created_at, updated_at",
|
|
14352
14360
|
"common_use_cases": [
|
|
14353
14361
|
"Ver dados completos antes de editar",
|
|
14354
14362
|
"Verificar estado atual antes de uma ação",
|
|
@@ -14365,7 +14373,7 @@
|
|
|
14365
14373
|
"method": "PUT",
|
|
14366
14374
|
"path": "/api/v1/accounts/{account_id}/custom_roles/{id}",
|
|
14367
14375
|
"title": "Atualizar Role",
|
|
14368
|
-
"description": "Atualiza um role personalizado.
|
|
14376
|
+
"description": "Atualiza um role personalizado. Suporta atualizacao parcial — so os campos enviados mudam. Campos: name, description, permissions, hidden_menus. Mudar permissions ou hidden_menus avisa ao vivo SO as pessoas que tem este cargo (a tela delas se ajusta sem recarregar).",
|
|
14369
14377
|
"category": "Roles Personalizados",
|
|
14370
14378
|
"params": [
|
|
14371
14379
|
{
|
|
@@ -14394,7 +14402,14 @@
|
|
|
14394
14402
|
"type": "array",
|
|
14395
14403
|
"location": "body",
|
|
14396
14404
|
"required": false,
|
|
14397
|
-
"description": "Permissoes (array de strings). Valores aceitos (
|
|
14405
|
+
"description": "Permissoes (array de strings). Valores aceitos (24): conversation_manage, conversation_delete, conversation_unassigned_manage, conversation_participating_manage, conversation_team_manage, conversation_assigned_manage (Ver conversas dos colegas: so as que JA TEM responsavel, nas caixas de que a pessoa e membro; nunca a fila sem dono — 02/10/2026), contact_manage, contact_export_import, report_manage, knowledge_base_manage, kanban_manage, kanban_view, kanban_delete, kanban_export_import, offer_manage, funnel_manage, campaign_manage, automation_manage, marketing_integrations_manage, captain_manage, flowbuilder_manage, lead_form_manage (Formularios publicos, 05/09), signature_manage (Assinatura eletronica, 05/09), agenda_manage (Gerenciar a Agenda). Fora da lista = recusado. Administrador tem tudo sem cargo; agente sem cargo nao tem lead_form_manage nem signature_manage (nao ve Formularios nem Assinaturas no menu). O editor da tela marca junto as que uma inclui: conversation_manage inclui as 4 outras de conversa; conversation_team_manage inclui conversation_participating_manage; kanban_manage inclui kanban_view. Mande a lista ja completa."
|
|
14406
|
+
},
|
|
14407
|
+
{
|
|
14408
|
+
"name": "hidden_menus",
|
|
14409
|
+
"type": "array",
|
|
14410
|
+
"location": "body",
|
|
14411
|
+
"required": false,
|
|
14412
|
+
"description": "Menus DESMARCADOS em 'Acessar menu X' (array de strings, 02/10/2026). Valores aceitos: contacts, companies, kanban, flows, macros, ai_agent, help_center, agenda, internal_chat. `flows` vale para Fluxos E Automacao juntos (na tela: 'Acessar menu Fluxos e Automacao'): esconde ou libera os dois; a Automacao continua so para quem tem automation_manage. SUBSTITUI a lista inteira (mande todos os que devem ficar ocultos; [] = mostra todos). Campo AUSENTE no pedido NAO muda o que esta gravado. Menu oculto some da barra lateral e a tela dele fica fechada no servidor; o que a pessoa usa dentro da conversa continua (ex.: executar macro, ligar/desligar a IA, agendar tarefa). RECUSADO com 422: texto solto ou objeto no lugar da lista, menu desconhecido, e menu oculto junto do 'Gerenciar' da mesma area (contacts x contact_manage; kanban x kanban_manage/kanban_view/kanban_delete/kanban_export_import/offer_manage/funnel_manage; flows x flowbuilder_manage/automation_manage; ai_agent x captain_manage; help_center x knowledge_base_manage; agenda x agenda_manage). contact_export_import NAO conflita com contacts. Nunca esconde nada de administrador nem de conta sem o recurso de cargo personalizado. A mudanca vale NA HORA para quem tem o cargo (a tela dela se atualiza sozinha)."
|
|
14398
14413
|
}
|
|
14399
14414
|
],
|
|
14400
14415
|
"returns": "papel personalizado atualizado",
|
|
@@ -14415,7 +14430,7 @@
|
|
|
14415
14430
|
"method": "DELETE",
|
|
14416
14431
|
"path": "/api/v1/accounts/{account_id}/custom_roles/{id}",
|
|
14417
14432
|
"title": "Excluir Role",
|
|
14418
|
-
"description": "Remove um role personalizado. Remove papel personalizado permanentemente. CUIDADO: ação irreversível em muitos casos. Verifique dependências antes.",
|
|
14433
|
+
"description": "Remove um role personalizado. Remove papel personalizado permanentemente. CUIDADO: ação irreversível em muitos casos. Verifique dependências antes. As pessoas que tinham o cargo ficam sem cargo (voltam a ser atendente comum, com todos os menus) e a tela delas se atualiza na hora.",
|
|
14419
14434
|
"category": "Roles Personalizados",
|
|
14420
14435
|
"params": [
|
|
14421
14436
|
{
|
|
@@ -21915,7 +21930,7 @@
|
|
|
21915
21930
|
"type": "integer",
|
|
21916
21931
|
"location": "body",
|
|
21917
21932
|
"required": false,
|
|
21918
|
-
"description": "ID do cargo personalizado (custom role) a aplicar ao agente. Requer Enterprise.
|
|
21933
|
+
"description": "ID do cargo personalizado (custom role) a aplicar ao agente. Requer Enterprise. So muda quando o campo VEM no pedido: atualizar o agente SEM custom_role_id mantem o cargo atual; mandar null tira o cargo. Trocar o cargo avisa ao vivo so essa pessoa (menus e permissoes se ajustam na tela dela). Nao vale para o proprio usuario logado (422: ninguem muda o proprio cargo). Use lionchat_custom_roles_list para obter os IDs."
|
|
21919
21934
|
},
|
|
21920
21935
|
{
|
|
21921
21936
|
"name": "team_ids",
|
|
@@ -29885,6 +29900,102 @@
|
|
|
29885
29900
|
"lionchat_contacts_show"
|
|
29886
29901
|
]
|
|
29887
29902
|
},
|
|
29903
|
+
{
|
|
29904
|
+
"id": "lionchat_contacts_change_phone",
|
|
29905
|
+
"method": "POST",
|
|
29906
|
+
"path": "/api/v1/accounts/{account_id}/contacts/{id}/change_phone",
|
|
29907
|
+
"title": "Trocar o Telefone do Contato (mantendo a conversa)",
|
|
29908
|
+
"description": "Troca o telefone de um contato MANTENDO a mesma conversa no painel. Use SEMPRE esta rota quando a pessoa mudou de numero — nunca lionchat_contacts_update, que muda a ficha e NAO redireciona as mensagens (o endereco de entrega vem do cracha de cada caixa e de um cache por contato, nao da ficha). Esta rota mexe nas quatro pecas: telefone da ficha, cracha de cada caixa de WhatsApp (QR Code e oficial), crachas extras (saem de circulacao, com as conversas reapontadas) e o cache de LID. Escreve uma pilula de atividade nas conversas do contato dizendo de qual numero para qual, e limpa a marca \"nao tem WhatsApp\" do numero antigo (que tirava a pessoa de toda campanha). No QR Code, a forma canonica do numero e perguntada ao WhatsApp antes de gravar — isso resolve sozinho o caso do nono digito. RECUSA (nao troca) quando: o numero e o mesmo, e invalido, o contato e um GRUPO, ou o numero ja pertence a outra ficha (409 com quem e o dono). OPCIONAL merge_with: junta as fichas E troca numa so operacao, com ESTA ficha sobrevivendo e a outra sendo APAGADA — so aceita a ficha dona do numero, exige permissao de excluir contato, e NAO tem como desfazer. Antes de usar merge_with, consulte lionchat_contact_merge_preview para saber o que sera descartado e CONFIRME com a pessoa.",
|
|
29909
|
+
"category": "Contatos",
|
|
29910
|
+
"params": [
|
|
29911
|
+
{
|
|
29912
|
+
"name": "account_id",
|
|
29913
|
+
"type": "integer",
|
|
29914
|
+
"location": "path",
|
|
29915
|
+
"required": true,
|
|
29916
|
+
"description": "ID da conta"
|
|
29917
|
+
},
|
|
29918
|
+
{
|
|
29919
|
+
"name": "id",
|
|
29920
|
+
"type": "integer",
|
|
29921
|
+
"location": "path",
|
|
29922
|
+
"required": true,
|
|
29923
|
+
"description": "ID do contato que vai trocar de numero"
|
|
29924
|
+
},
|
|
29925
|
+
{
|
|
29926
|
+
"name": "phone_number",
|
|
29927
|
+
"type": "string",
|
|
29928
|
+
"location": "body",
|
|
29929
|
+
"required": true,
|
|
29930
|
+
"description": "Numero novo. Aceita com ou sem \"+\" (e normalizado para E.164)"
|
|
29931
|
+
},
|
|
29932
|
+
{
|
|
29933
|
+
"name": "merge_with",
|
|
29934
|
+
"type": "integer",
|
|
29935
|
+
"location": "body",
|
|
29936
|
+
"required": false,
|
|
29937
|
+
"description": "ID da ficha a ser ABSORVIDA (e APAGADA) quando o numero novo ja pertence a ela. So aceita a ficha dona do numero. Exige permissao de excluir contato. Irreversivel — confirme antes"
|
|
29938
|
+
}
|
|
29939
|
+
],
|
|
29940
|
+
"returns": "200 { trocou, antigo, novo, crachas_atualizados, crachas_arquivados, conversas_reapontadas, conversas_avisadas }; 409 { error: \"telefone_de_outro_contato\", conflito: { id, name, phone_number } } quando o numero ja e de outra ficha; 422 { error } para telefone_igual, telefone_invalido, contato_de_grupo ou merge_with_nao_e_dono_do_numero",
|
|
29941
|
+
"common_use_cases": [
|
|
29942
|
+
"O cliente avisou que mudou de numero e quer continuar o atendimento na mesma conversa",
|
|
29943
|
+
"A clinica ou integracao informou um telefone novo para o mesmo paciente",
|
|
29944
|
+
"Juntar a ficha duplicada que ja usa o numero novo e passar a usar esse numero (merge_with)"
|
|
29945
|
+
],
|
|
29946
|
+
"related_tools": [
|
|
29947
|
+
"lionchat_contact_merge_preview",
|
|
29948
|
+
"lionchat_contacts_show",
|
|
29949
|
+
"lionchat_contacts_update"
|
|
29950
|
+
]
|
|
29951
|
+
},
|
|
29952
|
+
{
|
|
29953
|
+
"id": "lionchat_contact_merge_preview",
|
|
29954
|
+
"method": "GET",
|
|
29955
|
+
"path": "/api/v1/accounts/{account_id}/actions/contact_merge/preview",
|
|
29956
|
+
"title": "Previa da Mesclagem de Contatos",
|
|
29957
|
+
"description": "Diz o que a mesclagem VAI fazer, sem executar nada. Use SEMPRE antes de mesclar ou de usar merge_with, e mostre o resultado para a pessoa confirmar: mesclar APAGA uma ficha e NAO tem como desfazer. Devolve quem fica, quem deixa de existir, os campos que entram nos vazios do sobrevivente, os que serao DESCARTADOS (quando os dois tem valor diferente), quantas conversas vem, quantas vao aparecer encerradas, as etiquetas que somam e se a ficha vai ficar bloqueada. Regra de quem vence, campo a campo: o sobrevivente ganha onde ELE tem valor; onde esta vazio, recebe o do outro. Leitura pura; exige a mesma permissao de mesclar (excluir contato).",
|
|
29958
|
+
"category": "Contatos",
|
|
29959
|
+
"params": [
|
|
29960
|
+
{
|
|
29961
|
+
"name": "account_id",
|
|
29962
|
+
"type": "integer",
|
|
29963
|
+
"location": "path",
|
|
29964
|
+
"required": true,
|
|
29965
|
+
"description": "ID da conta"
|
|
29966
|
+
},
|
|
29967
|
+
{
|
|
29968
|
+
"name": "base_contact_id",
|
|
29969
|
+
"type": "integer",
|
|
29970
|
+
"location": "query",
|
|
29971
|
+
"required": true,
|
|
29972
|
+
"description": "ID do contato que SOBREVIVE"
|
|
29973
|
+
},
|
|
29974
|
+
{
|
|
29975
|
+
"name": "mergee_contact_id",
|
|
29976
|
+
"type": "integer",
|
|
29977
|
+
"location": "query",
|
|
29978
|
+
"required": true,
|
|
29979
|
+
"description": "ID do contato que sera APAGADO"
|
|
29980
|
+
},
|
|
29981
|
+
{
|
|
29982
|
+
"name": "phone_number",
|
|
29983
|
+
"type": "string",
|
|
29984
|
+
"location": "query",
|
|
29985
|
+
"required": false,
|
|
29986
|
+
"description": "Numero que a ficha vai adotar depois da juncao. Sem ele, a previa anuncia o telefone do absorvido como \"descartado\" — o que seria mentira no caminho da troca de telefone"
|
|
29987
|
+
}
|
|
29988
|
+
],
|
|
29989
|
+
"returns": "200 { fica: {id,name}, sai: {id,name}, entra: [{key,label,value}], descartado: [{key,label,atual,descartado}], telefone_novo, conversas, conversas_que_serao_fechadas, etiquetas_novas, vai_ficar_bloqueado }",
|
|
29990
|
+
"common_use_cases": [
|
|
29991
|
+
"Mostrar ao usuario o que se perde antes de confirmar a mesclagem de duas fichas",
|
|
29992
|
+
"Conferir, antes de usar merge_with na troca de telefone, o que sera descartado"
|
|
29993
|
+
],
|
|
29994
|
+
"related_tools": [
|
|
29995
|
+
"lionchat_contacts_change_phone",
|
|
29996
|
+
"lionchat_contacts_show"
|
|
29997
|
+
]
|
|
29998
|
+
},
|
|
29888
29999
|
{
|
|
29889
30000
|
"id": "lionchat_contacts_active",
|
|
29890
30001
|
"method": "GET",
|
|
@@ -32148,7 +32259,7 @@
|
|
|
32148
32259
|
"method": "POST",
|
|
32149
32260
|
"path": "/api/v1/accounts/{account_id}/funnels/{funnel_id}/meta_capi_events/{id}/retry",
|
|
32150
32261
|
"title": "Reenviar Evento Meta CAPI falhado",
|
|
32151
|
-
"description": "
|
|
32262
|
+
"description": "ACAO DE ESCRITA. Reenfileira UM evento Meta CAPI que esta retentavel: status 'failed' OU 'pending' ABANDONADO (parado ha mais de 15 min). Volta pra pending e o job envia de novo, limpando o motivo da falha e o do plano B. Qualquer outro status responde 422 {error:'not retryable'}. 404 se o evento nao for deste funil.",
|
|
32152
32263
|
"category": "Integracoes",
|
|
32153
32264
|
"params": [
|
|
32154
32265
|
{
|
|
@@ -32166,7 +32277,7 @@
|
|
|
32166
32277
|
"description": "ID do evento falhado"
|
|
32167
32278
|
}
|
|
32168
32279
|
],
|
|
32169
|
-
"returns": "200 {ok: true} | 422 {error:'not
|
|
32280
|
+
"returns": "200 {ok: true} | 422 {error:'not retryable'} | 404 {error:'not found'}",
|
|
32170
32281
|
"common_use_cases": [
|
|
32171
32282
|
"Reenviar a conversão depois de corrigir o token/pixel"
|
|
32172
32283
|
],
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lionchat/mcp-server",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.29.0",
|
|
4
4
|
"description": "MCP server for LionChat API — 547 tools + 10 resources + 9 prompts. Audit-log aware, completion API, progress notifications.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|