Package Information
Documentation
n8n-nodes-deftforms
n8n Community Node Paket für DeftForms.
Dieses Paket enthält drei klar getrennte Nodes:
- DeftForms
Action Node für aktive API Operationen. - DeftForms Trigger
Polling Trigger für neue Formularantworten. - DeftForms Webhook Trigger
Webhook Trigger für eingehende DeftForms Submissions.
Unterstützte API Bereiche
Base URL:
https://deftform.com/api/v1
| Resource | Operation | Endpoint |
|---|---|---|
| Workspace | Get | GET /workspace |
| Form | Get Many | GET /forms |
| Field | Get Many | GET /forms/{id}/fields |
| Response | Get Many | GET /responses/{formId} |
| Response | Create | POST /forms/{id}/response |
| Submission PDF | Get | GET /response/{UUID}/pdf |
| Form Settings | Update | POST /forms/{id}/settings |
Installation lokal
Empfohlener lokaler Zielpfad auf deinem Mac:
/Users/michaelhemmersbach/Desktop/deftForms Node
Da der Pfad Leerzeichen enthält, immer in Anführungszeichen verwenden:
mkdir -p "/Users/michaelhemmersbach/Desktop/deftForms Node"
cd "/Users/michaelhemmersbach/Desktop/deftForms Node"
unzip n8n-nodes-deftforms.zip
cd n8n-nodes-deftforms
npm install
npm run build
Credentials
In n8n ein Credential vom Typ DeftForms API anlegen.
Benötigt wird:
Access Token
Der Token wird in DeftForms in den Workspace API Settings erstellt.
Die Node sendet:
Authorization: Bearer <access-token>
Accept: application/json
Content-Type: application/json
Keine echten Tokens in Code, README, Screenshots, Logs oder Beispiel-Flows speichern.
Action Node: DeftForms
Workspace: Get
Liest Workspace Details.
Form: Get Many
Liest alle Formulare inklusive Feldern.
Field: Get Many
Liest Felder eines Formulars.
Response: Get Many
Liest Antworten eines Formulars.
Response: Create
Erstellt eine neue Antwort in DeftForms.
Beispiel für Response Data JSON:
{
"00000000-1111-2222-3333-444444444444": "Max Mustermann",
"10000000-2111-3222-4333-544444444444": "max@example.com"
}
Wichtig:
- Keys sind DeftForms Field UUIDs.
- Werte müssen string oder number sein.
- File Uploads über die API werden nicht direkt unterstützt.
- Für File Felder muss eine absolute URL zu einer extern hochgeladenen Datei übergeben werden.
Submission PDF: Get
Gibt den PDF-Link zu einer Submission zurück.
Form Settings: Update
Aktualisiert ausgewählte Formular-Einstellungen.
Beispiel:
{
"name": "Neuer Formularname",
"show_multipage_progress": true,
"cta_label_continue": "Weiter"
}
Trigger Node: DeftForms Trigger
Der Polling Trigger ruft regelmäßig Antworten über:
GET /responses/{formId}
ab und gibt nur neue Antworten aus.
Deduplizierung
Die Node speichert gesehene Response IDs/UUIDs im Workflow Static Data Speicher.
Optionen:
| Feld | Zweck |
|---|---|
| Form | Formularauswahl |
| Emit Existing Responses on First Run | Bereits vorhandene Antworten beim ersten Lauf ausgeben |
| Seen Cache Size | Anzahl gespeicherter IDs zur Deduplizierung |
Webhook Trigger Node: DeftForms Webhook Trigger
Diese Node empfängt eingehende DeftForms Webhooks per POST.
In DeftForms muss die n8n Test- oder Production-Webhook-URL eingetragen werden.
Optionaler Secret Header
Falls du einen Secret Header verwenden willst:
x-deftforms-secret: dein-secret
In der Node aktivieren:
Use Secret Header = true
Secret Header Name = x-deftforms-secret
Secret Header Value = dein-secret
Sicherheit
- Access Token nur über n8n Credentials speichern.
- Keine Tokens in Logs ausgeben.
- Webhook Header nur speichern, wenn nötig.
- Secret Header für Webhooks verwenden, falls möglich.
- Fehlercodes 401, 403, 404, 422, 429 und 500 bewusst behandeln.
Continue On Failnur gezielt verwenden.- Beispiel-Flows niemals mit echten Kundendaten veröffentlichen.
Lokale Entwicklung
npm install
npm run build
npm run test
npm Release
npm version patch
npm publish --access public
git push origin main --tags
Vor jedem Release prüfen:
git diff
npm run build
npm run test
Typische Flows
Formularantwort per Polling zu Google Sheets
DeftForms Trigger
-> Set / Normalize
-> IF Pflichtfelder vorhanden
-> Google Sheets Append
-> Erfolg loggen
-> Fehlerpfad
DeftForms Webhook zu CRM
DeftForms Webhook Trigger
-> Set / Normalize
-> IF Email vorhanden
-> CRM Contact Upsert
-> Slack Benachrichtigung
-> Fehler Logging
PDF Link per E-Mail verschicken
DeftForms Trigger
-> DeftForms Submission PDF Get
-> Send Email
-> Log