Skip to content

In n8n, copy this file and paste it onto the canvas, or use Import from File.

{
  "name": "24 · Proposal Intake Form",
  "nodes": [
    {
      "parameters": {
        "formTitle": "Tell us about your project",
        "formDescription": "Takes 2 minutes. You'll get a tailored proposal by email.",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Your name",
              "requiredField": true
            },
            {
              "fieldLabel": "Company"
            },
            {
              "fieldLabel": "Email",
              "fieldType": "email",
              "requiredField": true
            },
            {
              "fieldLabel": "Services",
              "fieldType": "dropdown",
              "multiselect": true,
              "requiredField": true,
              "fieldOptions": {
                "values": [
                  {
                    "option": "Website design & build"
                  },
                  {
                    "option": "SEO foundation"
                  },
                  {
                    "option": "Workflow automation"
                  },
                  {
                    "option": "Brand identity"
                  }
                ]
              }
            },
            {
              "fieldLabel": "Budget",
              "fieldType": "dropdown",
              "fieldOptions": {
                "values": [
                  {
                    "option": "Under $5k"
                  },
                  {
                    "option": "$5k-$10k"
                  },
                  {
                    "option": "$10k-$20k"
                  },
                  {
                    "option": "$20k-$40k"
                  }
                ]
              }
            },
            {
              "fieldLabel": "Timeline (weeks)",
              "fieldType": "number"
            },
            {
              "fieldLabel": "Goals",
              "fieldType": "textarea",
              "requiredField": true
            },
            {
              "fieldLabel": "Anything else?",
              "fieldType": "textarea"
            }
          ]
        },
        "responseMode": "onReceived",
        "options": {
          "path": "proposal-intake",
          "respondWithOptions": {
            "values": {
              "formSubmittedText": "Thanks! Your proposal is on its way to your inbox."
            }
          }
        }
      },
      "id": "m24-discovery-form",
      "name": "Discovery Form",
      "type": "n8n-nodes-base.formTrigger",
      "typeVersion": 2.2,
      "position": [
        0,
        0
      ],
      "webhookId": "course-24-form"
    },
    {
      "parameters": {
        "jsCode": "// Map the form's labels to the proposal API's fields.\nconst f = $input.first().json;\nreturn [{ json: {\n  client: f['Your name'], company: f['Company'] ?? '', email: f['Email'],\n  services: f['Services'] ?? [], budget: f['Budget'] ?? '', timeline_weeks: f['Timeline (weeks)'] ?? null,\n  goals: f['Goals'] ?? '', notes: f['Anything else?'] ?? '',\n} }];\n"
      },
      "id": "m24-to-api-body",
      "name": "To API Body",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        220,
        0
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "http://localhost:5678/webhook/prop/create",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={{ JSON.stringify($json) }}",
        "options": {}
      },
      "id": "m24-create-proposal",
      "name": "Create Proposal",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        440,
        0
      ],
      "onError": "continueRegularOutput"
    }
  ],
  "connections": {
    "Discovery Form": {
      "main": [
        [
          {
            "node": "To API Body",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "To API Body": {
      "main": [
        [
          {
            "node": "Create Proposal",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "pinData": {}
}