feat(salesianos): add gbdialog tools with AST and tool.json
Some checks failed
BotServer CI / build (push) Has been cancelled

- inscricao, consultar_inscricao, agendamento_visita, informacoes_curso
- documentos_necessarios, contato_secretaria, calendario_letivo
- start.bas with USE_KB carta, proc
This commit is contained in:
Rodrigo Rodriguez (Pragmatismo) 2026-03-21 19:21:46 -03:00
parent 1132983064
commit 059ecb7187
36 changed files with 990 additions and 0 deletions

View file

@ -0,0 +1,19 @@
let id = "VIS-" + FORMAT(NOW(), "yyyyMMdd") + "-" + FORMAT(RANDOM(1000, 9999), "0000");
let protocoloNumero = "VIS" + FORMAT(RANDOM(100000, 999999), "000000");
let dataCadastro = FORMAT(NOW(), "yyyy-MM-dd HH:mm:ss");
let status = "AGUARDANDO_CONFIRMACAO";
let dataVisitaDisplay = MID(dataVisita, 9, 2) + "/" + MID(dataVisita, 6, 2) + "/" + MID(dataVisita, 1, 4);
let __save_data_0__ = #{id: id, protocoloNumero: protocoloNumero, nomeResponsavel: nomeResponsavel, telefone: telefone, email: email, dataVisita: dataVisita, horario: horario, numeroVisitantes: numeroVisitantes, dataCadastro: dataCadastro, status: status}; SAVE agendamentos_visita, __save_data_0__;
SET_BOT_MEMORY("ultimo_agendamento", id);
SET_BOT_MEMORY("ultimo_protocolo_visita", protocoloNumero);
let __talk_chunk_0__ = "Agendamento de Visita realizado com sucesso!" + "\n" + "PROTOCOLO: " + protocoloNumero + "\n" + "ID: " + id + "\n" + "Responsável: " + nomeResponsavel + "\n" + "Data: " + dataVisitaDisplay + " às " + horario;
let __talk_chunk_1__ = "Visitantes: " + numeroVisitantes + " pessoa(s)" + "\n" + "Status: Aguardando confirmação" + "\n" + "INFORMAÇÕES:" + "\n" + "• Horário de atendimento: 8h às 17h" + "\n" + "• A visita dura aproximadamente 1 hora";
let __talk_chunk_2__ = "• Estacionamento disponível no local" + "\n" + "Contato da Secretaria:" + "\n" + "Telefone: (21) 3333-4444" + "\n" + "WhatsApp: (21) 99999-8888" + "\n" + "Email: secretaria@salesianos.br";
let __talk_chunk_3__ = "Registro salvo com sucesso e e-mail de confirmação enviado!";
TALK __talk_chunk_0__ + "\n" + __talk_chunk_1__ + "\n" + __talk_chunk_2__ + "\n" + __talk_chunk_3__;
let __mail_body_0__ = "Prezado(a) " + nomeResponsavel + "," + "\n" + "Recebemos seu agendamento de visita à Escola Salesiana." + "\n" + "DADOS do AGENDAMENTO:" + "\n" + "===========================================" + "\n" + "Protocolo: " + protocoloNumero;
let __mail_body_1__ = "ID: " + id + "\n" + "Responsável: " + nomeResponsavel + "\n" + "Data: " + dataVisitaDisplay + " às " + horario + "\n" + "Visitantes: " + numeroVisitantes + " pessoa(s)" + "\n" + "===========================================";
let __mail_body_2__ = "PRÓXIMOS PASSOS:" + "\n" + "1. Aguarde confirmação da disponibilidade" + "\n" + "2. Compareça no horário agendado" + "\n" + "3. Traga documento de identificação" + "\n" + "Será um prazer recebê-lo(a)!";
let __mail_body_3__ = "Atenciosamente," + "\n" + "Secretaria da Escola Salesiana" + "\n" + "Tel: (21) 3333-4444 | WhatsApp: (21) 99999-8888";
send_mail(email, "Confirmação de Visita - Protocolo ${protocoloNumero}", __mail_body_0__ + "\n" + __mail_body_1__ + "\n" + __mail_body_2__ + "\n" + __mail_body_3__, []);
return id;

View file

@ -0,0 +1,76 @@
DESCRIPTION "Agendar uma visita à Escola Salesiana para conhecer as instalações (Confirmar todos os dados com o usuário antes de executar a ferramenta)"
PARAM nomeResponsavel AS STRING LIKE "João Silva" DESCRIPTION "Nome do responsável"
PARAM telefone AS STRING LIKE "(21) 99999-9999" DESCRIPTION "Telefone com DDD"
PARAM email AS EMAIL LIKE "joao@example.com" DESCRIPTION "Email para contato"
PARAM dataVisita AS DATE LIKE "2026-03-15" DESCRIPTION "Data desejada para visita (formato ISO: YYYY-MM-DD)"
PARAM horario AS STRING LIKE "10:00" DESCRIPTION "Horário preferencial (formato HH:MM, entre 8h e 17h)"
PARAM numeroVisitantes AS INTEGER LIKE "3" DESCRIPTION "Número de visitantes"
id = "VIS-" + FORMAT(NOW(), "yyyyMMdd") + "-" + FORMAT(RANDOM(1000, 9999), "0000")
protocoloNumero = "VIS" + FORMAT(RANDOM(100000, 999999), "000000")
dataCadastro = FORMAT(NOW(), "yyyy-MM-dd HH:mm:ss")
status = "AGUARDANDO_CONFIRMACAO"
dataVisitaDisplay = MID(dataVisita, 9, 2) + "/" + MID(dataVisita, 6, 2) + "/" + MID(dataVisita, 1, 4)
SAVE "agendamentos_visita", id, protocoloNumero, nomeResponsavel, telefone, email, dataVisita, horario, numeroVisitantes, dataCadastro, status
SET_BOT_MEMORY("ultimo_agendamento", id)
SET_BOT_MEMORY("ultimo_protocolo_visita", protocoloNumero)
BEGIN TALK
Agendamento de Visita realizado com sucesso!
PROTOCOLO: ${protocoloNumero}
ID: ${id}
Responsável: ${nomeResponsavel}
Data: ${dataVisitaDisplay} às ${horario}
Visitantes: ${numeroVisitantes} pessoa(s)
Status: Aguardando confirmação
INFORMAÇÕES:
Horário de atendimento: 8h às 17h
A visita dura aproximadamente 1 hora
Estacionamento disponível no local
Contato da Secretaria:
Telefone: (21) 3333-4444
WhatsApp: (21) 99999-8888
Email: secretaria@salesianos.br
Registro salvo com sucesso e e-mail de confirmação enviado!
END TALK
BEGIN MAIL email
Subject: Confirmação de Visita - Protocolo ${protocoloNumero}
Prezado(a) ${nomeResponsavel},
Recebemos seu agendamento de visita à Escola Salesiana.
DADOS DO AGENDAMENTO:
===========================================
Protocolo: ${protocoloNumero}
ID: ${id}
Responsável: ${nomeResponsavel}
Data: ${dataVisitaDisplay} às ${horario}
Visitantes: ${numeroVisitantes} pessoa(s)
===========================================
PRÓXIMOS PASSOS:
1. Aguarde confirmação da disponibilidade
2. Compareça no horário agendado
3. Traga documento de identificação
Será um prazer recebê-lo(a)!
Atenciosamente,
Secretaria da Escola Salesiana
Tel: (21) 3333-4444 | WhatsApp: (21) 99999-8888
END MAIL
RETURN id

View file

@ -0,0 +1,48 @@
{
"name": "agendamento_visita",
"description": "Agendar uma visita à Escola Salesiana para conhecer as instalações (Confirmar todos os dados com o usuário antes de executar a ferramenta)",
"input_schema": {
"type": "object",
"properties": {
"telefone": {
"type": "string",
"description": "Telefone com DDD",
"example": "(21) 99999-9999"
},
"email": {
"type": "string",
"description": "Email para contato",
"example": "joao@example.com"
},
"dataVisita": {
"type": "string",
"description": "Data desejada para visita (formato ISO: YYYY-MM-DD)",
"example": "2026-03-15",
"format": "date"
},
"horario": {
"type": "string",
"description": "Horário preferencial (formato HH:MM, entre 8h e 17h)",
"example": "10:00"
},
"numeroVisitantes": {
"type": "integer",
"description": "Número de visitantes",
"example": "3"
},
"nomeResponsavel": {
"type": "string",
"description": "Nome do responsável",
"example": "João Silva"
}
},
"required": [
"nomeResponsavel",
"telefone",
"email",
"dataVisita",
"horario",
"numeroVisitantes"
]
}
}

View file

@ -0,0 +1,51 @@
{
"type": "function",
"function": {
"name": "agendamento_visita",
"description": "Agendar uma visita à Escola Salesiana para conhecer as instalações (Confirmar todos os dados com o usuário antes de executar a ferramenta)",
"parameters": {
"type": "object",
"properties": {
"dataVisita": {
"type": "string",
"description": "Data desejada para visita (formato ISO: YYYY-MM-DD)",
"example": "2026-03-15",
"format": "date"
},
"numeroVisitantes": {
"type": "integer",
"description": "Número de visitantes",
"example": "3"
},
"telefone": {
"type": "string",
"description": "Telefone com DDD",
"example": "(21) 99999-9999"
},
"email": {
"type": "string",
"description": "Email para contato",
"example": "joao@example.com"
},
"nomeResponsavel": {
"type": "string",
"description": "Nome do responsável",
"example": "João Silva"
},
"horario": {
"type": "string",
"description": "Horário preferencial (formato HH:MM, entre 8h e 17h)",
"example": "10:00"
}
},
"required": [
"nomeResponsavel",
"telefone",
"email",
"dataVisita",
"horario",
"numeroVisitantes"
]
}
}
}

View file

@ -0,0 +1,3 @@
let resultado = "Calendário Letivo - PRIMEIRO SEMESTRE: Início das aulas 03/02, Carnaval 03/03 a 05/03, Semana Pedagógica 20 a 24/04, Dia do Trabalho 01/05, Recesso 15 a 19/07, Término do 1º semestre 18/07. SEGUNDO SEMESTRE: Retorno às aulas 22/07, Independência 07/09, Nossa Senhora Aparecida 12/10, Proclamação da República 15/11, Dia da Consciência Negra 20/11, Recuperação 02/12 a 13/12, Término das aulas 18/12. AVALIAÇÕES BIMESTRAIS: 1º Bim 07 a 18/04, 2º Bim 23/06 a 04/07, 3º Bim 15 a 26/09, 4º Bim 04 a 15/11. REUNIÕES DE PAIS (19h30): 21/03, 06/06, 19/09, 21/11. EVENTOS ESPECIAIS: Festa Junina 14/06, Feira de Ciências 29/08, Jogos Internos 10 a 13/09, Formatura Ensino Médio 12/12.";
TALK resultado;
return resultado;

View file

@ -0,0 +1,8 @@
DESCRIPTION "Consultar o calendário letivo com datas importantes da Escola Salesiana"
PARAM ano AS STRING LIKE "2026" DESCRIPTION "Ano letivo desejado (opcional, padrão: ano atual)"
resultado = "Calendário Letivo - PRIMEIRO SEMESTRE: Início das aulas 03/02, Carnaval 03/03 a 05/03, Semana Pedagógica 20 a 24/04, Dia do Trabalho 01/05, Recesso 15 a 19/07, Término do 1º semestre 18/07. SEGUNDO SEMESTRE: Retorno às aulas 22/07, Independência 07/09, Nossa Senhora Aparecida 12/10, Proclamação da República 15/11, Dia da Consciência Negra 20/11, Recuperação 02/12 a 13/12, Término das aulas 18/12. AVALIAÇÕES BIMESTRAIS: 1º Bim 07 a 18/04, 2º Bim 23/06 a 04/07, 3º Bim 15 a 26/09, 4º Bim 04 a 15/11. REUNIÕES DE PAIS (19h30): 21/03, 06/06, 19/09, 21/11. EVENTOS ESPECIAIS: Festa Junina 14/06, Feira de Ciências 29/08, Jogos Internos 10 a 13/09, Formatura Ensino Médio 12/12."
TALK resultado
RETURN resultado

