· 11 min de lecture
Automatiser archivage et envoi e-mail de rapports via API
Workflow complet : données brutes → PDF → dossier cloud → e-mail en pièce jointe, avec des appels REST uniquement.
Dans les applications enterprise et les plateformes SaaS, la génération d’un document PDF n’est que la première pièce du puzzle. Une fois le rapport, la facture ou le bon de livraison prêts, une chaîne d’actions obligatoires s’enclenche : le fichier doit être sauvegardé de façon sécurisée dans une structure de dossiers organisée, rendu accessible pour un téléchargement futur et, souvent, envoyé immédiatement par e-mail au client ou au service administratif.
Implémenter ce workflow complet depuis zéro signifie écrire du code pour :
- S’interfacer avec des bibliothèques graphiques pour le rendu PDF.
- Configurer et gérer un stockage (local ou bucket AWS S3) en gérant permissions et chemins.
- Configurer des serveurs SMTP, gérer les files d’envoi et s’assurer que les e-mails avec pièces jointes lourdes ne finissent pas en spam.
Dans ce guide, nous verrons comment automatiser l’archivage et l’envoi e-mail de rapports via API : réduire l’ensemble du processus à une séquence d’appels Web API REST — génération, archivage organisé et expédition — sans stockage local ni SMTP dédié sur votre logiciel de gestion.
L’architecture du flux : générer → archiver → envoyer
Au lieu de surcharger le backend de votre logiciel avec des threads séparés pour les fichiers et le SMTP, l’approche microservices moderne utilise des endpoints API spécialisés qui travaillent en séquence.
Les trois étapes clés :
-
generate-document: prend les données applicatives en JSON, les injecte dans le template graphique préconfiguré et produit le PDF. -
folders: organise le fichier dans une arborescence logique sur le portail (ex. Rapports clients / Juillet 2026). Vous passezfolderIdà generate-document. -
send-document: prend ledocumentIdvenant d’être créé et envoie l’e-mail avec pièce jointe (SMTP sur la clé API ou défaut plateforme).
Guide pratique : implémentation du workflow en Node.js
Voyons comment traduire cette automatisation en code. Objectif : générer un rapport mensuel d’activité, l’archiver dans le dossier du client et le lui envoyer par e-mail. Documentation : 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 {
// PHASE 0 (optionnelle) : créer le dossier de la période
const folderRes = await axios.post(
`${API_BASE}/v1-folders/create`,
{ name: 'Clienti — Luglio 2026' },
{ headers }
);
const folderId = folderRes.data.folderId;
// PHASE 1 : génération PDF + archivage dans le dossier
console.log('1. Génération du PDF en cours...');
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 archivé. documentId: ${documentId}`);
console.log(`→ Download: ${downloadUrl}`);
// PHASE 2 : envoi e-mail avec pièce jointe
console.log('2. Envoi du PDF par e-mail...');
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('→ E-mail envoyé avec succès !');
} catch (error) {
console.error(
'Erreur dans le workflow :',
error.response ? error.response.data : error.message
);
}
}
eseguiAutomazioneReport();
Équivalent cURL (generate + send)
# 1) Créer le dossier (enregistrer folderId depuis la réponse)
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) Générer et archiver
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) Envoyer l'e-mail
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"}'
Pourquoi éliminer le stockage local et les serveurs SMTP dédiés ?
Déplacer ce processus vers une infrastructure API spécialisée offre trois avantages immédiats aux software houses :
-
Zéro problème d’espace disque (stockage découplé) : les PDF ne résident pas sur le serveur
de votre application. Pas de disques pleins ni de sauvegardes ad hoc : ils restent dans le cloud, téléchargeables avec
GET api/v1-documents/download&uid={documentId}. -
Délivrabilité des e-mails : configurer SMTP avec SPF, DKIM et DMARC est complexe.
Avec
send-documentvous utilisez le SMTP de la plateforme ou celui configuré sur la clé API (portail → Email/SMTP), sans mailer custom dans le logiciel de gestion. -
Traçabilité totale : avec un
documentIdunique vous pouvez reprendre le fichier, le renvoyer ou le télécharger sans retraiter les données de départ.
Conclusions
L’automatisation des processus documentaires ne doit pas être synonyme de code lourd et d’infrastructures complexes. Isoler la logique métier et laisser aux API la mise en forme graphique, la sauvegarde et le routage des e-mails rend les applications SaaS plus légères, plus rapides et plus faciles à scaler — idéal si vous cherchez comment générer et envoyer des rapports via API ou sauvegarder des PDF dans un dossier cloud.
Vous voulez automatiser les rapports de votre application ? QuartzAPI est né pour simplifier la vie des software houses. Avec la beta publique vous configurez templates et dossiers cloud et testez le flux complet de génération et d’envoi via API sans coûts initiaux.
Snippets prêts à l’emploi
v1-folders/create·v1-folders/index(aussitree=1)v1-jobs/generate-documentavecfolderIdv1-jobs/send-document·v1-documents/download- Référence : Documentation Web API