· 11 min di lettura
Automatizzare Archiviazione e Invio Email di Report via API
Workflow completo: dati grezzi → PDF → cartella cloud → email con allegato, con sole chiamate REST (generate-document, folders, send-document).
Nelle applicazioni enterprise e nelle piattaforme SaaS, la generazione di un documento PDF è solo il primo pezzo del puzzle. Una volta che il report, la fattura o la bolla di consegna sono pronti, si attiva una catena di azioni obbligatorie: il file deve essere salvato in modo sicuro in una struttura a cartelle organizzata, deve essere reso accessibile per il download futuro e, spesso, deve essere inviato immediatamente via email al cliente o al reparto amministrativo.
Implementare questo intero workflow da zero significa scrivere codice per:
- Interfacciarsi con librerie grafiche per il rendering del PDF.
- Configurare e gestire uno storage (locale o bucket AWS S3) gestendo permessi e percorsi.
- Configurare server SMTP, gestire le code di invio e assicurarsi che le email con allegati pesanti non finiscano in spam.
In questa guida vedremo come automatizzare archiviazione e invio email di report via API: ridurre l’intero processo a una sequenza di chiamate Web API REST — generazione, archiviazione organizzata e spedizione — senza storage locale né SMTP dedicato sul tuo gestionale.
L’architettura del flusso: genera → archivia → invia
Invece di sovraccaricare il backend del tuo software con thread separati per file e SMTP, l’approccio moderno a microservizi usa endpoint API specializzati che lavorano in sequenza.
I tre passaggi chiave:
-
generate-document: prende i dati applicativi in JSON, li inietta nel template grafico pre-configurato e produce il PDF. -
folders: organizza il file in un’alberatura logica sul portale (es. Report clienti / Luglio 2026). PassifolderIdin generate-document. -
send-document: prende ildocumentIdappena creato e spedisce l’email con allegato (SMTP sulla API key o default piattaforma).
Guida pratica: implementazione del workflow in Node.js
Vediamo come tradurre questa automazione in codice. Obiettivo: generare un report mensile attività, archiviarlo nella cartella del cliente e spedirglielo via email. Documentazione: Web API.
const axios = require('axios');
const API_BASE = 'https://backend.quartzapi.com/index.php?r=api';
const API_KEY = 'TUO_API_KEY_SEGRETA';
const headers = {
Authorization: `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
};
async function eseguiAutomazioneReport() {
try {
// FASE 0 (opzionale): crea la cartella del periodo
const folderRes = await axios.post(
`${API_BASE}/v1-folders/create`,
{ name: 'Clienti — Luglio 2026' },
{ headers }
);
const folderId = folderRes.data.folderId;
// FASE 1: generazione PDF + archiviazione nella cartella
console.log('1. Generazione del PDF in corso...');
const genResponse = await axios.post(
`${API_BASE}/v1-jobs/generate-document`,
{
templateCode: 'REPORT_ATTIVITA',
folderId,
externalId: 'RPT-TECH-2026-07',
outputFormat: 'pdf',
data: {
cliente: 'Tech Solutions S.r.l.',
mese: 'Luglio 2026',
ore_totali: 45,
dettaglio_attivita: [
{
data: '05/07/2026',
descrizione: 'Refactoring database e indici SQL',
ore: 5
},
{
data: '12/07/2026',
descrizione: 'Sviluppo nuove API di integrazione',
ore: 40
}
]
}
},
{ headers }
);
const documentId = genResponse.data.result.documentId;
const downloadUrl = genResponse.data.result.downloadUrl;
console.log(`→ PDF archiviato. documentId: ${documentId}`);
console.log(`→ Download: ${downloadUrl}`);
// FASE 2: invio email con allegato
console.log('2. Invio del PDF via email...');
await axios.post(
`${API_BASE}/v1-jobs/send-document`,
{
documentId,
to: ['amministrazione@clientetech.it'],
subject: 'Report Attività Mensile - Luglio 2026',
body:
'Gentile cliente, in allegato trova il report delle attività di Luglio 2026.'
},
{ headers }
);
console.log('→ Email inviata con successo!');
} catch (error) {
console.error(
'Errore nel workflow:',
error.response ? error.response.data : error.message
);
}
}
eseguiAutomazioneReport();
Equivalente cURL (generate + send)
# 1) Crea cartella (salva folderId dalla risposta)
curl -X POST "https://backend.quartzapi.com/index.php?r=api/v1-folders/create" \
-H "Authorization: Bearer TUO_API_KEY_SEGRETA" \
-H "Content-Type: application/json" \
-d '{"name":"Clienti — Luglio 2026"}'
# 2) Genera e archivia
curl -X POST "https://backend.quartzapi.com/index.php?r=api/v1-jobs/generate-document" \
-H "Authorization: Bearer TUO_API_KEY_SEGRETA" \
-H "Content-Type: application/json" \
-d '{"templateCode":"REPORT_ATTIVITA","folderId":"fld_...","data":{...}}'
# 3) Invia email
curl -X POST "https://backend.quartzapi.com/index.php?r=api/v1-jobs/send-document" \
-H "Authorization: Bearer TUO_API_KEY_SEGRETA" \
-H "Content-Type: application/json" \
-d '{"documentId":"doc_...","to":["amministrazione@clientetech.it"],"subject":"Report Luglio 2026"}'
Perché eliminare lo storage locale e i server SMTP dedicati?
Spostare questo processo su un’infrastruttura API specializzata offre tre vantaggi immediati alle software house:
-
Zero problemi di spazio su disco (storage disaccoppiato): i PDF non risiedono sul server
della tua applicazione. Niente dischi pieni né backup ad hoc: restano nel cloud, scaricabili con
GET api/v1-documents/download&uid={documentId}. -
Deliverability delle email: configurare SMTP con SPF, DKIM e DMARC è complesso.
Con
send-documentusi lo SMTP della piattaforma o quello configurato sulla API key (portale → Email/SMTP), senza mailer custom nel gestionale. -
Tracciabilità totale: con un
documentIdunivoco puoi riprendere il file, reinviarlo o scaricarlo senza rielaborare i dati di partenza.
Conclusioni
L’automazione dei processi documentali non deve essere sinonimo di codice pesante e infrastrutture complesse. Isolare la logica di business e lasciare alle API la formattazione grafica, il salvataggio e il routing delle email rende le applicazioni SaaS più snelle, veloci e facili da scalare — ideale se cerchi come generare e inviare report via API o salvare PDF in cartella cloud.
Vuoi automatizzare i report della tua applicazione? QuartzAPI nasce per semplificare la vita delle software house. Con la beta pubblica configuri template e cartelle cloud e testi il flusso completo di generazione e invio via API senza costi iniziali.
👉 Registrati alla Beta di QuartzAPI e automatizza i tuoi PDF
Snippet pronti
v1-folders/create·v1-folders/index(anchetree=1)v1-jobs/generate-documentconfolderIdv1-jobs/send-document·v1-documents/download- Riferimento: Documentazione Web API