View file

@ -0,0 +1,17 @@
{
"name": "calendario_letivo",
"description": "Consultar o calendário letivo com datas importantes da Escola Salesiana",
"input_schema": {
"type": "object",
"properties": {
"ano": {
"type": "string",
"description": "Ano letivo desejado (opcional, padrão: ano atual)",
"example": "2026"
}
},
"required": [
"ano"
]
}
}

View file

@ -0,0 +1,20 @@
{
"type": "function",
"function": {
"name": "calendario_letivo",
"description": "Consultar o calendário letivo com datas importantes da Escola Salesiana",
"parameters": {
"type": "object",
"properties": {
"ano": {
"type": "string",
"description": "Ano letivo desejado (opcional, padrão: ano atual)",
"example": "2026"
}
},
"required": [
"ano"
]
}
}
}

View file

@ -0,0 +1,3 @@
let resultado = "Consulta de Inscrição - Protocolo informado: " + protocolo + ". A consulta foi registrada. Nossa equipe verificará o status da inscrição e retornará em breve. Para consultas urgentes: Telefone (21) 3333-4444, WhatsApp (21) 99999-8888, Horário Segunda a Sexta 8h às 17h, Email secretaria@salesianos.br";
TALK resultado;
return resultado;

View file

@ -0,0 +1,8 @@
DESCRIPTION "Consultar status de inscrição pelo número de protocolo (Confirmar o protocolo com o usuário antes de executar)"
PARAM protocolo AS STRING LIKE "INS123456" DESCRIPTION "Número do protocolo da inscrição"
resultado = "Consulta de Inscrição - Protocolo informado: " + protocolo + ". A consulta foi registrada. Nossa equipe verificará o status da inscrição e retornará em breve. Para consultas urgentes: Telefone (21) 3333-4444, WhatsApp (21) 99999-8888, Horário Segunda a Sexta 8h às 17h, Email secretaria@salesianos.br"
TALK resultado
RETURN resultado

View file

@ -0,0 +1,17 @@
{
"name": "consultar_inscricao",
"description": "Consultar status de inscrição pelo número de protocolo (Confirmar o protocolo com o usuário antes de executar)",
"input_schema": {
"type": "object",
"properties": {
"protocolo": {
"type": "string",
"description": "Número do protocolo da inscrição",
"example": "INS123456"
}
},
"required": [
"protocolo"
]
}
}

View file

@ -0,0 +1,20 @@
{
"type": "function",
"function": {
"name": "consultar_inscricao",
"description": "Consultar status de inscrição pelo número de protocolo (Confirmar o protocolo com o usuário antes de executar)",
"parameters": {
"type": "object",
"properties": {
"protocolo": {
"type": "string",
"description": "Número do protocolo da inscrição",
"example": "INS123456"
}
},
"required": [
"protocolo"
]
}
}
}

View file

@ -0,0 +1,17 @@
let id = "ATE-" + FORMAT(NOW(), "yyyyMMdd") + "-" + FORMAT(RANDOM(1000, 9999), "0000");
let protocoloNumero = "ATE" + FORMAT(RANDOM(100000, 999999), "000000");
let dataCadastro = FORMAT(NOW(), "yyyy-MM-dd HH:mm:ss");
let status = "AGUARDANDO_RESPOSTA";
let __save_data_0__ = #{id: id, protocoloNumero: protocoloNumero, nome: nome, assunto: assunto, mensagem: mensagem, telefone: telefone, email: email, dataCadastro: dataCadastro, status: status}; SAVE atendimentos, __save_data_0__;
SET_BOT_MEMORY("ultimo_atendimento", id);
SET_BOT_MEMORY("ultimo_protocolo_atendimento", protocoloNumero);
let __talk_chunk_0__ = "Mensagem enviada para a Secretaria!" + "\n" + "PROTOCOLO: " + protocoloNumero + "\n" + "ID: " + id + "\n" + "Nome: " + nome + "\n" + "Assunto: " + assunto;
let __talk_chunk_1__ = "Mensagem: " + mensagem + "\n" + "Status: Aguardando resposta (até 2 dias úteis)" + "\n" + "Contato da Secretaria:" + "\n" + "Telefone: (21) 3333-4444" + "\n" + "WhatsApp: (21) 99999-8888";
let __talk_chunk_2__ = "Horário: Segunda a Sexta, 8h às 17h" + "\n" + "Email: secretaria@salesianos.br" + "\n" + "Endereço:" + "\n" + "Rua Salesiana, 123 - Centro" + "\n" + "CEP: 20000-000 - Rio de Janeiro/RJ";
let __talk_chunk_3__ = "Registro salvo com sucesso e e-mail de confirmação enviado!";
TALK __talk_chunk_0__ + "\n" + __talk_chunk_1__ + "\n" + __talk_chunk_2__ + "\n" + __talk_chunk_3__;
let __mail_body_0__ = "Prezado(a) " + nome + "," + "\n" + "Recebemos sua mensagem para a Secretaria da Escola Salesiana." + "\n" + "DADOS do CONTATO:" + "\n" + "===========================================" + "\n" + "Protocolo: " + protocoloNumero;
let __mail_body_1__ = "Assunto: " + assunto + "\n" + "Mensagem: " + mensagem + "\n" + "===========================================" + "\n" + "Responderemos em até 2 dias úteis." + "\n" + "Atenciosamente,";
let __mail_body_2__ = "Secretaria da Escola Salesiana" + "\n" + "Tel: (21) 3333-4444 | WhatsApp: (21) 99999-8888";
send_mail(email, "Confirmação de Contato - Protocolo ${protocoloNumero}", __mail_body_0__ + "\n" + __mail_body_1__ + "\n" + __mail_body_2__, []);
return id;

