Zum Hauptinhalt springen

Make

Die Formfeed-App für Make hat zehn Module, einen Trigger und das universelle Modul Make an API call. Sie ist gebaut und in der Prüfung durch Make: Bis Make sie freigibt, steht sie nicht in Makes App-Liste. Bis dahin erledigt das HTTP-Modul dieselbe Aufgabe mit einer Anfrage, siehe das Ende dieser Seite.

Die App ist englischsprachig; Module und Felder heißen in Make so, wie sie hier stehen.

Verbinden​

Legen Sie eine Formfeed-Verbindung an und fügen Sie einen API-Schlüssel aus der App ein (API-Schlüssel). Ein ff_test_-Schlüssel rendert kostenlos (im Free-Plan mit Wasserzeichen), genau richtig beim Bauen eines Szenarios. Die Verbindung erscheint als Organisation / Workspace, mehrere Workspaces bleiben also unterscheidbar.

Die Vorgabe-Scopes eines neuen Schlüssels (render:create, render:read, template:read, account:read) decken den Verbindungstest, Vorlagenliste und Felder, die Render- und Batch-Module sowie Get a render / Get a batch ab. Die übrigen Module brauchen je einen weiteren Scope, den ein neuer Schlüssel nur hat, wenn Sie ihn ankreuzen:

ModulScope
Watch eventswebhook:manage (es registriert einen Webhook-Endpunkt)
Upload a filefile:write
List filesfile:read (in file:write enthalten)
Delete a filefile:delete

Die erweiterte Einstellung API URL ist für eine Adresse, die Ihnen der Formfeed-Support nennt, etwa ein Staging-Gateway, ohne /v1 und ohne Schrägstrich am Ende. Leer bleibt es bei https://api.formfeed.dev. Sie lässt sich nur beim Anlegen der Verbindung setzen, weil der API-Schlüssel nur an diese Adresse geht; für eine andere Adresse legen Sie eine neue Verbindung an.

Module​

ModulWas es tut
Create a documentRendert eine veröffentlichte Vorlage als PDF, PNG, JPG oder WebP und eine Word- oder PowerPoint-Vorlage als DOCX, PPTX oder PDF. Mit der Auswahl der Vorlage lädt Make deren Felder.
Create a document from HTMLRendert HTML, das früher im Szenario gebaut wurde, in der Vorlagensprache Ihrer Wahl.
Create a document from a URLRendert eine öffentliche Seite.
Convert a document to PDFWandelt eine Word-, Excel-, PowerPoint-, OpenDocument- oder RTF-Datei aus einem vorherigen Modul (bis 20 MB, wird nicht gespeichert) oder das Rendering einer Word- oder PowerPoint-Vorlage in ein PDF um, mit der Datei für das nächste Modul. Ab dem Starter-Tarif.
Get a renderLiefert ein Rendering anhand seiner ID, mit der Datei, sobald es erfolgreich war.
Create a batchReiht bis zu 1.000 Dokumente aus einer Vorlage ein, auf Wunsch mit einem Zip aller Dokumente.
Get a batchLiefert den Fortschritt eines Batch, seine Dokumente und die Zip-URL.
Watch eventsStartet das Szenario bei render.completed, render.failed, job.completed, job.failed, quota.warning oder quota.exceeded.
Upload a fileLegt ein Bild oder PDF aus einem vorherigen Modul in der Dateibibliothek ab, wo Vorlagen es mit asset() verwenden. Derselbe Name ersetzt die Datei.
List filesGibt die Dateien der Bibliothek zurück, optional nur einen Ordner (brand/).
Delete a fileEntfernt eine Datei anhand ihrer fil_…-ID aus der Bibliothek.
Make an API callRuft jeden anderen Endpunkt mit dem Schlüssel der Verbindung auf, etwa /v1/pdf/merge.

Die Felder der Module:

