deftforms

n8n community nodes for DeftForms API, polling trigger and webhook trigger.

Documentation

n8n-nodes-deftforms

n8n Community Node Paket für DeftForms.

Dieses Paket enthält drei klar getrennte Nodes:

  1. DeftForms
    Action Node für aktive API Operationen.
  2. DeftForms Trigger
    Polling Trigger für neue Formularantworten.
  3. 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 Fail nur 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

Discussion