View file

@ -0,0 +1,66 @@
DESCRIPTION "Enviar mensagem para a secretaria da Escola Salesiana (Confirmar todos os dados com o usuário antes de executar a ferramenta)"
PARAM nome AS STRING LIKE "João Silva" DESCRIPTION "Nome do interessado"
PARAM assunto AS STRING LIKE "Informações sobre mensalidades" DESCRIPTION "Assunto da mensagem"
PARAM mensagem AS STRING LIKE "Gostaria de saber as formas de pagamento disponíveis" DESCRIPTION "Mensagem completa"
PARAM telefone AS STRING LIKE "(21) 99999-9999" DESCRIPTION "Telefone para retorno"
PARAM email AS EMAIL LIKE "joao@example.com" DESCRIPTION "Email para contato"
id = "ATE-" + FORMAT(NOW(), "yyyyMMdd") + "-" + FORMAT(RANDOM(1000, 9999), "0000")
protocoloNumero = "ATE" + FORMAT(RANDOM(100000, 999999), "000000")
dataCadastro = FORMAT(NOW(), "yyyy-MM-dd HH:mm:ss")
status = "AGUARDANDO_RESPOSTA"
SAVE "atendimentos", id, protocoloNumero, nome, assunto, mensagem, telefone, email, dataCadastro, status
SET_BOT_MEMORY("ultimo_atendimento", id)
SET_BOT_MEMORY("ultimo_protocolo_atendimento", protocoloNumero)
BEGIN TALK
Mensagem enviada para a Secretaria!
PROTOCOLO: ${protocoloNumero}
ID: ${id}
Nome: ${nome}
Assunto: ${assunto}
Mensagem: ${mensagem}
Status: Aguardando resposta (até 2 dias úteis)
Contato da Secretaria:
Telefone: (21) 3333-4444
WhatsApp: (21) 99999-8888
Horário: Segunda a Sexta, 8h às 17h
Email: secretaria@salesianos.br
Endereço:
Rua Salesiana, 123 - Centro
CEP: 20000-000 - Rio de Janeiro/RJ
Registro salvo com sucesso e e-mail de confirmação enviado!
END TALK
BEGIN MAIL email
Subject: Confirmação de Contato - Protocolo ${protocoloNumero}
Prezado(a) ${nome},
Recebemos sua mensagem para a Secretaria da Escola Salesiana.
DADOS DO CONTATO:
===========================================
Protocolo: ${protocoloNumero}
Assunto: ${assunto}
Mensagem: ${mensagem}
===========================================
Responderemos em até 2 dias úteis.
Atenciosamente,
Secretaria da Escola Salesiana
Tel: (21) 3333-4444 | WhatsApp: (21) 99999-8888
END MAIL
RETURN id

View file

@ -0,0 +1,41 @@
{
"name": "contato_secretaria",
"description": "Enviar mensagem para a secretaria da Escola Salesiana (Confirmar todos os dados com o usuário antes de executar a ferramenta)",
"input_schema": {
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "Email para contato",
"example": "joao@example.com"
},
"nome": {
"type": "string",
"description": "Nome do interessado",
"example": "João Silva"
},
"assunto": {
"type": "string",
"description": "Assunto da mensagem",
"example": "Informações sobre mensalidades"
},
"mensagem": {
"type": "string",
"description": "Mensagem completa",
"example": "Gostaria de saber as formas de pagamento disponíveis"
},
"telefone": {
"type": "string",
"description": "Telefone para retorno",
"example": "(21) 99999-9999"
}
},
"required": [
"nome",
"assunto",
"mensagem",
"telefone",
"email"
]
}
}

View file

@ -0,0 +1,44 @@
{
"type": "function",
"function": {
"name": "contato_secretaria",
"description": "Enviar mensagem para a secretaria da Escola Salesiana (Confirmar todos os dados com o usuário antes de executar a ferramenta)",
"parameters": {
"type": "object",
"properties": {
"nome": {
"type": "string",
"description": "Nome do interessado",
"example": "João Silva"
},
"mensagem": {
"type": "string",
"description": "Mensagem completa",
"example": "Gostaria de saber as formas de pagamento disponíveis"
},
"assunto": {
"type": "string",
"description": "Assunto da mensagem",
"example": "Informações sobre mensalidades"
},
"telefone": {
"type": "string",
"description": "Telefone para retorno",
"example": "(21) 99999-9999"
},
"email": {
"type": "string",
"description": "Email para contato",
"example": "joao@example.com"
}
},
"required": [
"nome",
"assunto",
"mensagem",
"telefone",
"email"
]
}
}
}

View file

@ -0,0 +1,15 @@
ADD SUGGESTION TEXT "NOVA_MATRICULA" as "NOVA_MATRICULA";
ADD SUGGESTION TEXT "TRANSFERENCIA" as "TRANSFERENCIA";
ADD SUGGESTION TEXT "RENOVACAO" as "RENOVACAO";
let resultado = "";
if tipo == "NOVA_MATRICULA" {
let resultado = "Documentos para Nova Matrícula - DOCUMENTOS do ALUNO: Certidão de nascimento (original e cópia), CPF (se possuir), Histórico escolar original, Declaração de transferência (se vier de outra escola), Comprovante de residência (últimos 3 meses), 2 fotos 3x4 recentes, Carteira de vacinação atualizada. DOCUMENTOS DOS RESPONSÁVEIS: RG e CPF (pai e/ou mãe), Comprovante de renda (para análise de bolsa). Prazo para entrega: até 30 dias antes do início das aulas.";
}
if tipo == "TRANSFERENCIA" {
let resultado = "Documentos para Transferência: Histórico escolar original, Declaração de transferência da escola de origem, Certidão de nascimento (cópia autenticada), Comprovante de residência (últimos 3 meses), 2 fotos 3x4 recentes, Boletim escolar do ano atual. Documentos estrangeiros precisam de tradução juramentada.";
}
if tipo == "RENOVACAO" {
let resultado = "Documentos para Renovação de Matrícula: Comprovante de residência atualizado, Requerimento de renovação (fornecido pela escola), Comprovantes de pagamento em dia. Cópias podem ser feitas na secretaria.";
}
TALK resultado;
return resultado;

