YOM Docs

Integração por arquivos

A integração por Arquivos permite que a YOM acesse os arquivos de dados e os processe regularmente para manter as informações atualizadas em nossos sistemas. Adapta-se a empresas que têm a capacidade de gerar relatórios periódicos em forma de arquivos, mas não dispõem dos recursos técnicos para expor dados por meio de endpoints ou lidar com a carga em tempo real.

Em que consiste?

A integração por Arquivos significa que o cliente deposita arquivos de dados em um servidor SFTP seguro. A YOM acessará esse servidor periodicamente para baixar os arquivos e atualizar seus sistemas com as informações fornecidas. Este método é adequado para dados que não mudam com muita frequência e que podem ser atualizados em intervalos regulares.

Tipos de integração

Uma integração por Arquivos pode ser de dois tipos, conforme os produtos da YOM que se queira habilitar:

Tipo Descrição Habilita
Inteligência Coleta informações do cliente para obter insights e análises. • Dashboards
Operacional Habilita os produtos de vendas da YOM. Exige integrar todos os conceitos ou entidades que a YOM precisa para realizar vendas por meio de seus produtos. • B2B
• App Vendedores
• Call Center
• LLM Commerce

Requisitos técnicos

A seguir estão listados os requisitos técnicos necessários para implementar uma integração por Arquivos com a YOM. Aplicam-se aos dois tipos de integração, exceto a estrutura de pastas, que é detalhada para cada tipo.

🗄️ Servidor SFTP


O servidor onde estão os arquivos pode ser do cliente ou um servidor da YOM.

Servidor da YOM

A YOM hospedará um servidor SFTP para os ambientes staging e production. As credenciais a utilizar são:

Para garantir a segurança, o acesso ao servidor SFTP é feito por meio de autenticação SSH com chave privada. A YOM fornecerá ao cliente um arquivo que contém a chave privada necessária para a autenticação.

<aside> ⚠️

A chave privada deve ser mantida segura e nunca compartilhada com terceiros.

</aside>

*\Coordenar com a equipe de TI.

📋 Formato de arquivos


Os arquivos devem estar no formato CSV, com ponto e vírgula ; como separador padrão e encoding UTF-8.

Separador → ;

Encoding → UTF-8

A estrutura de seus nomes deve ser:

<fecha>_<hora>_<entidad>.csv

Formato Data → YYYYMMDD

Formato Hora → HHMMSS

Exemplo de um arquivo com lista de Products carregado no dia 01 de fevereiro de 2024 às 18h:

20240201_180000_product.csv

📂 Pastas


A estrutura de pastas depende do tipo de integração.

Integração Operacional

Deve ser implementada uma estrutura de pastas como a seguinte:

/<nombre_cliente>
	/production
		/load
			/product
				/all
					20240201_180000_product.csv
					20240201_073000_product.csv
					20240131_180000_product.csv
					20240131_073000_product.csv
				/created
					...
				/updated
					...
			/commerce
				/all
					20240201_180000_commerce.csv
					20240131_180000_commerce.csv
					20240130_180000_commerce.csv
				/created
					...
				/updated
					...
			/override
				...
			...
	/development
		...

Explicação da estrutura de pastas

/<nombre_cliente> → Esta pasta principal representa o cliente específico que se integra com a YOM.

<aside> 🚧

</aside>

Integração Inteligência

Os arquivos são organizados por cliente, entidade e data de carga:

/integrations
	/<customer_id>
		/commerce
			/20251228
				20251228_180000_commerce.csv
		/product
			/20251228
				20251228_180000_product.csv
		/seller
			/20251228
				20251228_180000_seller.csv
		/transaction
			/20251228
				20251228_180000_transaction.csv
		...

Explicação da estrutura de pastas

/integrations → Pasta raiz da integração Inteligência.

📋 Política de achatamento de objetos JSON


As entidades são definidas originalmente como objetos com campos aninhados, que representam objetos ou listas. São pensadas para serem transmitidas por meio de estruturas JSON na integração por Integração por API.

Para converter estruturas JSON aninhadas em um formato CSV, é necessário "achatar" os objetos, ou seja, converter as propriedades aninhadas em uma estrutura de chave-valor plana.

Para achatar um objeto JSON para um formato CSV, segue-se a seguinte lógica: