Carregando status...
Dashboard
—
WhatsApp
—
Mensagens hoje
—
Comandos hoje
—
Falhas hoje
—
Fila pendente
—
Opt-ins ativos
—
Crons ativos
—
OLTs cadastradas
Última falha de cron
Carregando...
Último backup
Carregando...
MENSAGEM PARA TODOS ATIVA
Esta mensagem será enviada para TODOS os contatos com opt-in.
Esta mensagem será enviada para TODOS os contatos com opt-in.
Gerenciar Comandos
Fixos (sistema)
| Comando | Descrição | Tipo |
|---|
Personalizados
Nenhum comando personalizado ainda.
Clique em Novo Comando para adicionar.
Clique em Novo Comando para adicionar.
Novo Agendamento
Predefinições:
⏱
— preencha os campos acima ou clique em uma predefinição
Sintaxe do campo:
* — qualquer valor
1,7,14,19 — múltiplos horários
1-5 — intervalo (seg a sex)
*/15 — a cada 15 min/horas
Exemplos:
0 8 * * 1-5 seg–sex às 8h · 0 0,7,14,19 * * * 4× por dia · */30 * * * * a cada 30 minPreenchido automaticamente ao enviar um arquivo abaixo ou usar um exemplo.
Executado sempre ao final, mesmo em caso de erro. Ex:
pkill -f chromium, pkill -f firefox-esr, pkill -f chromium >> /home/script.log 2>&1Após enviar, o caminho é preenchido automaticamente.
Instala no ambiente Python usado pelos scripts (venv ou sistema). Necessário se o script novo importar uma lib que ainda não está instalada.
Bibliotecas instaladas
Carregando...
Cole a função abaixo no seu script e chame enviar_mensagem(mensagem) onde quiser.
import os, requests
from datetime import datetime
def enviar_mensagem(mensagem, file_path=None):
url = "http://localhost:3001/api/send"
payload = {
'recipients': '5527999999999, 5527988888888', # vírgula p/ múltiplos; grupo: "120363XXX@g.us"
'message': mensagem
}
if file_path and not os.path.exists(file_path):
print(f"⚠️ Arquivo '{file_path}' não encontrado. Envio sem anexo.")
file_path = None
if file_path:
with open(file_path, 'rb') as f:
resposta = requests.post(url, data=payload, files={'file': f})
else:
resposta = requests.post(url, data=payload)
agora = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
if resposta.status_code == 200:
print(f"✅ [{agora}] Mensagem enviada com sucesso!")
else:
print(f"❌ [{agora}] Erro ao enviar: {resposta.status_code} - {resposta.text}")
Uso:
enviar_mensagem("Texto") ou enviar_mensagem("Texto", "relatorio.pdf")
WHATSAPP_URL="http://localhost:3001/api/send"
WHATSAPP_RECIPIENTS="5527999999999, 5527988888888" # vírgula p/ múltiplos; grupo: "120363XXX@g.us"
enviar_mensagem() {
local MENSAGEM="$1"
local ARQUIVO="${2:-}"
local AGORA=$(date '+%Y-%m-%d %H:%M:%S')
[ -n "$ARQUIVO" ] && [ ! -f "$ARQUIVO" ] && { echo "⚠️ Arquivo não encontrado. Envio sem anexo."; ARQUIVO=""; }
if [ -n "$ARQUIVO" ]; then
STATUS=$(curl -s -o /dev/null -w "%{http_code}" -X POST "$WHATSAPP_URL" \
-F "recipients=$WHATSAPP_RECIPIENTS" -F "message=$MENSAGEM" -F "file=@$ARQUIVO")
else
STATUS=$(curl -s -o /dev/null -w "%{http_code}" -X POST "$WHATSAPP_URL" \
-F "recipients=$WHATSAPP_RECIPIENTS" -F "message=$MENSAGEM")
fi
[ "$STATUS" = "200" ] \
&& echo "✅ [$AGORA] Mensagem enviada com sucesso!" \
|| echo "❌ [$AGORA] Erro ao enviar (HTTP $STATUS)"
}
# Uso:
# enviar_mensagem "Texto da mensagem"
# enviar_mensagem "Texto" "/caminho/relatorio.pdf"
Uso:
enviar_mensagem "Texto" ou enviar_mensagem "Texto" "arquivo.pdf"
| Tipo | Valor | Exemplo |
|---|---|---|
| Número pessoal | DDI + número | 5527999999999 |
| Múltiplos | Separados por vírgula | 5527999999999, 5527888888888 |
| Grupo | JID completo | 120363XXXXXXXX@g.us |
💡 Use o painel Meus Grupos abaixo para copiar o JID do grupo com um clique.
Meus Grupos
Clique em Carregar para listar os grupos que o bot participa.
Agendamentos
Nenhum agendamento cadastrado.
Números Autorizados
Quando a autorização estiver ativa, só esses números podem usar comandos restritos.
Nenhum número autorizado ainda.
Lista Opt-in (confirmaram !aceito)
Nenhum número confirmado ainda.
OLTs cadastradas
| Nome | Host / IP | Usuário | Modelo | |
|---|---|---|---|---|
| Carregando... | ||||
Log de Auditoria
Nenhum registro encontrado.
Auditoria de Comandos
Aplique os filtros e clique em Buscar.
Estatísticas de Uso
Top Comandos
Carregando...
Usuários Mais Ativos
Carregando...
Atividade Diária
Pico de Uso por Hora
Métricas Operacionais
De
até
Sem dados para o período selecionado.