Manual do Usuário
Guia completo para usar o SmartProj
1. Introdução
Bem-vindo ao SmartProj! Este é um sistema completo de gerenciamento de projetos que permite organizar tarefas, equipes, recursos financeiros e muito mais.
2. Primeiros Passos
2.1. Configurando seu Perfil
- Acesse Configurações no menu do avatar (canto inferior esquerdo)
- Preencha seu nome completo
- Faça upload de uma foto de perfil (opcional)
- Adicione informações de contato se desejar
2.2. Configurando sua Empresa
- Em Configurações > Empresa
- Informe o nome da sua empresa
- Adicione endereço e telefone (opcional)
- Faça upload do logo da empresa (opcional)
2.3. Entendendo o Dashboard
O Dashboard é sua página inicial após fazer login. Ele oferece uma visão geral completa de suas atividades:
- Resumo de Projetos: Estatísticas de projetos ativos, concluídos e pausados
- Resumo Financeiro: Totais de orçamento, despesas e diferença
- Taxa de Conclusão: Gráfico de pizza mostrando o percentual de tarefas concluídas vs. em andamento
- Produtividade: Gráfico de linha mostrando:
- Tarefas criadas ao longo do tempo
- Tarefas concluídas ao longo do tempo
- Tarefas atrasadas (vencidas e não concluídas)
- Tarefas Recentes: Lista das suas últimas tarefas com status coloridos (herdam cores das colunas Kanban)
Layout Compacto
Os cards do Dashboard foram redesenhados para serem mais compactos, permitindo visualizar mais informações na mesma tela sem perder a clareza:
- Cards de estatísticas menores, com ícones e números reduzidos
- Menor espaçamento entre os cards e gráficos
- Listas de projetos e tarefas recentes mais densas
Exemplo Visual do Dashboard:
Projetos
15
Tarefas
89
Concluídas
54
Equipes
8
Taxa de Conclusão
54 de 89 tarefas concluídas
Tarefas Recentes
3. Centros de Custo
Os Centros de Custo ajudam a organizar projetos por departamento, área ou categoria.
3.1. Criar Centro de Custo
- Acesse Centros de Custo no menu principal
- Clique em "Novo Centro de Custo"
- Preencha o nome (obrigatório)
- Adicione um código identificador (opcional)
- Adicione uma descrição (opcional)
- Clique em "Salvar"
3.2. Usar Centro de Custo em Projetos
Ao criar ou editar um projeto, você pode associá-lo a um centro de custo. Isso facilita a organização e relatórios financeiros.
4. Equipes
As Equipes permitem agrupar usuários para facilitar a colaboração em projetos.
4.1. Criar Equipe
- Acesse Equipes no menu principal
- Clique em "Nova Equipe"
- Informe o nome da equipe
- Adicione uma descrição (opcional)
- Clique em "Salvar"
4.2. Adicionar Membros à Equipe
- Abra a equipe desejada
- Na seção "Membros", clique em "Adicionar Membro"
- Selecione o usuário da lista
- Confirme a adição
5. Projetos
Os Projetos são o coração do SmartProj. Eles organizam tarefas, equipes e recursos financeiros.
5.1. Criar Projeto
- Acesse Projetos no menu principal
- Clique em "Novo Projeto"
- Preencha:
- Nome: Nome do projeto (obrigatório)
- Descrição: Detalhes do projeto
- Status: Rascunho, Ativo, Pausado, Concluído ou Cancelado
- Data Início/Fim: Período do projeto
- Cor: Cor de identificação
- Centro de Custo: Associação opcional
- Clique em "Salvar"
5.2. Visualizações do Projeto
Cada projeto possui 5 visualizações diferentes:
- Detalhes: Visão geral do projeto com:
- Card compacto com informações principais (nome, descrição, datas, status)
- Resumo financeiro com orçamento, despesas e diferença
- Gráfico de produtividade mostrando tarefas criadas e concluídas ao longo do tempo
- Lista de tarefas recentes com status colorido (herdam cores das colunas Kanban)
- Kanban: Visualização em colunas, ideal para acompanhar o fluxo de trabalho com drag-and-drop
- Lista: Visualização em tabela com status coloridos (herdam cores das colunas Kanban), fácil de filtrar e ordenar
- Gantt: Visualização de cronograma com barras de tempo, linha "Hoje" centralizada e navegação por semana/mês/ano. A coluna de tarefas exibe os responsáveis atribuídos
- Calendário: Visualização mensal com tarefas por data de vencimento
Exemplo Visual do Gantt:
Gráfico de Gantt
5.3. Gerenciar Membros do Projeto
- Abra o projeto desejado
- Na aba "Membros", clique em "Adicionar Membro"
- Selecione o usuário
- Os membros podem visualizar e editar tarefas do projeto
5.4. Colunas Kanban
Você pode personalizar as colunas Kanban do projeto:
- Criar: Adicione novas colunas conforme necessário
- Editar: Renomeie ou reordene as colunas
- Excluir: Remova colunas não utilizadas (as tarefas serão movidas)
5.5. Arquivar e Reativar Projetos
O SmartProj permite arquivar projetos que não estão mais ativos no dia a dia, sem alterar o status do projeto. Projetos arquivados somem da lista principal, mas podem ser consultados e reativados a qualquer momento.
- Na tela Projetos, clique no ícone de caixa/arquivar no card do projeto
- O projeto será movido para a tela Arquivados (menu lateral)
- Para reativar, acesse Arquivados e clique em Restaurar
- Na tela de arquivados também é possível excluir permanentemente o projeto
Exemplo Visual do Kanban:
A Fazer
Sistema de login com JWT
Em Progresso
Gráficos e estatísticas
Revisão
Concluído
6. Tarefas
As Tarefas são as unidades de trabalho dentro dos projetos.
6.1. Criar Tarefa
- Dentro de um projeto, clique em "Nova Tarefa"
- Preencha:
- Título: Nome da tarefa (obrigatório)
- Descrição: Detalhes da tarefa
- Prioridade: Baixa, Média, Alta ou Urgente
- Data de Vencimento: Quando a tarefa deve ser concluída
- Orçamento: Valor estimado (opcional)
- Coluna Kanban: Em qual coluna a tarefa inicia (o status da tarefa é definido automaticamente pela coluna)
- Clique em "Salvar"
6.2. Atribuir Tarefas
Você pode atribuir uma tarefa a um ou mais usuários:
- Abra a tarefa
- Na seção "Atribuídos", clique em "Atribuir"
- Selecione os usuários
- Os usuários atribuídos receberão notificações
6.3. Subtarefas
Quebre tarefas grandes em subtarefas menores:
- Abra a tarefa
- Na seção "Subtarefas", clique em "Adicionar Subtarefa"
- Informe o título da subtarefa
- Marque como concluída quando finalizar
6.4. Comentários
Comunique-se com a equipe através de comentários nas tarefas:
- Abra a tarefa
- Role até a seção "Comentários"
- Digite seu comentário
- Clique em "Enviar"
6.5. Anexos
Anexe arquivos às tarefas:
- Abra a tarefa
- Na seção "Anexos", clique em "Adicionar Anexo"
- Selecione o arquivo
- O arquivo será salvo e disponibilizado para download
6.6. Lembretes
Configure lembretes para não esquecer tarefas importantes:
- Abra a tarefa
- Na seção "Lembretes", clique em "Adicionar Lembrete"
- Selecione data e hora
- Você receberá notificação no navegador e por email
6.7. Mover Tarefas no Kanban
Arraste e solte tarefas entre colunas no Kanban para atualizar o status visualmente.
6.8. Gráficos e Estatísticas da Tarefa
Ao abrir os detalhes de uma tarefa, você terá acesso a gráficos e estatísticas úteis:
- Progresso da Checklist: Gráfico de pizza mostrando o percentual de subtarefas concluídas vs. pendentes
- Histórico de Atividades: Gráfico de linha mostrando a quantidade de atividades (comentários, edições, mudanças de status) ao longo do tempo
- Você pode filtrar por período: últimos 7, 15, 30 ou 90 dias
- Útil para identificar tarefas com muita ou pouca atividade
Exemplo Visual do Modal de Tarefa:
Implementar autenticação
Sistema Web
Progresso da Checklist
3 de 4 itens concluídos
Atividades
Principais Abas do Modal de Tarefa:
- Informações: Dados gerais, gráficos de progresso e atividades
- Itens: Checklist de subtarefas (criar, marcar como concluída)
- Arquivos: Upload e gerenciamento de anexos
- Financeiro: Orçamentos e despesas da tarefa
- Lembretes: Notificações agendadas
- Comentários: Histórico de discussões da equipe
- Log de Auditoria: Histórico completo de alterações
7. Financeiro
O módulo Financeiro permite controlar orçamentos e despesas por tarefa e projeto.
7.1. Adicionar Entrada Financeira
- Abra uma tarefa
- Na seção "Financeiro", clique em "Adicionar Entrada"
- Selecione o tipo:
- Orçamento: Valor planejado
- Despesa: Valor gasto
- Informe o valor e descrição
- Selecione a data
- Clique em "Salvar"
7.2. Resumo Financeiro
Visualize resumos financeiros em:
- Por Tarefa: Na página de detalhes da tarefa
- Por Projeto: Na página de detalhes do projeto
- Relatórios: Na seção de Relatórios
8. Relatórios
Os Relatórios fornecem insights detalhados sobre projetos, tarefas e recursos financeiros, com visualizações gráficas avançadas e opções de exportação.
8.1. Visão Geral dos Relatórios
A tela de relatórios oferece uma análise completa do desempenho de projetos e tarefas, incluindo:
- Resumo Financeiro: Totais de orçamento, despesas e diferença consolidados
- Tarefas por Status: Gráfico de pizza mostrando a distribuição de tarefas por status do Kanban
- Tarefas por Prioridade: Gráfico de barras com distribuição por nível de prioridade (Baixa, Média, Alta, Urgente)
- Produtividade: Gráfico de linha mostrando tarefas criadas, concluídas e atrasadas nos últimos 30 dias
- Tabela Detalhada: Lista completa de tarefas com informações financeiras e SLA
8.2. Painel de Filtros
Use o painel de filtros para refinar os relatórios conforme suas necessidades:
- Projeto: Selecione um projeto específico ou visualize todos os projetos
- Status: Filtre por status das tarefas (Pendente, Em Andamento, Concluída, etc.)
- Prioridade: Filtre por prioridade (Baixa, Média, Alta, Urgente)
- Período: Defina data inicial e final para análise
Após ajustar os filtros, clique em "Aplicar Filtros" para atualizar todos os gráficos e a tabela.
8.3. Tabela de Tarefas Detalhadas
A tabela de tarefas oferece uma visão completa de cada tarefa:
- Título: Nome da tarefa
- Projeto: Projeto associado
- Status: Status atual com cor da coluna Kanban
- Prioridade: Nível de prioridade com badge colorido
- Prazo: Data de vencimento da tarefa
- SLA: Status do prazo (Em Dia, Vence Hoje, Atrasada, Concluída)
- Orçamento: Valor orçado para a tarefa
- Despesas: Valor total de despesas lançadas
- Diferença: Diferença entre orçamento e despesas (positivo = economia, negativo = estouro)
- Criada em: Data de criação da tarefa
8.4. Exportar Relatórios
Você pode exportar os relatórios em dois formatos:
8.4.1. Exportar CSV
Clique em "Exportar CSV" para baixar uma planilha com todas as tarefas filtradas. O arquivo CSV pode ser aberto no Excel, Google Sheets ou qualquer software de planilhas.
8.4.2. Exportar PDF
Clique em "Exportar PDF" para gerar um relatório profissional em PDF contendo:
- Cabeçalho Personalizado: Logo e nome da sua empresa (configurado em Configurações > Empresa)
- Linha de Separação: Cor da marca da empresa aplicada no cabeçalho
- Data de Geração: Data e hora da geração do relatório
- Gráfico de Produtividade: Visualização em alta resolução do gráfico de produtividade
- Tabela Completa: Todas as tarefas com suas informações financeiras e status SLA coloridos
- Rodapé: Informações da empresa e link para o SmartProj
8.5. Cores e Indicadores
Os relatórios usam cores consistentes para facilitar a visualização:
- Status SLA:
- Em Dia - Verde: Tarefa dentro do prazo
- Vence Hoje - Amarelo: Tarefa vence hoje
- Atrasada - Vermelho: Tarefa vencida e não concluída
- Concluída - Azul: Tarefa concluída
- Diferença Financeira:
- Verde: Valor positivo (economia no orçamento)
- Vermelho: Valor negativo (estouro de orçamento)
- Prioridades:
- Baixa - Cinza
- Média - Azul
- Alta - Amarelo
- Urgente - Vermelho
- Status das Tarefas: Herdam a cor personalizada das colunas do Kanban de cada projeto
Exemplo Visual da Tela de Relatórios:
🔍 Filtros
📋 Tarefas Detalhadas
| Título | Projeto | Status | Prioridade | SLA | Orçamento | Despesas | Diferença |
|---|---|---|---|---|---|---|---|
| Implementar autenticação | Sistema Web | Em Progresso | Alta | Em Dia | R$ 15.000 | R$ 8.500 | R$ 6.500 |
| Revisar código backend | API Gateway | Concluída | Alta | Concluída | R$ 8.000 | R$ 9.200 | -R$ 1.200 |
| Criar testes unitários | Sistema Web | A Fazer | Média | Atrasada | R$ 5.000 | R$ 0 | R$ 5.000 |
9. Gerenciamento de Usuários
Gerentes podem gerenciar usuários da empresa.
9.1. Criar Usuário
- Acesse Usuários no menu principal
- Clique em "Novo Usuário"
- Preencha:
- Email: Email único do usuário
- Senha: Mínimo 6 caracteres
- Nome: Nome completo
- Função: Gerente, Membro ou Visualizador
- Clique em "Salvar"
- Gerente: Acesso completo, pode gerenciar usuários
- Membro: Pode editar recursos onde está associado
- Visualizador: Apenas visualização, sem edição
9.2. Excluir Usuário
Ao excluir um usuário, você pode transferir todas as suas atribuições (projetos, tarefas, equipes) para outro usuário, garantindo que nenhum dado seja perdido.
- Abra o usuário que deseja excluir
- Clique em "Excluir"
- Selecione o usuário que receberá as atribuições
- Confirme a exclusão
10. Assistente IA (Aistem)
O Aistem é um assistente de inteligência artificial integrado ao SmartProj que permite interagir com o sistema usando linguagem natural.
10.1. Como Usar o Aistem
- Clique no botão flutuante do assistente (geralmente no canto inferior direito)
- Digite sua pergunta ou comando em linguagem natural
- O Aistem processará sua solicitação e executará ações ou fornecerá informações
10.2. Exemplos de Comandos
- "Crie um projeto chamado Marketing Digital" - Cria um novo projeto
- "Mostre meus projetos ativos" - Lista projetos com status ativo
- "Adicione uma tarefa 'Desenvolver API' no projeto X" - Cria tarefa em um projeto
- "Quais tarefas estão atrasadas?" - Lista tarefas com prazo vencido
- "Mostre o progresso do projeto Y" - Exibe estatísticas do projeto
10.3. Aistem no WhatsApp
O Aistem também pode ser acessado pelo WhatsApp. Envie mensagens de texto ou áudio para o número da empresa e o Aistem responderá automaticamente. Veja mais detalhes na seção WhatsApp.
10.4. Respostas de Áudio (TTS)
Quando ativado nas configurações, o Aistem pode responder mensagens de voz com áudio. A resposta será em áudio se:
- O usuário enviou uma mensagem de voz
- A resposta for curta o suficiente (dentro do limite configurado)
- O TTS estiver habilitado no painel de configurações
10.5. Limpeza de Histórico de Conversas
É possível apagar o histórico de conversas com o Aistem de duas formas:
- Página "Histórico de Conversas" (
/ai-agent/history.php): possui o botão "Limpar todo o histórico", que apaga todas as conversas do usuário logado — incluindo as conversas feitas pelo WhatsApp, que ficam na mesma base. - Modal do widget do assistente: o modal "Histórico de Conversas" tem o botão "🗑️ Limpar tudo" e um botão de apagar em cada conversa da lista, ambos com confirmação. Ao apagar a conversa ativa, o widget volta para a mensagem de boas-vindas.
10.6. Consultas SQL Somente Leitura
Quando as ferramentas padrão não cobrirem um filtro complexo, o Aistem pode montar e executar
consultas SQL somente leitura (tool run_select_query). A consulta é
restrita a SELECT, executada em transação de leitura com limite de tempo e de linhas,
garantindo que nenhum dado seja alterado.
10.7. Tarefas Grandes e Multi-etapa
Para pedidos grandes ou com várias etapas (ex: criar um projeto com várias tarefas e lembretes), o Aistem executa todas as etapas e responde uma única vez ao final, com o resultado completo — sem mensagens intermediárias como "um momento".
11. WhatsApp
O SmartProj se integra ao WhatsApp de duas formas:
- Evolution API: conexão via WhatsApp Web (QR Code), ideal para testes e cenários flexíveis.
- WhatsApp Business API (WABA / Meta): integração oficial com a Meta, recomendada para uso produtivo e envio em escala.
Em ambos os casos, os usuários podem conversar com o Aistem diretamente pelo aplicativo do WhatsApp.
11.1. Como Funciona
- O usuário envia uma mensagem para o número da empresa no WhatsApp
- A Evolution API encaminha a mensagem para o SmartProj via webhook
- O SmartProj identifica o usuário pelo telefone
- O Aistem processa a mensagem e envia uma resposta
- A resposta é entregue ao usuário pelo WhatsApp
11.2. Tipos de Mensagem Suportados
- Texto: respostas diretas do Aistem
- Áudio: transcrito para texto antes de ser processado
- Imagem: o Aistem descreve o conteúdo da imagem
- Documento: o Aistem extrai e resume o texto do documento
11.3. Respostas de Áudio
Se o usuário enviar uma mensagem de voz e o TTS estiver ativado, o Aistem pode responder com áudio. O administrador pode configurar:
- Modelo de voz (ex:
pt_BR-faber-medium) - Velocidade da fala
- Limite máximo de caracteres da resposta
- Se deseja resposta automática de áudio para mensagens de voz
11.4. Proteção contra Loops com Bots
O SmartProj possui proteção automática contra outros bots ou agents que possam entrar em loop de mensagens. Se o mesmo número enviar mensagens repetidas ou com padrões de bot em curto espaço de tempo, o sistema responderá apenas uma vez.
11.5. WhatsApp Business API (WABA / Meta)
A aba Configurações > Integrações > WABA permite conectar o SmartProj ao WhatsApp oficial da Meta.
- Crie um app no Facebook Developers com o produto WhatsApp.
- Obtenha o Access Token, Phone Number ID e Business Account ID.
- Verifique seu número de negócio na Meta.
- Preencha os campos na aba WABA e salve.
- Configure o webhook no app da Meta usando a URL exibida na tela e o Webhook Verify Token.
- Ative a integração e envie uma mensagem de teste.
O webhook da Meta deve apontar para /api/waba-webhook.php. Se o App Secret for preenchido, o SmartProj validará automaticamente a assinatura X-Hub-Signature-256 de cada evento.
A WABA funciona em paralelo com a Evolution API. Quando ativa, o Aistem responde mensagens recebidas por WABA; a tool send_whatsapp_message e os lembretes também usam WABA automaticamente.
11.6. Alerta de Status no Topo da Página
Administradores e líderes veem um alerta vermelho no topo quando uma instância WhatsApp (Evolution ou WABA) está realmente desconectada. Esse alerta:
- Nunca aparece na landing page.
- Não aparece para usuários comuns (só para admins/líderes).
- Não aparece quando a integração está desativada ou não configurada.
- Só aparece quando há uma instância realmente desconectada.
11.7. Prioridade de Canais e Fallback
Com Evolution API e WABA configuradas, o envio de mensagens segue estas regras:
- Respostas do Aistem: saem pelo mesmo canal em que o usuário chamou (Evolution ou WABA). Se o envio pelo canal original falhar (instância desconectada, erro de API), o sistema tenta reenviar automaticamente pelo outro canal (fallback Evolution ↔ WABA).
- Lembretes: a Evolution API tem prioridade quando está ativa, configurada e com a instância conectada. Se estiver desativada ou desconectada, o envio desvia automaticamente para a WABA (Meta).
Os lembretes deixam de ser enviados quando a tarefa é concluída ou cancelada, ou quando o projeto é concluído, pausado, cancelado ou arquivado.
12. Configurações
11.1. Perfil do Usuário
Acesse através do menu do avatar (canto inferior esquerdo) > Configurações
- Editar nome completo
- Alterar foto de perfil
- Atualizar telefone e biografia
- Alterar senha
12.2. Configurações da Empresa
Acesse Configurações > Empresa para personalizar as informações da sua empresa.
- Nome da empresa: Nome que aparece nos relatórios e documentos
- Logo da empresa: Upload de imagem para cabeçalho de relatórios em PDF (formatos: PNG, JPG, SVG)
- Cor da marca: Cor principal da empresa usada em cabeçalhos de relatórios em PDF
- Endereço: Endereço completo da empresa
- Telefone: Número de contato
- Website: URL do site da empresa
12.3. Integrações
Acesse Configurações > Integrações para configurar serviços externos.
- WhatsApp (Evolution): configure a Evolution API, crie a instância e conecte o QR Code.
- WABA (WhatsApp Business API / Meta): configure o Access Token, Phone Number ID, Business Account ID, App Secret e Webhook Verify Token.
- TTS (Text-to-Speech): disponível apenas para super admin, permite configurar vozes e respostas de áudio.
12.4. TTS — Respostas de Áudio
O super admin pode acessar Super Admin > Configurações > aba TTS para configurar:
- Habilitar TTS: ativa/desativa respostas de áudio
- Modelo de voz: voz usada na síntese (ex: pt_BR-faber-medium)
- Velocidade: velocidade da fala (recomendado 1.2 a 1.4)
- Formato: MP3 (recomendado) ou OGG
- Máximo de caracteres: respostas maiores serão enviadas como texto
- Resposta automática para áudio: responde em áudio quando o usuário enviar mensagem de voz
12.5. STT — Transcrição de Áudio (Whisper.cpp)
O super admin pode acessar Super Admin > Configurações > aba TTS para configurar a transcrição local de mensagens de voz recebidas pelo WhatsApp usando Whisper.cpp, sem custo de API externa:
- Habilitar Whisper STT: ativa a transcrição local de áudios recebidos
- Modelo: escolha entre
tiny(mais rápido),base(recomendado) esmall(mais preciso) - Idioma: idioma principal dos áudios (pt, en, es) ou auto-detectar
- Threads: quantidade de threads usadas pela transcrição (mais threads = mais rápido, mas mais CPU)
A transcrição local só funciona se o Whisper.cpp estiver instalado no servidor em /opt/whisper.cpp/ com o binário em /opt/whisper.cpp/build/bin/whisper-cli e o modelo selecionado em /opt/whisper.cpp/models/ggml-<modelo>.bin.
12.6. Aistem — Prompt de Sistema e Auditoria (Super Admin)
Em Super Admin > Configurações, na área do Aistem:
- Prompt de Sistema: o campo é somente leitura e exibe o prompt real em uso pelo agente (gerado em código). Não é mais possível editá-lo pela tela.
- Auditoria de tool calls: a tela
admin/aistem-logs.phpmostra cada ferramenta (tool) executada pelo agente, com nome, argumentos, resultado, status e erro — útil para diagnosticar o comportamento do agente.
12.7. Privacidade, Termos e Cookies
O SmartProj disponibiliza páginas legais em conformidade com a Lei Geral de Proteção de Dados (LGPD):
- Política de Privacidade: descreve como dados pessoais são tratados, os direitos dos titulares e o uso de provedores externos.
- Termos de Uso: regras de uso da plataforma, responsabilidade pelo conteúdo e limitação de responsabilidade da Onsiite.
- Política de Cookies: tipos de cookies utilizados, cookies de terceiros e como gerenciá-los.
Responsabilidade do usuário: ao usar o SmartProj e suas integrações (IA, WhatsApp, pagamento etc.), você reconhece que parte dos dados será processada por plataformas externas sob suas próprias políticas. É sua responsabilidade obter as autorizações necessárias, não inserir dados sensíveis sem base legal e cumprir a LGPD.
12.8. Cancelar Conta
Apenas gerentes podem cancelar a conta da empresa. Esta ação é irreversível e exclui todos os dados.
- Acesse Configurações > Empresa
- Role até a seção "Zona de Perigo"
- Clique em "Cancelar Conta"
- Leia os avisos cuidadosamente
- Digite o nome da empresa para confirmar
- Confirme a exclusão
13. Dúvidas Frequentes
Como adiciono um usuário a um projeto?
Abra o projeto, vá na aba "Membros" e clique em "Adicionar Membro". Selecione o usuário desejado.
Posso ter múltiplos usuários atribuídos a uma tarefa?
Sim! Você pode atribuir quantos usuários quiser a uma tarefa. Basta adicionar cada um individualmente.
Como altero o status de uma tarefa?
Você pode arrastar a tarefa entre colunas no Kanban, ou editar a tarefa e alterar o status manualmente.
O que acontece se eu excluir um usuário?
Você pode escolher transferir todas as atribuições (projetos, tarefas, equipes) para outro usuário antes de excluir. Nenhum dado é perdido.
Como vejo o progresso de um projeto?
Na página de detalhes do projeto, você verá automaticamente o percentual de conclusão baseado nas tarefas concluídas. Também há relatórios específicos na seção "Relatórios".
Posso personalizar as colunas Kanban?
Sim! Você pode criar, editar, reordenar e excluir colunas Kanban em cada projeto. Clique no ícone de configurações das colunas.
Como funcionam os lembretes?
Você pode criar lembretes para tarefas. Quando a data/hora chegar, você receberá uma notificação no navegador e por email (se configurado).
Qual a diferença entre Orçamento e Despesa?
Orçamento é o valor planejado para uma tarefa. Despesa é o valor realmente gasto. O sistema calcula automaticamente a diferença.
Como uso o Aistem pelo WhatsApp?
Envie uma mensagem de texto ou áudio para o número da empresa no WhatsApp. O Aistem identificará seu usuário pelo telefone vinculado e responderá automaticamente.
Por que às vezes o Aistem responde em texto e não em áudio?
O Aistem responde em áudio apenas quando: (1) você enviou uma mensagem de voz, (2) o TTS está habilitado, e (3) a resposta é curta o suficiente para caber no limite configurado. Respostas longas ou complexas são enviadas como texto.
O SmartProj entra em loop com outros bots?
Não. O sistema possui proteção automática contra loops com bots. Se detectar mensagens repetidas ou padrões de bot, responde apenas uma vez ao mesmo número.
Precisa de mais ajuda? Entre em contato com o suporte.
SmartProj v1.4.10 - Desenvolvido por Onsiite Tech
Documentação da API REST
API completa para integração com o SmartProj
Introdução
A SmartProj API é uma API REST completa que fornece acesso programático a todos os recursos do sistema.
https://smartproj.com.br/api/v1Versão: 1.0.0
Formato: JSON
Estrutura de Resposta
Todas as respostas da API seguem um formato consistente com os campos success, data ou error, e message ou code.
{
"success": true,
"data": {
// Dados da resposta
},
"message": "Operação realizada com sucesso"
}
{
"success": false,
"error": "Mensagem de erro descritiva",
"code": "ERROR_CODE"
}
Autenticação
Todas as requisições (exceto login e registro) requerem autenticação via Bearer Token no header.
Realiza login e retorna token de autenticação.
Parâmetros do Body:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
email |
string | SIM | Email do usuário |
password |
string | SIM | Senha do usuário |
Resposta de Sucesso:
Status: 200 OK
Retorna dados do usuário e token de autenticação.
{
"email": "user@example.com",
"password": "senha123"
}
{
"success": true,
"data": {
"user": {
"id": "uuid",
"email": "user@example.com",
"role": "leader",
"display_name": "Nome do Usuário"
},
"token": "session_id_or_jwt"
}
}
curl -X POST https://smartproj.com.br/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{
"email": "user@example.com",
"password": "senha123"
}'
Registra um novo usuário no sistema.
Parâmetros do Body:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
email |
string | SIM | Email único do usuário |
password |
string | SIM | Senha (mínimo 6 caracteres) |
display_name |
string | Não | Nome de exibição do usuário |
Obtém dados do usuário autenticado.
Headers: Authorization: Bearer {token}
{
"email": "novo@example.com",
"password": "senha123",
"display_name": "Novo Usuário"
}
curl -X GET https://smartproj.com.br/api/v1/auth/me \
-H "Authorization: Bearer {token}"
Authorization: Bearer {token} em todas as requisições autenticadas.
Usuários
Lista todos os usuários visíveis para o usuário atual.
Permissões: Gerentes veem usuários gerenciados, Super Admin vê todos.
Obtém usuário específico. Use /users/me para usuário atual.
Cria novo usuário (apenas gerentes e super admin).
Parâmetros do Body:
| Campo | Tipo | Descrição |
|---|---|---|
email |
string | Email do novo usuário |
password |
string | Senha inicial |
display_name |
string | Nome completo |
role |
string | Função: leader, member, viewer |
Atualiza dados do usuário.
Exclui usuário (com transferência de atribuições).
{
"email": "user@example.com",
"password": "senha123",
"display_name": "Nome Completo",
"role": "member"
}
curl -X GET https://smartproj.com.br/api/v1/users \
-H "Authorization: Bearer {token}"
curl -X DELETE https://smartproj.com.br/api/v1/users/{id} \
-H "Authorization: Bearer {token}"
Empresas
Obtém configurações da empresa do usuário atual.
Atualiza configurações da empresa.
Parâmetros do Body:
| Campo | Tipo | Descrição |
|---|---|---|
company_name |
string | Nome da empresa |
address |
string | Endereço completo |
phone |
string | Telefone de contato |
brand_color |
string | Cor da marca (hex) |
company_logo |
file | Logo da empresa (upload) |
curl -X GET https://smartproj.com.br/api/v1/companies \
-H "Authorization: Bearer {token}"
{
"company_name": "Minha Empresa",
"address": "Rua Exemplo, 123 - São Paulo/SP",
"phone": "(11) 98765-4321",
"brand_color": "#ff0000"
}
{
"success": true,
"message": "Configurações atualizadas",
"data": {
"company_name": "Minha Empresa",
"brand_color": "#ff0000"
}
}
Centros de Custo
Lista todos os centros de custo.
Cria centro de custo.
Parâmetros do Body:
| Campo | Tipo | Descrição |
|---|---|---|
name |
string | Nome do centro de custo |
code |
string | Código identificador |
description |
string | Descrição opcional |
Atualiza centro de custo.
Exclui centro de custo.
curl -X GET https://smartproj.com.br/api/v1/cost-centers \
-H "Authorization: Bearer {token}"
{
"name": "Marketing",
"code": "MKT",
"description": "Centro de custo de marketing"
}
{
"success": true,
"data": {
"id": "uuid-here",
"name": "Marketing",
"code": "MKT"
}
}
Equipes
Lista todas as equipes.
Cria equipe.
Parâmetros do Body:
| Campo | Tipo | Descrição |
|---|---|---|
name |
string | Nome da equipe |
description |
string | Descrição da equipe |
Lista membros da equipe.
Adiciona membro à equipe.
Parâmetros do Body:
| Campo | Tipo | Descrição |
|---|---|---|
user_id |
string | UUID do usuário |
{
"name": "Equipe de Desenvolvimento",
"description": "Equipe responsável pelo desenvolvimento"
}
curl -X GET https://smartproj.com.br/api/v1/teams \
-H "Authorization: Bearer {token}"
{
"user_id": "550e8400-e29b-41d4-a716-446655440000"
}
{
"success": true,
"data": {
"id": "uuid-here",
"name": "Equipe de Desenvolvimento"
}
}
Projetos
Lista projetos do usuário.
Query Parameters:
status- Filtrar por status (draft, active, paused, completed, cancelled)
Obtém projeto específico com estatísticas.
Cria novo projeto (cria colunas Kanban padrão automaticamente).
Parâmetros do Body:
| Campo | Tipo | Descrição |
|---|---|---|
name |
string | Nome do projeto |
description |
string | Descrição do projeto |
status |
string | Status: draft, active, paused, completed, cancelled |
start_date |
date | Data de início (YYYY-MM-DD) |
end_date |
date | Data de término (YYYY-MM-DD) |
color |
string | Cor do projeto (hex) |
cost_center_id |
string | UUID do centro de custo (opcional) |
Lista colunas Kanban do projeto.
Dados para visualização Gantt.
Dados para visualização Calendário.
{
"name": "Novo Projeto",
"description": "Descrição do projeto",
"status": "active",
"start_date": "2025-01-01",
"end_date": "2025-12-31",
"color": "#DC143C",
"cost_center_id": "uuid-opcional"
}
curl -X GET https://smartproj.com.br/api/v1/projects?status=active \
-H "Authorization: Bearer {token}"
curl -X GET https://smartproj.com.br/api/v1/projects/{id}/kanban-columns \
-H "Authorization: Bearer {token}"
{
"success": true,
"data": {
"id": "uuid-here",
"name": "Novo Projeto",
"status": "active"
}
}
Tarefas
Lista tarefas com filtros opcionais.
Query Parameters:
project_id- Filtrar por projetostatus- Filtrar por statuspriority- Filtrar por prioridade
Cria nova tarefa.
Parâmetros do Body:
| Campo | Tipo | Descrição |
|---|---|---|
project_id |
string | UUID do projeto |
title |
string | Título da tarefa |
description |
string | Descrição da tarefa |
status |
string | Status: todo, in_progress, completed |
priority |
string | urgent, high, medium, low |
due_date |
date | Data de vencimento (YYYY-MM-DD) |
budget |
decimal | Orçamento previsto |
kanban_column_id |
string | UUID da coluna Kanban (opcional) |
assignees |
array | Array de UUIDs dos responsáveis |
Move tarefa entre colunas Kanban.
{
"project_id": "550e8400-e29b-41d4-a716-446655440000",
"title": "Nova Tarefa",
"description": "Descrição da tarefa",
"status": "todo",
"priority": "high",
"due_date": "2025-01-15",
"budget": 1000.00,
"kanban_column_id": "uuid-opcional",
"assignees": ["uuid-user1", "uuid-user2"]
}
curl -X GET https://smartproj.com.br/api/v1/tasks?project_id={id} \
-H "Authorization: Bearer {token}"
{
"kanban_column_id": "550e8400-e29b-41d4-a716-446655440000"
}
{
"success": true,
"data": {
"id": "uuid-here",
"title": "Nova Tarefa",
"status": "todo"
}
}
{
"title": "Item do checklist",
"position": 0
}
{
"title": "Item atualizado",
"is_completed": true,
"position": 1
}
Sub-recursos de Tarefas
Lista subtarefas da tarefa.
Lista itens de checklist da tarefa (ordenados por posição).
Cria novo item de checklist na tarefa.
Parâmetros do Body:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| title | string | Sim | Título do item |
| position | integer | Não | Posição na lista |
Atualiza item de checklist (título, status de conclusão ou posição).
Exclui item de checklist da tarefa.
Lista comentários da tarefa.
Lista anexos da tarefa.
Lista lembretes da tarefa.
Lista usuários atribuídos à tarefa.
curl -X GET https://smartproj.com.br/api/v1/tasks/{id}/subtasks \
-H "Authorization: Bearer {token}"
curl -X GET https://smartproj.com.br/api/v1/tasks/{id}/items \
-H "Authorization: Bearer {token}"
curl -X GET https://smartproj.com.br/api/v1/tasks/{id}/comments \
-H "Authorization: Bearer {token}"
curl -X GET https://smartproj.com.br/api/v1/tasks/{id}/attachments \
-H "Authorization: Bearer {token}"
Financeiro
Lista entradas financeiras com filtros.
Query Parameters:
task_id- Filtrar por tarefaproject_id- Filtrar por projetotype- expense ou budgetstart_date- Data inicial (YYYY-MM-DD)end_date- Data final (YYYY-MM-DD)
Cria entrada financeira.
Parâmetros do Body:
| Campo | Tipo | Descrição |
|---|---|---|
task_id |
string | UUID da tarefa |
type |
string | Tipo: expense (despesa) ou budget (orçamento) |
amount |
decimal | Valor da entrada |
description |
string | Descrição da entrada |
entry_date |
date | Data da entrada (YYYY-MM-DD) |
Resumo financeiro por projeto (total despesas, orçamento, diferença).
{
"task_id": "550e8400-e29b-41d4-a716-446655440000",
"type": "expense",
"amount": 500.00,
"description": "Despesa de marketing",
"entry_date": "2025-01-15"
}
curl -X GET https://smartproj.com.br/api/v1/financial/entries?type=expense \
-H "Authorization: Bearer {token}"
curl -X GET https://smartproj.com.br/api/v1/financial/projects/{id}?summary=true \
-H "Authorization: Bearer {token}"
{
"success": true,
"data": {
"total_budget": 10000.00,
"total_expenses": 7500.50,
"difference": 2499.50
}
}
Relatórios
Progresso de projetos (total tarefas, concluídas, percentual).
Contagem de tarefas por status.
Contagem de tarefas por prioridade.
curl -X GET https://smartproj.com.br/api/v1/reports/projects/progress \
-H "Authorization: Bearer {token}"
curl -X GET https://smartproj.com.br/api/v1/reports/tasks/status \
-H "Authorization: Bearer {token}"
{
"success": true,
"data": {
"todo": 15,
"in_progress": 8,
"completed": 42
}
}
Resumo financeiro geral.
Query Parameters:
start_date- Data inicial (YYYY-MM-DD)end_date- Data final (YYYY-MM-DD)
Resumo financeiro agrupado por projeto.
Atividade de usuários (tarefas criadas, comentários, entradas financeiras).
Performance de equipes (membros, projetos, tarefas, concluídas).
Estatísticas e Gráficos
Endpoints para obter dados estatísticos utilizados nos gráficos do Dashboard, Projetos e Tarefas.
Retorna estatísticas completas do dashboard do usuário autenticado.
Query Parameters (Opcionais):
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
statusPeriod |
string | 30 | Período em dias para tarefas por status (ou 'all') |
productivityPeriod |
string | 30 | Período em dias para gráfico de produtividade |
completionPeriod |
string | 30 | Período em dias para taxa de conclusão (ou 'all') |
{
"success": true,
"data": {
"tasksByStatus": [
{
"status_name": "Em Progresso",
"color": "#3b82f6",
"count": 12
}
],
"productivity": [
{
"date": "2024-11-20",
"created": 5,
"completed": 3,
"overdue": 2
}
],
"completionRate": {
"total": 89,
"completed": 54
}
}
}
curl -X GET \
"https://smartproj.com.br/api/dashboard-stats.php?statusPeriod=7" \
-H "Authorization: Bearer {token}"
Retorna estatísticas detalhadas de um projeto específico.
Query Parameters:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
project_id |
string (UUID) | SIM | ID do projeto |
{
"success": true,
"data": {
"progress": {
"total": 25,
"completed": 15,
"in_progress": 8,
"todo": 2
},
"tasksByStatus": [...],
"timeline": [...],
"tasksByPriority": [...],
"productivity": [...]
}
}
curl -X GET \
"https://smartproj.com.br/api/project-stats.php?project_id={uuid}" \
-H "Authorization: Bearer {token}"
Retorna estatísticas detalhadas de uma tarefa específica.
Query Parameters:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
task_id |
string (UUID) | SIM | ID da tarefa |
activity_days |
integer | Não | Período em dias (padrão: 7) |
activity_days com valores como 7, 15, 30, 60 ou 90.
{
"success": true,
"data": {
"checklistProgress": {
"total": 4,
"completed": 3
},
"activityHistory": [...],
"attachmentsByType": [...],
"taskTime": {...}
}
}
curl -X GET \
"https://smartproj.com.br/api/task-stats.php?task_id={uuid}&activity_days=30" \
-H "Authorization: Bearer {token}"
Exemplo de Uso
# Obter estatísticas do dashboard com filtro de 7 dias
curl -X GET "https://smartproj.com.br/api/dashboard-stats.php?statusPeriod=7&productivityPeriod=7" \
-H "Authorization: Bearer {seu_token}"
# Obter estatísticas de um projeto específico
curl -X GET "https://smartproj.com.br/api/project-stats.php?project_id={uuid_do_projeto}" \
-H "Authorization: Bearer {seu_token}"
# Obter estatísticas de uma tarefa (últimos 30 dias de atividades)
curl -X GET "https://smartproj.com.br/api/task-stats.php?task_id={uuid_da_tarefa}&activity_days=30" \
-H "Authorization: Bearer {seu_token}"
Assistente IA
Apaga todo o histórico de conversas do usuário logado com o Aistem, incluindo as conversas feitas pelo WhatsApp (que ficam na mesma base).
Query Parameters:
all=1- Obrigatório para apagar todas as conversas
curl -X DELETE "https://smartproj.com.br/api/ai-conversation.php?all=1" \
-H "Cookie: PHPSESSID={sessao_do_usuario}"
Exemplos de Uso
JavaScript (Fetch API)
// Login
async function login(email, password) {
const response = await fetch('https://smartproj.com.br/api/v1/auth/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ email, password })
});
const data = await response.json();
if (data.success) {
localStorage.setItem('api_token', data.data.token);
return data.data.user;
}
}
// Listar projetos
async function getProjects() {
const token = localStorage.getItem('api_token');
const response = await fetch('https://smartproj.com.br/api/v1/projects', {
headers: { 'Authorization': `Bearer ${token}` }
});
return await response.json();
}
// Criar tarefa
async function createTask(projectId, title) {
const token = localStorage.getItem('api_token');
const response = await fetch('https://smartproj.com.br/api/v1/tasks', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${token}`
},
body: JSON.stringify({
project_id: projectId,
title: title,
priority: 'high'
})
});
return await response.json();
}
cURL
# Login
curl -X POST https://smartproj.com.br/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"user@example.com","password":"senha123"}'
# Listar projetos
curl -X GET https://smartproj.com.br/api/v1/projects \
-H "Authorization: Bearer {token}"
# Criar tarefa
curl -X POST https://smartproj.com.br/api/v1/tasks \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {token}" \
-d '{
"project_id": "uuid",
"title": "Nova Tarefa",
"priority": "high"
}'
Python (requests)
import requests
BASE_URL = "https://smartproj.com.br/api/v1"
# Login
response = requests.post(f"{BASE_URL}/auth/login", json={
"email": "user@example.com",
"password": "senha123"
})
data = response.json()
token = data['data']['token']
# Listar projetos
headers = {"Authorization": f"Bearer {token}"}
projects = requests.get(f"{BASE_URL}/projects", headers=headers).json()
# Criar tarefa
task_data = {
"project_id": "uuid",
"title": "Nova Tarefa",
"priority": "high"
}
new_task = requests.post(
f"{BASE_URL}/tasks",
json=task_data,
headers=headers
).json()
Códigos de Status HTTP
| Código | Significado | Quando Usar |
|---|---|---|
200 |
OK | Requisição bem-sucedida |
201 |
Created | Recurso criado com sucesso |
204 |
No Content | Exclusão bem-sucedida (sem conteúdo) |
400 |
Bad Request | Dados inválidos na requisição |
401 |
Unauthorized | Não autenticado |
403 |
Forbidden | Sem permissão para a ação |
404 |
Not Found | Recurso não encontrado |
422 |
Unprocessable Entity | Validação falhou (ex: email duplicado) |
500 |
Internal Server Error | Erro interno do servidor |
Exemplos de Erros
400 - Bad Request
{
"success": false,
"error": "Email e senha são obrigatórios"
}
401 - Unauthorized
{
"success": false,
"error": "Não autenticado"
}
422 - Unprocessable Entity
{
"success": false,
"error": "Este email já está cadastrado"
}
SmartProj API v1.0 - Desenvolvido por Onsiite Tech