Bot de Mensagens - Envio de e-mail com tabela HTML

Boa tarde,

Tenho uma necessidade de enviar o faturamento diário/acumulado mês por e-mail e também nesse e-mail anexar um link para um relatório dentro do sistema.

Abaixo uma imagem com o exemplo das informações que preciso enviar:

Obrigado.

1 curtida

Bom dia @cassoli!
Fiz um exemplo com os dados da imagem para demonstrar o envio dessas informações com o nosso Bot de Mensagens.

Primeiramente, criei a tabela faturamento e inseri os registros, conforme abaixo:

CREATE TABLE faturamento
(
	  id SERIAL NOT NULL
	, cliente TEXT
	, operacao TEXT
	, tipo INT
	, valor NUMERIC(8,2)
	, dtmovimentacao TIMESTAMP WITH TIME ZONE
	, CONSTRAINT pk_faturamento_id PRIMARY KEY (id)
);

COMMENT ON TABLE faturamento IS 'Tabela de exeplo de faturamento para envio por e-mail';
COMMENT ON COLUMN faturamento.id IS 'ID do registro';
COMMENT ON COLUMN faturamento.cliente IS 'Nome do cliente';
COMMENT ON COLUMN faturamento.operacao IS 'Código da operação realizada';
COMMENT ON COLUMN faturamento.tipo IS 'Tipo da operação: 1 - Receita, 2 - Despesa';
COMMENT ON COLUMN faturamento.valor IS 'Valor da operação';
COMMENT ON COLUMN faturamento.dtmovimentacao IS 'Data de movimentação do registro';

INSERT INTO faturamento
( cliente, operacao, tipo, valor, dtmovimentacao)
VALUES
( 'CLIENTE 01', 'OPERAÇÃO 01', 1, 100, CURRENT_TIMESTAMP), 
( 'CLIENTE 02', 'OPERAÇÃO 02', 1,  90, CURRENT_TIMESTAMP ),
( 'CLIENTE 03', 'OPERAÇÃO 03', 1,  80, CURRENT_TIMESTAMP ),
( 'CLIENTE 04', 'OPERAÇÃO 04', 1,  70, CURRENT_TIMESTAMP ),
( 'CLIENTE 05', 'OPERAÇÃO 05', 1,  60, CURRENT_TIMESTAMP ),
( 'CLIENTE 06', 'OPERAÇÃO 06', 1,  50, CURRENT_TIMESTAMP ),
( 'CLIENTE 07', 'OPERAÇÃO 07', 1,  40, CURRENT_TIMESTAMP ),
( 'CLIENTE 08', 'OPERAÇÃO 08', 1,  30, CURRENT_TIMESTAMP ),
( 'CLIENTE 09', 'OPERAÇÃO 09', 1,  20, CURRENT_TIMESTAMP ),
( 'CLIENTE 10', 'OPERAÇÃO 10', 1,  10, CURRENT_TIMESTAMP )

Com a tabela pronta, foi criado o Bot de Mensagens para disparar o envio de e-mail. Abaixo seguem os scripts que foram postos em cada item do Bot.

Na Fonte de Dados:

SELECT
    '<style type=3D"text/css">
        #faturamento  {border-collapse:collapse;border-spacing:0;}
        #faturamento td{border-color:black;border-style:solid;border-width:1px;font-family: Arial, sans-serif;font-size:14px;
        overflow:hidden;padding:10px 5px;word-break:normal;}
        #faturamento th{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px;
        font-weight:normal;overflow:hidden;padding:10px 5px;word-break:normal;}
        #faturamento {text-align:center;vertical-align:top}
        #faturamento .tg-nkdd{background-color:#c0c0c0;text-align:center;vertical-align:middle}
     </style>

        <table id="faturamento">
        <thead>
        <tr>
          <th class="tg-nkdd">CLIENTE</th>
          <th class="tg-nkdd">OPERAÇÃO</th>
          <th class="tg-nkdd">RECEITA (R$) </th>
          <th class="tg-nkdd">%PARTICIPAÇÃO </th>
        </tr>
        </thead>
        <tbody>'||ARRAY_TO_STRING(ARRAY_AGG(retorno.html_table::VARCHAR),'')||
        
        '</tbody>
        </table>


    </html>' AS tabela_html
    ,'<a href="www.latromi.com.br">Ver mais</a>' as link_consulta

FROM (
    SELECT
    
        
    ('<tr><td> '||COALESCE(faturamento.cliente,'CLIENTE')||'</td>'||
    '<td> '||faturamento.operacao::varchar||'</td>'||
    '<td> '||faturamento.valor::varchar||'</td>'||
    '<td> '||TO_CHAR((faturamento.valor*100)/(SUM(faturamento.valor) over()), '999D99')||'</td>'||
     
     
      '</tr>')::VARCHAR AS html_table

  FROM faturamento
  WHERE tipo = 1
  GROUP BY faturamento.cliente, faturamento.operacao, faturamento.valor
    
) retorno

No item Mensagens:

<p>
Prezados,
<p>
Segue o faturamento diário:
<p>
{?Dados.tabela_html}
<p>
Para mais informações, acesse o link:
{?Dados.link_consulta}

Perceba que os dados da tabela e os dados do link são obtidos a partir da Query descrita na Fonte de Dados, conforme a imagem:

Importante: para que a tabela HTML e a mensagem apareçam no e-mail de forma adequada, lembre-se de marcar a opção “Usar HTML no texto da mensagem”, conforme mostra a imagem a seguir.

Com o Bot devidamente configurado, precisamos agendar a operação do Bot. Para isso, acesse a página da Latromi, no menu: Conteúdo → Latromi → Mensagens → Agendamento de Mensagens. Clique no botão “Incluir” e adicione o Bot criado. Lembre-se de ativá-lo após finalizar a inclusão.

Agora, o Bot de Mensagens vai disparar o e-mail conforme a periodicidade que foi configurada. O e-mail desse exemplo ficou assim:

Observação: a formatação da tabela pode sofrer ajustes conforme a página de e-mail utilizada.

5 curtidas