View file

@ -0,0 +1,20 @@
DESCRIPTION "Listar documentos necessários para matrícula, transferência ou renovação na Escola Salesiana"
PARAM tipo AS STRING ENUM ["NOVA_MATRICULA", "TRANSFERENCIA", "RENOVACAO"] LIKE "NOVA_MATRICULA" DESCRIPTION "Tipo: NOVA_MATRICULA para nova matrícula, TRANSFERENCIA para transferência, RENOVACAO para renovação"
resultado = ""
IF tipo = "NOVA_MATRICULA" THEN
resultado = "Documentos para Nova Matrícula - DOCUMENTOS DO ALUNO: Certidão de nascimento (original e cópia), CPF (se possuir), Histórico escolar original, Declaração de transferência (se vier de outra escola), Comprovante de residência (últimos 3 meses), 2 fotos 3x4 recentes, Carteira de vacinação atualizada. DOCUMENTOS DOS RESPONSÁVEIS: RG e CPF (pai e/ou mãe), Comprovante de renda (para análise de bolsa). Prazo para entrega: até 30 dias antes do início das aulas."
END IF
IF tipo = "TRANSFERENCIA" THEN
resultado = "Documentos para Transferência: Histórico escolar original, Declaração de transferência da escola de origem, Certidão de nascimento (cópia autenticada), Comprovante de residência (últimos 3 meses), 2 fotos 3x4 recentes, Boletim escolar do ano atual. Documentos estrangeiros precisam de tradução juramentada."
END IF
IF tipo = "RENOVACAO" THEN
resultado = "Documentos para Renovação de Matrícula: Comprovante de residência atualizado, Requerimento de renovação (fornecido pela escola), Comprovantes de pagamento em dia. Cópias podem ser feitas na secretaria."
END IF
TALK resultado
RETURN resultado

View file

@ -0,0 +1,17 @@
{
"name": "documentos_necessarios",
"description": "Listar documentos necessários para matrícula, transferência ou renovação na Escola Salesiana",
"input_schema": {
"type": "object",
"properties": {
"tipo": {
"type": "string",
"description": "Tipo: NOVA_MATRICULA para nova matrícula, TRANSFERENCIA para transferência, RENOVACAO para renovação",
"example": "NOVA_MATRICULA"
}
},
"required": [
"tipo"
]
}
}

View file

@ -0,0 +1,25 @@
{
"type": "function",
"function": {
"name": "documentos_necessarios",
"description": "Listar documentos necessários para matrícula, transferência ou renovação na Escola Salesiana",
"parameters": {
"type": "object",
"properties": {
"tipo": {
"type": "string",
"description": "Tipo: NOVA_MATRICULA para nova matrícula, TRANSFERENCIA para transferência, RENOVACAO para renovação",
"example": "NOVA_MATRICULA",
"enum": [
"NOVA_MATRICULA",
"TRANSFERENCIA",
"RENOVACAO"
]
}
},
"required": [
"tipo"
]
}
}
}

View file

@ -0,0 +1,3 @@
let resultado = "Cursos e Séries Disponíveis na Escola Salesiana - ENSINO FUNDAMENTAL I (1º ao 5º ano): Horário Manhã (7h30 às 11h30) ou Tarde (13h às 17h), Máximo 30 alunos por turma, Educação integral disponível. ENSINO FUNDAMENTAL II (6º ao 9º ano): Horário Manhã (7h15 às 11h45) ou Tarde (13h15 às 17h45), Laboratórios de ciências e informática, Inglês desde o 6º ano. ENSINO MÉDIO (1º ao 3º ano): Horário Manhã (7h às 12h20), Preparação para o ENEM, Laboratórios de física química e biologia, Opções de cursos técnicos integrados. Para fazer sua inscrição utilize a ferramenta inscricao. Para visitar a escola utilize agendamento_visita.";
TALK resultado;
return resultado;

View file

@ -0,0 +1,8 @@
DESCRIPTION "Obter informações sobre os cursos e séries disponíveis na Escola Salesiana"
PARAM serie AS STRING LIKE "6º ano" DESCRIPTION "Série ou curso desejado (opcional)"
resultado = "Cursos e Séries Disponíveis na Escola Salesiana - ENSINO FUNDAMENTAL I (1º ao 5º ano): Horário Manhã (7h30 às 11h30) ou Tarde (13h às 17h), Máximo 30 alunos por turma, Educação integral disponível. ENSINO FUNDAMENTAL II (6º ao 9º ano): Horário Manhã (7h15 às 11h45) ou Tarde (13h15 às 17h45), Laboratórios de ciências e informática, Inglês desde o 6º ano. ENSINO MÉDIO (1º ao 3º ano): Horário Manhã (7h às 12h20), Preparação para o ENEM, Laboratórios de física química e biologia, Opções de cursos técnicos integrados. Para fazer sua inscrição utilize a ferramenta inscricao. Para visitar a escola utilize agendamento_visita."
TALK resultado
RETURN resultado

View file

@ -0,0 +1,17 @@
{
"name": "informacoes_curso",
"description": "Obter informações sobre os cursos e séries disponíveis na Escola Salesiana",
"input_schema": {
"type": "object",
"properties": {
"serie": {
"type": "string",
"description": "Série ou curso desejado (opcional)",
"example": "6º ano"
}
},
"required": [
"serie"
]
}
}

