This guide explains how to send form data from n8n to a JotForm form submission endpoint using the HTTP Request node.
It avoids the need for API keys and works with standard multipart/form-data
.
📌 Overview
With this workflow, you can automatically submit data from any source (Google Sheets, databases, webhooks, etc.) directly into JotForm.
✅ Useful for:
- Pushing information into a form without manual entry.
- Avoiding API authentication.
- Syncing external data into JotForm.
🛠 Requirements
- A JotForm account.
- An existing JotForm form.
- Access to the form’s direct link.
- Basic understanding of JotForm’s field naming convention.
⚙️ Setup Instructions
1. Get the JotForm Submission URL
- Open your form in JotForm.
- Go to Publish → Quick Share → Copy Link.
Example form URL: sample form
- Convert it into a submission endpoint by replacing
form
with submit
:
Example: submit url
2. Identify Field Names
Each JotForm field has a unique identifier like q3_name[first]
or q4_email
.
Steps to find them:
- Right-click a field in your published form → choose Inspect.
- Locate the
name
attribute in the <input>
tag.
- Copy those values into the HTTP Request node in n8n.
Example mappings:
- First Name →
q3_name[first]
- Last Name →
q3_name[last]
- Email →
q4_email
3. Configure HTTP Request Node in n8n
- Method:
POST
- URL: Your JotForm submission URL (from Step 1).
- Content Type:
multipart/form-data
- Body Parameters: Add field names and values.
Example Body Parameters:
{
"q3_name[first]": "John",
"q3_name[last]": "Doe",
"q4_email": "[email protected]"
}
4. Test the Workflow
- Trigger the workflow (manually or with a trigger node).
- Submit test data.
- Check JotForm → Submissions to confirm the entry appears.
🚀 Use Cases
- Automating lead capture from CRMs or websites into JotForm.
- Syncing data from Google Sheets, Airtable, or databases.
- Eliminating manual data entry when collecting responses.
🎛 Customization Tips
- Replace placeholder values (
John
, Doe
, [email protected]
) with dynamic values.
- Add more fields by following the same naming convention.
- Use n8n expressions (
{{$json.fieldName}}
) to pass values dynamically.