Kostenlos starten

· 11 Min. Lesezeit

PDF-Archivierung und E-Mail-Versand von Reports via API

End-to-End-Workflow: Rohdaten → PDF → Cloud-Ordner → E-Mail-Anhang, nur mit REST (generate-document, folders, send-document).

In Enterprise-Anwendungen und SaaS-Plattformen ist die Erzeugung eines PDF-Dokuments nur das erste Stück des Puzzles. Sobald der Report, die Rechnung oder der Lieferschein fertig ist, startet eine Kette obligatorischer Aktionen: Die Datei muss sicher in einer organisierten Ordnerstruktur gespeichert, für den späteren Download verfügbar gemacht und oft sofort per E-Mail an den Kunden oder die Verwaltung gesendet werden.

Diesen gesamten Workflow von Grund auf zu implementieren bedeutet, Code zu schreiben für:

  • Anbindung an Grafikbibliotheken für das PDF-Rendering.
  • Konfiguration und Verwaltung von Storage (lokal oder AWS-S3-Bucket) inklusive Berechtigungen und Pfaden.
  • Konfiguration von SMTP-Servern, Verwaltung von Versandwarteschlangen und Sicherstellung, dass E-Mails mit schweren Anhängen nicht im Spam landen.

In diesem Leitfaden zeigen wir, wie Sie Archivierung und E-Mail-Versand von Reports per API automatisieren: den gesamten Prozess auf eine Sequenz von REST-Web-API-Aufrufen reduzieren — Erzeugung, organisierte Archivierung und Versand — ohne lokalen Storage und ohne dediziertes SMTP in Ihrer Warenwirtschaft.

Architektur des Ablaufs: erzeugen → archivieren → senden

Statt das Backend Ihrer Software mit separaten Threads für Dateien und SMTP zu überlasten, nutzt der moderne Microservices-Ansatz spezialisierte API-Endpoints, die sequenziell arbeiten.

Ablauf: JSON, generate-document, Ordnerarchiv, E-Mail
Automatisierter Workflow: JSON-Daten → PDF im Cloud-Ordner → E-Mail mit Anhang.
[JSON-Daten] │ ├─► 1. v1-folders/create (optional: Ordner erstellen / wiederverwenden) │ ├─► 2. v1-jobs/generate-document (+ folderId) → PDF archiviert │ │ │ └─ documentId │ └─► 3. v1-jobs/send-document (documentId + to[]) → E-Mail an den Benutzer

Die drei Schlüssel Schritte:

  • generate-document: nimmt Anwendungsdaten als JSON, injiziert sie in das vorkonfigurierte grafische Template und erzeugt das PDF.
  • folders: organisiert die Datei in einer logischen Baumstruktur im Portal (z. B. Kundenreports / Juli 2026). Sie übergeben folderId an generate-document.
  • send-document: nimmt die soeben erstellte documentId und sendet die E-Mail mit Anhang (SMTP auf dem API-Key oder Plattform-Standard).

Praxisleitfaden: Implementierung des Workflows in Node.js

Sehen wir, wie sich diese Automatisierung in Code übersetzt. Ziel: einen monatlichen Aktivitätsreport erzeugen, ihn im Kundenordner archivieren und per E-Mail zustellen. Dokumentation: 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 (optional): Ordner für den Zeitraum anlegen
    const folderRes = await axios.post(
      `${API_BASE}/v1-folders/create`,
      { name: 'Clienti — Luglio 2026' },
      { headers }
    );
    const folderId = folderRes.data.folderId;

    // PHASE 1: PDF-Erzeugung + Archivierung im Ordner
    console.log('1. PDF-Erzeugung läuft...');
    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 archiviert. documentId: ${documentId}`);
    console.log(`→ Download: ${downloadUrl}`);

    // PHASE 2: E-Mail mit Anhang senden
    console.log('2. PDF per E-Mail senden...');
    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 erfolgreich gesendet!');
  } catch (error) {
    console.error(
      'Fehler im Workflow:',
      error.response ? error.response.data : error.message
    );
  }
}

eseguiAutomazioneReport();

Äquivalentes cURL (generate + send)

# 1) Ordner erstellen (folderId aus der Antwort speichern)
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) Erzeugen und archivieren
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) E-Mail senden
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"}'

Warum lokalen Storage und dedizierte SMTP-Server eliminieren?

Diesen Prozess auf eine spezialisierte API-Infrastruktur zu verlagern bietet Softwarehäusern drei unmittelbare Vorteile:

  • Keine Festplattenprobleme (entkoppelter Storage): PDFs liegen nicht auf dem Server Ihrer Anwendung. Keine vollen Disks und keine Ad-hoc-Backups: sie bleiben in der Cloud, herunterladbar mit GET api/v1-documents/download&uid={documentId}.
  • E-Mail-Deliverability: SMTP mit SPF, DKIM und DMARC zu konfigurieren ist komplex. Mit send-document nutzen Sie das Plattform-SMTP oder das auf dem API-Key konfigurierte (Portal → Email/SMTP), ohne Custom-Mailer in der Warenwirtschaft.
  • Vollständige Nachverfolgbarkeit: mit einer eindeutigen documentId können Sie die Datei erneut abrufen, erneut senden oder herunterladen, ohne die Quelldaten neu zu verarbeiten.

Fazit

Die Automatisierung dokumentenbezogener Prozesse muss nicht gleichbedeutend mit schwerem Code und komplexer Infrastruktur sein. Geschäftslogik zu isolieren und grafische Formatierung, Speicherung und E-Mail-Routing den APIs zu überlassen macht SaaS-Anwendungen schlanker, schneller und leichter skalierbar — ideal, wenn Sie suchen, wie man Reports per API erzeugt und versendet oder PDFs in einem Cloud-Ordner speichert.

Möchten Sie die Reports Ihrer Anwendung automatisieren? QuartzAPI ist dafür gemacht, Softwarehäusern das Leben zu erleichtern. Mit der öffentlichen Beta konfigurieren Sie Templates und Cloud-Ordner und testen den vollständigen Erzeugungs- und Versandfluss per API ohne Anfangskosten.

👉 Zur QuartzAPI-Beta registrieren und PDFs automatisieren

Fertige Snippets

  • v1-folders/create · v1-folders/index (auch tree=1)
  • v1-jobs/generate-document mit folderId
  • v1-jobs/send-document · v1-documents/download
  • Referenz: Web-API-Dokumentation