View file

@ -0,0 +1,20 @@
{
"type": "function",
"function": {
"name": "informacoes_curso",
"description": "Obter informações sobre os cursos e séries disponíveis na Escola Salesiana",
"parameters": {
"type": "object",
"properties": {
"serie": {
"type": "string",
"description": "Série ou curso desejado (opcional)",
"example": "6º ano"
}
},
"required": [
"serie"
]
}
}
}

View file

@ -0,0 +1,25 @@
ADD SUGGESTION TEXT "MANHA" as "MANHA";
ADD SUGGESTION TEXT "TARDE" as "TARDE";
let id = "INS-" + FORMAT(NOW(), "yyyyMMdd") + "-" + FORMAT(RANDOM(1000, 9999), "0000");
let protocoloNumero = "INS" + FORMAT(RANDOM(100000, 999999), "000000");
let dataCadastro = FORMAT(NOW(), "yyyy-MM-dd HH:mm:ss");
let status = "AGUARDANDO_ANALISE";
let dataNascDisplay = MID(dataNascimento, 9, 2) + "/" + MID(dataNascimento, 6, 2) + "/" + MID(dataNascimento, 1, 4);
let turnoDescricao = "Manhã";
if turno == "TARDE" {
let turnoDescricao = "Tarde";
}
let __save_data_0__ = #{id: id, protocoloNumero: protocoloNumero, nomeCompleto: nomeCompleto, dataNascimento: dataNascimento, nomeResponsavel: nomeResponsavel, telefone: telefone, email: email, endereco: endereco, serie: serie, turno: turno, dataCadastro: dataCadastro, status: status}; SAVE inscricoes, __save_data_0__;
SET_BOT_MEMORY("ultima_inscricao", id);
SET_BOT_MEMORY("ultimo_protocolo_inscricao", protocoloNumero);
let __talk_chunk_0__ = "Inscrição enviada com sucesso!" + "\n" + "PROTOCOLO: " + protocoloNumero + "\n" + "ID: " + id + "\n" + "Aluno: " + nomeCompleto + "\n" + "Data de Nascimento: " + dataNascDisplay;
let __talk_chunk_1__ = "Responsável: " + nomeResponsavel + "\n" + "Série: " + serie + "\n" + "Turno: " + turnoDescricao + "\n" + "Status: Aguardando análise" + "\n" + "PRÓXIMOS PASSOS:";
let __talk_chunk_2__ = "• Você receberá um e-mail com instruções" + "\n" + "• Entraremos em contato em até 3 dias úteis" + "\n" + "• Verifique também sua caixa de spam" + "\n" + "Contato da Secretaria:" + "\n" + "Telefone: (21) 3333-4444";
let __talk_chunk_3__ = "WhatsApp: (21) 99999-8888" + "\n" + "Email: secretaria@salesianos.br" + "\n" + "Registro salvo com sucesso e e-mail de confirmação enviado!";
TALK __talk_chunk_0__ + "\n" + __talk_chunk_1__ + "\n" + __talk_chunk_2__ + "\n" + __talk_chunk_3__;
let __mail_body_0__ = "Prezado(a) " + nomeResponsavel + "," + "\n" + "Recebemos com alegria a inscrição de " + nomeCompleto + " na Escola Salesiana." + "\n" + "DADOS DA INSCRIÇÃO:" + "\n" + "===========================================" + "\n" + "Protocolo: " + protocoloNumero;
let __mail_body_1__ = "ID: " + id + "\n" + "Aluno: " + nomeCompleto + "\n" + "Data de Nascimento: " + dataNascDisplay + "\n" + "Responsável: " + nomeResponsavel + "\n" + "Série: " + serie;
let __mail_body_2__ = "Turno: " + turnoDescricao + "\n" + "===========================================" + "\n" + "PRÓXIMOS PASSOS:" + "\n" + "1. Aguarde nosso contato por e-mail ou telefone" + "\n" + "2. Providencie a documentação necessária";
let __mail_body_3__ = "3. Compareça à secretaria para finalizar a matrícula" + "\n" + "Que Deus abençoe sua família!" + "\n" + "Atenciosamente," + "\n" + "Secretaria da Escola Salesiana" + "\n" + "Tel: (21) 3333-4444 | WhatsApp: (21) 99999-8888";
send_mail(email, "Confirmação de Inscrição - Protocolo ${protocoloNumero}", __mail_body_0__ + "\n" + __mail_body_1__ + "\n" + __mail_body_2__ + "\n" + __mail_body_3__, []);
return id;

View file

