Bloque JavaScript (Datacrazy)
KnowledBase(KB, Base de conocimiento) del Bloque JavaScript tus Agentes de IA te ayudan.Accede a ChatGPT directamente en este enlace → https://chatgpt.com/share/69d47b77-a718-83e9-8628-e85bfe0e15aa
PDF para Claude Code → https://drive.google.com/file/d/1F7oSbACzdzzf7QS6QG9GjEkFgXzyW-XD/view?usp=sharing

El bloque <> JavaScript es uno de los, si no el más poderoso de los bloques, dada la amplia y gigantesca utilidad, pudiendo usar programación para validaciones y configuraciones de diferentes salidas de datos.
Este recurso presupone conocimiento previo en programación.
El soporte no cubre dudas introductorias sobre lógica o código.
Las dudas técnicas sobre el funcionamiento del bloque se pueden enviar al soporte normalmente.
Recomendación: Aprende lo básico de JavaScript — esto va a ser un hito en el uso de Datacrazy.
Lo que vas a aprenderComentarios
Parámetros
Variables y Constantes
Objetos y Arrays
GET / POST
Webhook
Datos de Lead y Negocio
Guardado de datos
Respuesta JSON
Buenas prácticas
ComentariosLos comentarios son ignorados por el sistema.
Línea única// Isso é um comentário
Bloque/*
Tudo aqui será ignorado
Inclusive código
*/
Error comúnisso não é comentário // ❌ vai quebrar o código
VariablesGuardan valores que pueden cambiar:
let fruta = 'maçã';let frutas = ["uvaBah", "banana", "maçã"];
ConstantesNo se pueden cambiar:
const nomeLead = "Tiger Allan";
Error:
Identificador 'nomeLead' já foi declarado
Objetosconst dadosLead = {
leadName: "Tiger Allan",
leadPhone: 5547992185579
};dadosLead.leadNameawait session.setAdditionalValue("apelido", dadosLead.leadName);
Arrayslet frutas = ["uvaBah", "banana", "maçã"];frutas[0] // uvaBah
frutas[1] // banana
frutas[2] // maçãawait session.setAdditionalValue("fruta-preferida", frutas[1]);frutas[1] = "abacaxi";
GET vs POSTMétodo
Uso
GET | Buscar datos |
POST | Enviar datos |
Webhook (entrada de datos){
"dadosLead": {
"leadName": "Tiger Allan2",
"leadPhone": "5547992185579Bah",
"fruta": "uvaBah"
},
"dadosEmpresaLead": {
"nomeEmpresa": "ATECH Company",
"sloganEmpresa": "ATECH tende bem",
"urlLogo": "https://i.imgur.com/Pis9lRg.png"
},
"assets": {
"valorEmReais": 997,
"valorReaisComCentavos": 997.89,
"falida": null
}
}
Capturar datosconst webhook = session.datasources["Api-request-1"];
Identificar Leadawait session.setValue("leadName", webhook.dadosLead.leadname);
await session.setValue("leadPhone", webhook.dadosLead.leadPhone);⚠️ Regla obligatoria:
Nombre + Teléfono
o
Nombre + Email
Guardar datosawait session.setAdditionalValue("apelido", webhook.dadosLead.leadName);const webhook = await session.datasources["Api-request-1"];
await session.setValue("leadName", webhook.dadosLead.leadname);
await session.setValue("leadPhone", webhook.dadosLead.leadPhone);
await session.setAdditionalValue("apelido", webhook.dadosLead.leadName);
return {
nomeLead: await session.getValue("leadName"),
phoneLead: await session.getValue("leadPhone"),
businessId: await session.getValue("businessId")
};datasources → lê dados do webhook
setValue → identifica o lead
setAdditionalValue → salva dados
return → retorna JSON
Parâmetros disponíveis
Dependem de condicionamento no fluxo
leadId, businessId, stageId, instanceId, attendantId, productId, conversationId, threadId
leadName, leadFirstName, leadEmail, leadPhone, leadCompany, leadCity, leadState, leadZip, leadAddress, leadComplement, leadBlock, leadSite, leadTaxId, leadSource, leadSourceId, leadSourceUrl, leadCtwaId, leadNotes, birthDate
businessTotal, businessCode, businessExternalId, JSONbusinessProduct
productName, productSku, productPrice
leadAttendant, businessAttendant, ticketAttendant
currentDate, companyName, companyEmail
threadData, chatAttendant, department, threadCode
additionalFields, datasourceJsonPath
instagramCommentId, instagramMediaId, instagramCommentDate, instagramName
facebookCommentId, facebookMediaId, facebookCommentDate, facebookName
lastAiText, aiConsumedTokens
Reglas JSON
Usa correctamente:
string → texto
number → números
boolean → true/false
null → ausencia
Evita:
"10" (número como string)
"true"
"" como vacío
undefined
NaN / Infinity
Decimales
Correcto:
10.5
Incorrecto:
10,5
"10.5"
Valores monetarios
Recomendado{ "priceCents": 1050 }{ "amount": 10.5, "currency": "BRL" } Siempre usa await
Valida datos antes de usar
Nombra variables claramente
Usa comentarios
Nunca retornes JSON inválido