ModulFelder
Create a documentTemplate (Pflicht), dann die eigenen Felder der Vorlage und, bei Release Channels, Version; Output (leer: das Format der Vorlage, PDF bei einer PDF-Vorlage, ihr Bildformat bei einer Bildvorlage, ihre Vorgabe bei einer Word- oder PowerPoint-Vorlage; Word-Vorlagen rendern DOCX oder PDF, PowerPoint-Vorlagen PPTX oder PDF), File name, Locale (etwa de-DE, ersetzt das der Vorlage und wählt ihre Übersetzungen), Download the document (voreingestellt an)
Create a document from HTMLHTML (Pflicht), Template language (Jinja2, die Vorgabe, Liquid oder Handlebars), Data (JSON), Output (PDF, die Vorgabe, PNG, JPG oder WebP), File name, Download the document, Settings (JSON) (Papier, Ränder, Kopf- und Fußzeile oder die Bildgröße, wie unter Einstellungen pro Anfrage überschreiben)
Create a document from a URLURL (Pflicht, eine öffentliche Seite; private Netze und interne Hosts werden abgelehnt), Output (PDF, die Vorgabe, PNG, JPG oder WebP), File name, Download the document, Settings (JSON)
Convert a document to PDFDocument: A file from an earlier module (File name und Data: DOCX, XLSX, PPTX, ODT, ODS, ODP, DOC, XLS, PPT oder RTF, bis 20 MB; der Typ wird aus dem Inhalt gelesen) oder The render of a Word or PowerPoint template (Render ID, rnd_… eines Renderings mit Ausgabe DOCX oder PPTX); Page ranges (etwa 1-3,5, leer alle), Landscape, One page per sheet (für Tabellen und Dokumente ohne eigenes Seiten-Setup), File name (leer der Name der hochgeladenen Datei mit .pdf), Download the document
Get a renderRender ID (Pflicht, rnd_…), Download the document
Create a batchTemplate (Pflicht), Documents (Pflicht, bis zu 1.000, jedes mit den Feldern der Vorlage, File name, Output und Locale), Zip all documents (voreingestellt an)
Get a batchBatch ID (Pflicht, job_…)
Watch eventsEvents (Pflicht, voreingestellt Render completed)
Upload a fileFile name und Data (Pflicht: PNG, JPEG, WebP, GIF, SVG, AVIF oder PDF, bis 10 MB), Name in library (der Name, den Vorlagen mit asset() verwenden, etwa brand/logo.png; leer der eigene Name der Datei)
List filesName starts with (etwa brand/), Limit (voreingestellt 10)
Delete a fileFile ID (Pflicht, fil_…). Vorlagen, die die Datei verwenden, zeigen danach ein fehlendes Bild
Make an API callURL (Pflicht, ein Pfad wie /v1/templates, immer an die Adresse der Verbindung angehängt), Method, Headers, Query string, Body. Den Header Authorization ergänzt die Verbindung

Felder aus Ihrer Vorlage​

Die Liste Template zeigt die Vorlagen des Workspace mit Name und Art und markiert die unveröffentlichten; rendern lassen sich nur veröffentlichte. Mit der Auswahl einer Vorlage lädt Make die Felder ihres Datenschemas oder, wenn die Vorlage keines hat, die Felder ihrer Beispieldaten. Verschachtelte Objekte werden zu Gruppen, Listen wie Rechnungspositionen zu Arrays: Ordnen Sie ihnen einen Array aggregator zu, und die Bundles eines früheren Moduls werden zu Positionen. Eine Vorlage ohne Schema und ohne Beispieldaten bietet stattdessen ein Feld Data (JSON) an. Eine Vorlage mit Release Channels neben published erhält zusätzlich ein Select Version, das sie listet.

Die Datei für das nächste Modul​

Mit Download the document (voreingestellt) liefern die Dokument-Module neben dem Rendering auch die Datei, das nächste Modul übernimmt sie also direkt: den Anhang in Gmail, den Upload zu Google Drive oder Dropbox, eine FTP-Übertragung. Schalten Sie es aus, wenn die Download-URL genügt.

Ein Rendering, das länger als eine Minute dauert, läuft im Hintergrund weiter. Das Modul prüft dann fünf Minuten lang alle fünf Sekunden und liefert das Rendering, sobald es fertig ist; danach gibt es das Rendering im aktuellen Stand zurück, und Get a render oder Watch events holt es später ab.

Watch events liest jedes Rendering- und Batch-Ereignis über die API nach, bevor das Szenario es sieht. Das Bundle trägt so eine frische Download-URL, und ein Rendering- oder Batch-Ereignis, das nicht von Formfeed stammt, endet mit einem Fehler, statt Ihr Szenario mit erfundenen Daten laufen zu lassen. Kontingent-Ereignisse kommen so durch, wie sie eintreffen.

Fehler kommen mit Statuscode, Problembeschreibung und Code zurück, etwa [404] No published template "invoice-de" in workspace fennlor (template_not_found), sodass die Fehlerbehandlung eines Szenarios danach verzweigen kann. Vorlagen- und Datenfehler (422) und ein Rendering, das scheitert, während das Modul darauf wartet, kommen als Datenfehler (DataError) an, sodass eine Fehlerbehandlung sie vom Rest unterscheiden kann. Fehler listet jeden Code.

Batches​

Create a batch nimmt ein Array von Dokumenten: die Daten und optional Dateiname, Ausgabeformat und Locale je Dokument. Ein Szenario sieht meist so aus:

  1. ein Suchmodul (Google Sheets, Airtable, eine Datenbank), das je Zeile ein Bundle liefert,
  2. ein Array aggregator mit Create a batch als Zielstruktur, der die Spalten den Feldern der Vorlage zuordnet,
  3. Create a batch, das sofort mit der Batch-ID antwortet.

Ein zweites Szenario, das mit Watch events auf Batch completed beginnt, erhält die Zip-URL, sobald der Batch fertig ist, und Get a batch listet seine Dokumente. Wie sich Batches verhalten, beschreibt Async und Batch.

Bis zur Veröffentlichung​

Make a request des HTTP-Moduls funktioniert schon heute mit jedem Formfeed-Endpunkt:

  • URL https://api.formfeed.dev/v1/renders, Methode POST
  • Header Authorization: Bearer ff_test_…
  • Body type Raw, Content type JSON, Request content {"template": "invoice-de", "data": {"invoice": {"number": "2026-0042"}}}
  • Parse response eingeschaltet

Die Antwort enthält download_url, die ein zweites HTTP-Modul (Get a file) in eine Datei verwandelt. Die Form der Anfrage beschreibt Rendern.