@ -0,0 +1,87 @@
DESCRIPTION "Fazer inscrição para a Escola Salesiana (Confirmar todos os dados com o usuário antes de executar a ferramenta)"
PARAM nomeCompleto AS STRING LIKE "João Silva Santos" DESCRIPTION "Nome completo do aluno"
PARAM dataNascimento AS DATE LIKE "2015-03-15" DESCRIPTION "Data de nascimento (formato ISO: YYYY-MM-DD)"
PARAM nomeResponsavel AS STRING LIKE "Maria Silva Santos" DESCRIPTION "Nome do responsável"
PARAM telefone AS STRING LIKE "(21) 99999-9999" DESCRIPTION "Telefone com DDD"
PARAM email AS EMAIL LIKE "maria.santos@example.com" DESCRIPTION "Email para contato"
PARAM endereco AS STRING LIKE "Rua das Flores, 123 - Centro" DESCRIPTION "Endereço completo"
PARAM serie AS STRING LIKE "8º ano" DESCRIPTION "Série desejada"
PARAM turno AS STRING ENUM ["MANHA", "TARDE"] LIKE "MANHA" DESCRIPTION "Turno: MANHA ou TARDE"
id = "INS-" + FORMAT(NOW(), "yyyyMMdd") + "-" + FORMAT(RANDOM(1000, 9999), "0000")
protocoloNumero = "INS" + FORMAT(RANDOM(100000, 999999), "000000")
dataCadastro = FORMAT(NOW(), "yyyy-MM-dd HH:mm:ss")
status = "AGUARDANDO_ANALISE"
dataNascDisplay = MID(dataNascimento, 9, 2) + "/" + MID(dataNascimento, 6, 2) + "/" + MID(dataNascimento, 1, 4)
turnoDescricao = "Manhã"
IF turno = "TARDE" THEN
turnoDescricao = "Tarde"
END IF
SAVE "inscricoes", id, protocoloNumero, nomeCompleto, dataNascimento, nomeResponsavel, telefone, email, endereco, serie, turno, dataCadastro, status
SET_BOT_MEMORY("ultima_inscricao", id)
SET_BOT_MEMORY("ultimo_protocolo_inscricao", protocoloNumero)
BEGIN TALK
Inscrição enviada com sucesso!
PROTOCOLO: ${protocoloNumero}
ID: ${id}
Aluno: ${nomeCompleto}
Data de Nascimento: ${dataNascDisplay}
Responsável: ${nomeResponsavel}
Série: ${serie}
Turno: ${turnoDescricao}
Status: Aguardando análise
PRÓXIMOS PASSOS:
Você receberá um e-mail com instruções
Entraremos em contato em até 3 dias úteis
Verifique também sua caixa de spam
Contato da Secretaria:
Telefone: (21) 3333-4444
WhatsApp: (21) 99999-8888
Email: secretaria@salesianos.br
Registro salvo com sucesso e e-mail de confirmação enviado!
END TALK
BEGIN MAIL email
Subject: Confirmação de Inscrição - Protocolo ${protocoloNumero}
Prezado(a) ${nomeResponsavel},
Recebemos com alegria a inscrição de ${nomeCompleto} na Escola Salesiana.
DADOS DA INSCRIÇÃO:
===========================================
Protocolo: ${protocoloNumero}
ID: ${id}
Aluno: ${nomeCompleto}
Data de Nascimento: ${dataNascDisplay}
Responsável: ${nomeResponsavel}
Série: ${serie}
Turno: ${turnoDescricao}
===========================================
PRÓXIMOS PASSOS:
1. Aguarde nosso contato por e-mail ou telefone
2. Providencie a documentação necessária
3. Compareça à secretaria para finalizar a matrícula
Que Deus abençoe sua família!
Atenciosamente,
Secretaria da Escola Salesiana
Tel: (21) 3333-4444 | WhatsApp: (21) 99999-8888
END MAIL
RETURN id

View file

@ -0,0 +1,60 @@
{
"name": "inscricao",
"description": "Fazer inscrição para a Escola Salesiana (Confirmar todos os dados com o usuário antes de executar a ferramenta)",
"input_schema": {
"type": "object",
"properties": {
"dataNascimento": {
"type": "string",
"description": "Data de nascimento (formato ISO: YYYY-MM-DD)",
"example": "2015-03-15",
"format": "date"
},
"email": {
"type": "string",
"description": "Email para contato",
"example": "maria.santos@example.com"
},
"endereco": {
"type": "string",
"description": "Endereço completo",
"example": "Rua das Flores, 123 - Centro"
},
"nomeCompleto": {
"type": "string",
"description": "Nome completo do aluno",
"example": "João Silva Santos"
},
"telefone": {
"type": "string",
"description": "Telefone com DDD",
"example": "(21) 99999-9999"
},
"turno": {
"type": "string",
"description": "Turno: MANHA ou TARDE",
"example": "MANHA"
},
"serie": {
"type": "string",
"description": "Série desejada",
"example": "8º ano"
},
"nomeResponsavel": {
"type": "string",
"description": "Nome do responsável",
"example": "Maria Silva Santos"
}
},
"required": [
"nomeCompleto",
"dataNascimento",
"nomeResponsavel",
"telefone",
"email",
"endereco",
"serie",
"turno"
]
}
}

View file

@ -0,0 +1,67 @@
{
"type": "function",
"function": {
"name": "inscricao",
"description": "Fazer inscrição para a Escola Salesiana (Confirmar todos os dados com o usuário antes de executar a ferramenta)",
"parameters": {
"type": "object",
"properties": {
"nomeCompleto": {
"type": "string",
"description": "Nome completo do aluno",
"example": "João Silva Santos"
},
"telefone": {
"type": "string",
"description": "Telefone com DDD",
"example": "(21) 99999-9999"
},
"dataNascimento": {
"type": "string",
"description": "Data de nascimento (formato ISO: YYYY-MM-DD)",
"example": "2015-03-15",
"format": "date"
},
"serie": {
"type": "string",
"description": "Série desejada",
"example": "8º ano"
},
"turno": {
"type": "string",
"description": "Turno: MANHA ou TARDE",
"example": "MANHA",
"enum": [
"MANHA",
"TARDE"
]
},
"email": {
"type": "string",
"description": "Email para contato",
"example": "maria.santos@example.com"
},
"endereco": {
"type": "string",
"description": "Endereço completo",
"example": "Rua das Flores, 123 - Centro"
},
"nomeResponsavel": {
"type": "string",
"description": "Nome do responsável",
"example": "Maria Silva Santos"
}
},
"required": [
"nomeCompleto",
"dataNascimento",
"nomeResponsavel",
"telefone",
"email",
"endereco",
"serie",
"turno"
]
}
}
}

View file

