Notificações e Mensagens

Enviar notificações para usuários do sistema

{#if mensagem}
{#if mensagem.tipo === "success"} {:else if mensagem.tipo === "error"} {:else} {/if} {mensagem.texto}
{/if}

Enviar Notificação

{#if enviarParaTodos} {/if}
Canal de Envio *
Tipo de Mensagem
{#if usarTemplate}
{#if templateSelecionado}
{templateSelecionado.titulo}
{templateSelecionado.corpo}
{/if} {:else}
{/if}
{#if agendarEnvio}
{#if getPreviewAgendamento()}
{getPreviewAgendamento()}
{/if} {/if}
{#if logsEnvio.length > 0} {/if}
{#if logsEnvio.length === 0}
Aguardando envio de notificação...
{:else} {#each logsEnvio as log}
[{formatarTimestamp(log.timestamp)}] {log.tipo.toUpperCase()} {log.destinatario}: {log.mensagem}
{/each} {/if}

Templates Disponíveis

{#if carregandoTemplates}

Carregando templates...

{:else if templates.length > 0}
{#each templates as template}

{template.nome}

{template.titulo}

{template.corpo}

{template.tipo} {#if template.variaveis && template.variaveis.length > 0} {template.variaveis.length} variáveis {/if}
{#if template.tipo !== "sistema"} {/if}
{/each}
{:else}

Nenhum template disponível

Clique no botão abaixo para criar os templates padrão do sistema.

{/if}

Histórico de Agendamentos

{#if agendamentosFiltrados.length === 0}

Nenhum agendamento encontrado

Os agendamentos aparecerão aqui quando você agendar envios.

{:else}
{#each agendamentosFiltrados as agendamento} {@const status = obterStatusAgendamento(agendamento)} {@const nomeDestinatario = obterNomeDestinatario(agendamento)} {@const dataFormatada = formatarDataAgendamento(agendamento)} {@const podeCancelar = status === "agendado"} {@const templateNome = agendamento.tipo === "email" && agendamento.dados.templateInfo ? agendamento.dados.templateInfo.nome : agendamento.tipo === "email" && agendamento.dados.templateId ? "Template removido" : "-"} {/each}
Tipo Destinatário Data/Hora Status Template Ações
{#if agendamento.tipo === "email"} Email {:else} Chat {/if}
{nomeDestinatario}
{#if agendamento.tipo === "email"}
{agendamento.dados.destinatario}
{/if}
{dataFormatada}
{#if podeCancelar} {@const tempoRestante = agendamento.tipo === "email" ? (agendamento.dados.agendadaPara ?? 0) - Date.now() : (agendamento.dados.agendadaPara ?? 0) - Date.now()} {@const horasRestantes = Math.floor( tempoRestante / (1000 * 60 * 60), )} {@const minutosRestantes = Math.floor( (tempoRestante % (1000 * 60 * 60)) / (1000 * 60), )} {#if horasRestantes < 1 && minutosRestantes < 60}
Em {minutosRestantes} min
{:else if horasRestantes < 24}
Em {horasRestantes}h {minutosRestantes}min
{/if} {/if}
{#if status === "agendado"} Agendado {:else if status === "enviado"} Enviado {:else} Cancelado {/if} {#if agendamento.tipo === "email"} {#if agendamento.dados.templateInfo}
{agendamento.dados.templateInfo.nome}
{:else if agendamento.dados.templateId}
Template removido
{:else}
-
{/if} {:else}
-
{/if}
{#if podeCancelar} {:else} - {/if}
{/if}
Para enviar emails, certifique-se de configurar o SMTP em Configurações de Email.
{#if modalNovoTemplateAberto} {/if}