clipform

n8n community node for Clipform - trigger a workflow when a form is completed

Package Information

Released: 2 mo ago
Downloads: 246 weekly / 938 monthly
Latest Version: 0.1.7

Documentation

@clipform/n8n-nodes-clipform

An n8n community node for Clipform - trigger a workflow whenever a form is completed. Works on n8n Cloud and self-hosted.

Installation

In n8n: Settings → Community nodes → Install, then enter @clipform/n8n-nodes-clipform.

Setup

  1. Create a Clipform API credential with an API key from your Clipform dashboard (Developer → API keys).
  2. Add the Clipform Trigger node and activate your workflow.

Output

The trigger fires once per completed form submission, for every form in the workspace - use data.form_id / data.form_name / data.form_tags to filter to a specific form downstream.

Field Type Description
type string Always form.completed.
version string Payload version (currently 1).
timestamp string (ISO 8601) When the event was emitted.
data.form_id string (uuid) The form's id.
data.form_name string The form's name.
data.share_id string The form's public share id.
data.form_tags string[] Tags assigned to the form.
data.response_id string (uuid) Id of this response set.
data.submitted_at string (ISO 8601) When the respondent submitted.
data.session.device string Respondent's device, e.g. desktop.
data.session.browser string Respondent's browser.
data.session.country string Respondent's country.
data.session.city string Respondent's city.
data.session.time_spent_seconds number Time spent completing the form.
data.responses[] array One entry per answered node - see below.

Every data.responses[] item has node_id, prompt, and node_type, plus value fields that depend on node_type:

  • choice / button - label, option_id
  • open - text, plus media and transcription for audio/video answers
  • details - fields (array of { type, value } contact fields)
  • draw - media (the drawing, exported as a PNG)
  • file_upload / file_download - files (array of file metadata with signed URLs)

Unknown or future node types still include node_id, prompt, and node_type, so they can be handled generically.

Example payload

{
  "type": "form.completed",
  "version": "1",
  "timestamp": "2024-01-15T10:30:00Z",
  "data": {
    "form_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
    "form_name": "Customer Feedback",
    "share_id": "abc12345",
    "form_tags": ["sales", "vip"],
    "response_id": "550e8400-e29b-41d4-a716-446655440000",
    "submitted_at": "2024-01-15T10:30:00Z",
    "session": {
      "device": "desktop",
      "browser": "Chrome",
      "country": "United States",
      "city": "San Francisco",
      "time_spent_seconds": 45
    },
    "responses": [
      {
        "node_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "node_type": "choice",
        "prompt": "How did you hear about us?",
        "label": "Option A",
        "option_id": "opt-789"
      },
      {
        "node_id": "6f4b2c1e-0d3a-4a2b-9c8d-1e2f3a4b5c6d",
        "node_type": "open",
        "prompt": "Anything else you'd like to share?",
        "text": "I loved it"
      }
    ]
  }
}

More detail (media/transcription fields, full field reference): clipform.io/docs/guides/integrations/n8n.

License

MIT

Discussion