@ -0,0 +1,21 @@
USE_WEBSITE("https://salesianos.br", "30d");
USE_KB "carta";
USE_KB "proc";
USE TOOL "inscricao";
USE TOOL "consultar_inscricao";
USE TOOL "agendamento_visita";
USE TOOL "informacoes_curso";
USE TOOL "documentos_necessarios";
USE TOOL "contato_secretaria";
USE TOOL "";
USE TOOL "calendario_letivo";
ADD_SUGGESTION_TOOL "inscricao" as "📚 Fazer Inscrição";
ADD_SUGGESTION_TOOL "consultar_inscricao" as "🔍 Consultar Inscrição";
ADD_SUGGESTION_TOOL "agendamento_visita" as "🏫 Agendar Visita";
ADD_SUGGESTION_TOOL "informacoes_curso" as "📖 Informações de Cursos";
ADD_SUGGESTION_TOOL "documentos_necessarios" as "📋 Documentos Necessários";
ADD_SUGGESTION_TOOL "contato_secretaria" as "📞 Falar com Secretaria";
ADD_SUGGESTION_TOOL "" as "Segunda Via de Boleto";
ADD_SUGGESTION_TOOL "calendario_letivo" as "📅 Calendário Letivo";
ADD_SUGGESTION_TOOL "outros" as "Outros";
TALK "Olá! Sou o assistente virtual da Escola Salesiana. Como posso ajudá-lo hoje com inscrições, visitas, informações sobre cursos, documentos ou calendário letivo?";

View file

@ -0,0 +1,29 @@
USE_WEBSITE("https://salesianos.br", "30d")
USE_KB "carta"
USE_KB "proc"
USE TOOL "inscricao"
USE TOOL "consultar_inscricao"
USE TOOL "agendamento_visita"
USE TOOL "informacoes_curso"
USE TOOL "documentos_necessarios"
USE TOOL "contato_secretaria"
USE TOOL ""
USE TOOL "calendario_letivo"
ADD_SUGGESTION_TOOL "inscricao" AS "📚 Fazer Inscrição"
ADD_SUGGESTION_TOOL "consultar_inscricao" AS "🔍 Consultar Inscrição"
ADD_SUGGESTION_TOOL "agendamento_visita" AS "🏫 Agendar Visita"
ADD_SUGGESTION_TOOL "informacoes_curso" AS "📖 Informações de Cursos"
ADD_SUGGESTION_TOOL "documentos_necessarios" AS "📋 Documentos Necessários"
ADD_SUGGESTION_TOOL "contato_secretaria" AS "📞 Falar com Secretaria"
ADD_SUGGESTION_TOOL "" AS "Segunda Via de Boleto"
ADD_SUGGESTION_TOOL "calendario_letivo" AS "📅 Calendário Letivo"
ADD_SUGGESTION_TOOL "outros" AS "Outros"
REM Validar região para escolha de secretaria.
REM Sincronizar as bases entre o Bot e a Org.
TALK "Olá! Sou o assistente virtual da Escola Salesiana. Como posso ajudá-lo hoje com inscrições, visitas, informações sobre cursos, documentos ou calendário letivo?"

View file

@ -0,0 +1,9 @@
{
"name": "start",
"description": "",
"input_schema": {
"type": "object",
"properties": {},
"required": []
}
}

View file

@ -0,0 +1,12 @@
{
"type": "function",
"function": {
"name": "start",
"description": "",
"parameters": {
"type": "object",
"properties": {},
"required": []
}
}
}

View file

@ -0,0 +1,37 @@
TABLE inscricoes;
FIELD id as STRING;
FIELD protocoloNumero as STRING;
FIELD nomeCompleto as STRING;
FIELD dataNascimento as DATE;
FIELD nomeResponsavel as STRING;
FIELD telefone as STRING;
FIELD email as STRING;
FIELD endereco as STRING;
FIELD serie as STRING;
FIELD turno as STRING;
FIELD dataCadastro as DATETIME;
FIELD status as STRING;
END TABLE;
TABLE agendamentos_visita;
FIELD id as STRING;
FIELD protocoloNumero as STRING;
FIELD nomeResponsavel as STRING;
FIELD telefone as STRING;
FIELD email as STRING;
FIELD dataVisita as DATE;
FIELD horario as STRING;
FIELD numeroVisitantes as INTEGER;
FIELD dataCadastro as DATETIME;
FIELD status as STRING;
END TABLE;
TABLE atendimentos;
FIELD id as STRING;
FIELD protocoloNumero as STRING;
FIELD nome as STRING;
FIELD assunto as STRING;
FIELD mensagem as STRING;
FIELD telefone as STRING;
FIELD email as STRING;
FIELD dataCadastro as DATETIME;
FIELD status as STRING;
END TABLE;

View file

@ -0,0 +1,39 @@
TABLE inscricoes
FIELD id AS STRING
FIELD protocoloNumero AS STRING
FIELD nomeCompleto AS STRING
FIELD dataNascimento AS DATE
FIELD nomeResponsavel AS STRING
FIELD telefone AS STRING
FIELD email AS STRING
FIELD endereco AS STRING
FIELD serie AS STRING
FIELD turno AS STRING
FIELD dataCadastro AS DATETIME
FIELD status AS STRING
END TABLE
TABLE agendamentos_visita
FIELD id AS STRING
FIELD protocoloNumero AS STRING
FIELD nomeResponsavel AS STRING
FIELD telefone AS STRING
FIELD email AS STRING
FIELD dataVisita AS DATE
FIELD horario AS STRING
FIELD numeroVisitantes AS INTEGER
FIELD dataCadastro AS DATETIME
FIELD status AS STRING
END TABLE
TABLE atendimentos
FIELD id AS STRING
FIELD protocoloNumero AS STRING
FIELD nome AS STRING
FIELD assunto AS STRING
FIELD mensagem AS STRING
FIELD telefone AS STRING
FIELD email AS STRING
FIELD dataCadastro AS DATETIME
FIELD status AS STRING
END TABLE

View file

@ -0,0 +1,9 @@
{
"name": "tables",
"description": "",
"input_schema": {
"type": "object",
"properties": {},
"required": []
}
}

View file

@ -0,0 +1,12 @@
{
"type": "function",
"function": {
"name": "tables",
"description": "",
"parameters": {
"type": "object",
"properties": {},
"required": []
}
}
}