Olá pessoal, tudo bem com vocês?
Hoje iremos explorar como criar uma atividade educacional do tipo “complete a primeira letra da palavra”. Nesta atividade, apresentaremos uma imagem e, abaixo dela, uma palavra correspondente com a primeira letra faltando.
Vamos lá?
Tópicos:
- Introdução
- Diversificação de modelos
- Código da Atividade
- Lista de Imagens
- Filtro e Seleção
- Criação da Arte
- Adição de Texto
- Fluxo para Download
Introdução
Hoje iremos ver como criar uma atividade onde o aluno deve completar a primeira letra da palavra associada a uma imagem. A ideia é ter uma imagem com uma palavra abaixo, mas com a primeira letra faltando.
Com o objetivo de ficar didático, iremos disponibilizar o fluxo para Download e explicar algumas partes importantes do desenvolvimento.

Diversificação de modelos
Uma implementação para ter uma variedade de atividades foi criar diferentes modelos que poderão ser utilizados pelo fluxo.

Os modelos terão a mesma estrutura para os locais das imagens e poderão ser utilizados para a geração de atividades em diferentes formatos.
Lembre-se ao criar um modelo que em suas variações os locais que serão preenchidos com imagens deverão tem o mesmo lugar e o mesmo tamanho.
Código da Atividade
Com o objetivo de criar um nome único para a atividade, iremos utilizar a data no momento em que a atividade está sendo criada.
Para isso utilizaremos a função “generateId”, ela irá recuperar a data no momento da execução e nos retornar no formato texto, contendo o dia e o segundo exato da execução.
# Função generateId
function generateId() {
const now = new Date();
const timestamp = now.getTime();
const formattedDate = now.toISOString().replace(/[-:T.]/g, '');
return `${formattedDate}-${timestamp}`;
}
# Exemplo de resultado
# 20250512120215503Z-1747051335503
Esse método foi escolhido para o nome das atividades que serão criadas, assim não corremos o risco de sobrescrever uma atividade já existente.
Retornando Dados e Arquivos juntos
No nosso fluxo implementamos uma funcionalidade no N8N que permite trafegarmos arquivos e dados juntos. Os tipos disponíveis no N8N são JSON e Binary, onde:
- JSON: é um formato de texto leve usado para armazenar e transportar dados. Ele é fácil de ler e escrever para humanos e fácil de analisar e gerar para máquinas.
- Binary: refere-se a dados que são representados em formato binário, ou seja, como uma sequência de 0s e 1s. Arquivos binários podem incluir imagens, vídeos, executáveis, entre outros tipos de dados que não são texto.
No elemento CODE, é possível retornar os dois tipos de informação, assim como foi feito na caixinha: “gera_id_atividade”
const fileName = $input.first().json.fileName
function generateId() {
const now = new Date();
const timestamp = now.getTime();
const formattedDate = now.toISOString().replace(/[-:T.]/g, '');
return `${formattedDate}-${timestamp}`;
}
return {
json: {
id: `${generateId()}_${fileName}`
},
binary: {
data: $input.first().binary.data
}
}
Aqui temos no tipo JSON o ID gerado que é um texto com o nome do arquivo e em BINARY teremos o arquivo binário que recebemos da etapa anterior.
Com isso temos flexibilidade de encaminhar arquivos e textos para serem utilizados na próxima caixinha.
Fluxo para Download
Por hoje é só. Na próxima postagem iremos entrar mais a fundo em outras partes do fluxo.
Disponibilizamos o fluxo para download.
Lembre-se de alterar para a sua planilha Google Sheets e para o caminho onde estão os mockups criados.
Até a próxima!