Skip to main content

Carga SFTP de Templates e Campanhas

Esta documentação orienta como usar os serviços automáticos de importação via SFTP para Templates e Campanhas no Robbu Maestro.

Configuração

A configuração de SFTP pode ser feita na seção Configurações > Empresa > Transferência de Arquivos A Gerente de Ambiente pode decidir se as assessorias poderão utilizar um SFTP próprio ou somente o gerenciado pela Robbu. Há duas formas de conectar um servidor SFTP ao Maestro:

SFTP Robbu

A Robbu disponibiliza um servidor SFTP gerenciado, pronto para uso imediato
  • Ao habilitar, o sistema fornece:
    • Servidor
    • Porta
    • Nome de usuário
    • Senha

SFTP Próprio

A própria empresa gerencia o seu SFTP.
⚠️ Atenção: Essa opção deve ser habilitada pela Gerente de Ambiente nas configurações de Ambiente
⚠️ Se algum parâmetro estiver em branco ou inválido, a importação será ignorada
Essa flexibilidade permite que cada empresa defina o modelo mais adequado ao seu nível de governança e requisitos de segurança.

Segurança

  • É fundamental manter as credenciais em segurança.
  • Garantir o correto uso de porta e endereço do servidor para estabelecer a conexão.
  • A proteção desses dados garante a integridade dos arquivos durante as transferências.

Diretórios

O Maestro utiliza a seguinte árvore de diretórios dentro do servidor SFTP
UsoCaminho SFTP
Templates a serem importados/maestro/templates
Campanhas a serem importadas/maestro/campaigns
Dentro de cada um dos diretórios acima, duas pastas serão criadas: /processed para identificar os arquivos importados com sucesso /error para identificar importações que não aconteceram e sinalizar qual foi o erro encontrado
⚠️ Estes diretórios são criados automaticamente após a conexão do servidor SFTP na tela de configuração, mas pode levar até 10 minutos para que esses diretórios apareçam.

Passo a passo

Importar campanhas

Siga as instruções abaixo para importar uma campanha para o Maestro usando o SFTP

Nome do arquivo

Não há uma nomenclatura específica a se seguir na importação de campanha, mas o nome do arquivo será o nome do Público importado, por isso recomendamos que seja um nome descritivo que possa identificar facilmente o mailing importado.
⚠️ É muito importante que o arquivo tenha um nome consistente com relação à extensão .csv. Verifique se a extensão não está duplicada, como em arquivo.csv.csv

Colunas do arquivo

As colunas abaixo são possíveis no arquivo
TIPO_DE_REGISTRO,VALOR_DO_REGISTRO,CANAL,CODIGO_TEMPLATE,SEGMENTO,CPF_CNPJ,COD_CONTRATO,REMETENTE,DATA_HORA_DISPARO,NOME_CLIENTE,NOME_ARQUIVO_ANEXO,Var1,Var2,Var3,Var4,Var5,Var6,Var7,Var8,Var9,Var10,Var11,Var12,Var13,Var14,Var15,Var16,Var17,Var18,Var19,Var20
Descrição dos campos:
CampoObrigatórioDescrição
TIPO_DE_REGISTROTipo de contato (TELEFONE ou EMAIL).
VALOR_DO_REGISTROValor do contato (número com DDD ou e-mail).
CANALCanal da mensagem: whatsapp, email ou sms.
CODIGO_TEMPLATECódigo do template aprovado no Maestro (ex.: W0003, E0001).
SEGMENTONome do segmento cadastrado no Maestro.
CPF_CNPJDocumento do cliente (para validações ou relatórios).
COD_CONTRATOCódigo do contrato do cliente.
REMETENTE⚠️ apenas WhatsAppNúmero de envio no WhatsApp ou remetente configurado.
DATA_HORA_DISPAROData e hora de disparo no formato yyyy-MM-dd HH:mm:ss.
NOME_CLIENTENome do cliente para referência.
NOME_ARQUIVO_ANEXOArquivo inserido na mesma pasta do CSV no SFTP para ser adicionado como anexo em e-mail
Var1…Var20Variáveis dinâmicas que alimentam os placeholders do template.
⚠️ Não é necessário que os campos estejam na ordem sugerida, mas os nomes das colunas devem ser exatamente como estão nesta documentação
Exemplo:
TIPO_DE_REGISTRO,VALOR_DO_REGISTRO,CANAL,CODIGO_TEMPLATE,SEGMENTO,CPF_CNPJ,COD_CONTRATO,REMETENTE,DATA_HORA_DISPARO,NOME_CLIENTE,NOME_ARQUIVO_ANEXO,Var1,Var2,Var3,Var4,Var5,Var6,Var7,Var8,Var9,Var10,Var11,Var12,Var13,Var14,Var15,Var16,Var17,Var18,Var19,Var20
TELEFONE,+5511988887777,whatsapp,W0003,Varejo,12345678900,CT-98765,+5511999998888,2025-09-01 14:56:00,João Silva,,Promoção de Inverno,10%,Cupom123,Loja Centro,Campanha Primavera,Segunda Onda,Lote A,Segmento VIP,Teste A/B,Link Personalizado,CTA1,CTA2,Obs1,Obs2,Obs3,Obs4,Obs5,Obs6
EMAIL,cliente@dominio.com,email,E0001,Financeiro,98765432100,CT-12345,,2025-09-01 15:10:00,Maria Souza,Fatura_Maria_Souza_07_2025.pdf,Fatura 07/2025,R$350,00,Vencimento 10/09/2025,Linha Digitável,https://pagamento.com/123,Segunda Via,Campanha Agosto,Cliente Ouro,Instruções,CTA Pagamento,CTA Suporte,Obs1,Obs2,Obs3,Obs4,Obs5,Obs6,Obs7,Obs8
TELEFONE,+5511977776666,sms,S0002,Atacado,11223344556,CT-45678,,2025-09-01 15:30:00,Carlos Lima,BoletoCarlosLima.pdf,Código 123456,Validade 5min,Campanha Primavera,Lote B,Segmento Prata,Teste B,Link Resgate,CTA SMS,Obs1,Obs2,Obs3,Obs4,Obs5,Obs6,Obs7,Obs8,Obs9,Obs10

Fluxo de processamento

  1. Faça upload do arquivo .csv em /maestro/campaigns
  2. Um serviço rotineiro roda a cada 10 minutos e executa:
    • Cria diretórios processed e error se não existirem.
    • Busca arquivos .csv ainda não importados
  3. Durante a importação, algumas validações são executadas:
    • Nome do arquivo segue o padrão?
    • Cada linha do CSV cumpre as regras do ambiente?
      • Segmentos existem e assessoria possui permissão de acesso?
      • Templates estão aprovados?
      • Horários de saída são válidos?
  4. Importação:
    • Cria um arquivo {nome original}_EXCEPTIONS.csv com todos os contatos que não foram processados pois quebraram regras.
      • Este arquivo contém a cópia da linha original com uma coluna adicional Motivo Falha exibindo o porquê do contato não ter sido processado
    • Há provedor para o canal configurado?
      • Se não, apenas cria um arquivo {nome original}_created.csv na pasta /processed com todos os contatos que foram processados
      • Se sim, cria os disparos e depois cria um arquivo {nome original}_VALIDATED.csv na pasta /processed com todos os contatos que foram processados
    • Os arquivos de anexos (se houver) são destruídos após o envio
  5. Se houver falha no arquivo inteiro
    • Gera {nome do arquivo original}_errorDetail.txt com mensagem de erro na pasta /error

Importar templates

Siga as instruções abaixo para importar templates para o Maestro usando o SFTP

Nome do arquivo

O nome do arquivo deve seguir a seguinte nomenclatura:
{nome do segmento}_{canal}_[{nome da WABA}]_{data}.csv
  • nome do segmento: nome exato do segmento configurado (Maestro/Segmentos).
  • canal: email | sms | whatsapp (case-insensitive).
  • nome da WABA (opcional, apenas WhatsApp): descrição da WABA.
  • data: data de referência com formato yyyyMMdd (ex: 20250531).
Exemplos
  • retail_email_20250510.csv
  • finance_sms_20250101.csv
  • store_whatsapp_MinhaWaba_20250320.csv

Colunas do arquivo

⚠️ Não é necessário que os campos estejam na ordem sugerida, mas os nomes das colunas devem ser exatamente como estão nesta documentação
As colunas abaixo são possíveis no arquivo: Templates WhatsApp:
TEMPLATE_NAME,LANGUAGE,CATEGORY,HEADER_TEXT,BODY_TEXT,FOOTER_TEXT,REPLYBUTTON_1,REPLYBUTTON_2,REPLYBUTTON_3,URL_BUTTON,URL_BUTTON_TEXT
CampoObrigatórioDescrição
TEMPLATE_NAMENome único do template (sem espaços, usar _ se necessário).
LANGUAGEIdioma no formato pt_BR, en_US, etc.
CATEGORYCategoria: MARKETING, UTILITY, AUTHENTICATION
HEADER_TEXTTexto do cabeçalho (opcional).
BODY_TEXTTexto do corpo da mensagem.
FOOTER_TEXTTexto do rodapé (opcional).
REPLYBUTTON_1Texto do botão de resposta rápida 1.
REPLYBUTTON_2Texto do botão de resposta rápida 2.
REPLYBUTTON_3Texto do botão de resposta rápida 3.
URL_BUTTONURL do botão de ação (se existir).
URL_BUTTON_TEXTTexto exibido no botão de URL.
Exemplo:
TEMPLATE_NAME,LANGUAGE,CATEGORY,HEADER_TEXT,BODY_TEXT,FOOTER_TEXT,REPLYBUTTON_1,REPLYBUTTON_2,REPLYBUTTON_3,URL_BUTTON,URL_BUTTON_TEXT
exemplo_template,pt_BR,MARKETING,Cabeçalho Exemplo,Texto do Corpo,Rodapé Exemplo,Sim,Não,Não receber,,
fatura_atrasada,en_US,UTILITY,Invoice Reminder,"Hello {{Var1}}, your invoice {{Var2}} is overdue.","Contact support if already paid",Pay Now,Ignore,Talk to Agent,https://pay.example.com,Pay Securely
codigo_otp,pt_BR,AUTHENTICATION,,Seu código de acesso é {{Var1}},Este código expira em 5 minutos,,,,,
Templates de E-mail:
TEMPLATE_NAME,SUBJECT,BODY_HTML
CampoObrigatórioDescrição
TEMPLATE_NAMENome único do template (sem espaços, usar _ se preciso).
SUBJECTAssunto do e-mail.
BODY_HTMLConteúdo do corpo em HTML (inline).
Exemplo:
TEMPLATE_NAME,SUBJECT,BODY_HTML
ExemploTemplate,ExemploAssunto,<html><body><h1>Teste</h1><p>Corpo do e-mail</p></body></html>
BoasVindas,Seja bem-vindo!,<html><body><h1>Olá {{1}}</h1><p>Obrigado por se cadastrar em nossa plataforma.</p></body></html>
FaturaAtrasada,Lembrete de pagamento,<html><body><p>Olá {{1}},</p><p>Sua fatura {{2}} está em aberto.</p><p><a href="https://pagamento.exemplo.com/{{2}}">Clique aqui para pagar</a></p></body></html>
Templates de SMS:
TEMPLATE_NAME,TEXT_BODY
CampoObrigatórioDescrição
TEMPLATE_NAMENome único do template (sem espaços, usar _ se preciso).
TEXT_BODYTexto do corpo do SMS, pode conter variáveis dinâmicas (ex.: {{1}}).
Exemplo:
TEMPLATE_NAME,TEXT_BODY
ExemploTemplate,ExemploTexto
BoasVindasSMS,Olá {{1}}, bem-vindo(a) à nossa plataforma!
CodigoOTP,Seu código de acesso é {{1}}. Ele expira em 5 minutos.

Fluxo de processamento

  1. Faça upload do .csv em /maestro/templates
  2. Um serviço rotineiro roda a cada 10 minutos e executa:
    • Cria diretórios processed e error se não existirem.
    • Busca arquivos .csv ainda não importados
  3. Durante a importação, algumas validações são executadas:
    • Nome do arquivo segue o padrão?
    • Segmento existe e assessoria possui permissão de acesso?
  4. Importação:
    • Cria os templates já com status Em Revisão
  5. Move o .csv para:
    • /processed em caso de sucesso.
    • /error em caso de falha.
      • Gera {nome do arquivo original}_errorDetail.txt com mensagem de erro.

FAQ

Não. O arquivo será rejeitado e movido para a pasta error com um _errorDetail.txt.
Não. O sistema os cria automaticamente quando não existirem.
Não. Arquivos em processed não são reprocessados. Para enviar novamente, gere um novo .csv.
A cada 10 minutos, via rotina automática.