Not sure if there is something I’m missing, but it appears the “Webhook Trigger” in workflows does not work with JotForm “Webhook” integration function.
Within Jotform, you can set an integration point to POST to a webhook URL on form submission with the form data. I was able to test and confirm that function was working using a 3rd party listening tool.
I then set up a “Receive a Webhook” enrollment for a test workflow and generated the webhook URL. I placed this into the URL field for Jotform, but after submission, HubSpot did not recognize that it had received any data. I then took the payload that was received with the 3rd party tool, pasted it into Postman, and then sent it via POST to the webhook URL. Lo and behold, HubSpot recognized it and I was able to finish setting up the webhook, mapping the field values to the token fields, including email. However, after saving the enrollment criteria with the Webhook (which itself was very buggy), it still does not seem to work when JotForm sends the the POST to the HubSpot webhook URL.
Has anyone else had an success using the workflow “Webhook is received” trigger with Jotform (or any platform for that matter)?
I haven’t had any issue with trigger a webhook from an external service.
I just tested with my Jotform account and was able to webhook into a Workflow trigger.
1. I created a new webhook for a Workflow.
2. When I got to the test phase of the webhook (to receive data), I went to Jotform and set up the automation (adding the webhook action).
3. In Jotform, I tested the webhook action against the URL (with data) and Hubspot saw the event and data and it let me finish up setting the webhook.
Thanks @MichaelMa, I didn’t see a “test phase” when setting it up under the “integration” menu on the form, but did in the JotForm “Workflow” tool. After setting up there, it seems to work as expected. My guess is it’s something to do with the way integrations vs workflows work within Jotform.
I didn’t even consider using the Integrations on the form before. But I’m looking at it now and it looks like the webhook sent via this method doesn’t pass the data into as a JSON while the workflow webhooks does.
There’s a forum post response from late last year from Gian_D:
Wherein the body content is multipart/form-data instead of JSON. I confirmed it myself using this webhook service: https://webhook-test.com. It looks like the JSON data is stored in the rawRequest of the form data which is also shown in their PHP example: Webhook PHP Script Examples
No idea why Jotform did it did way since JSON format for the body is fairly standard.
Hi @MGoswick2 ,
I’ve seen this come up before. The key detail is that Jotform’s form-level webhook sends the body as multipart/form-data instead of application/json.
HubSpot’s “Webhook is received” workflow trigger only parses JSON, which is why your Postman test worked but the Jotform direct integration didn’t. When you used Jotform’s “workflow” tool instead of the integration menu, it sent JSON and HubSpot could read it.
That’s why it worked after switching.
This isn’t a HubSpot bug so much as a payload format mismatch. If you must stick with form-level integrations, you’d need a middleware layer (like a tiny server or something like Make/Zapier) to catch the multipart data and re-post it as JSON to HubSpot’s webhook URL.
Otherwise, Jotform’s “workflow” automation path is the cleanest option. HubSpot’s docs confirm the trigger expects JSON payloads Set 'When a webhook is received' workflow triggers
Zooming out a bit: this kind of frustration is why a lot of teams eventually move away from ad hoc webhooks between apps. They work fine in simple cases, but payload quirks and format mismatches crop up quickly.
At some point it’s easier to use a sync layer that’s schema-aware and normalizes data between systems automatically rather than debugging headers and body formats each time.
Does that line up with what you were running into?
If yes, you should be all set now that you’ve found the Jotform workflow route.
Let me know if you want me to expand on the middleware approach. Hope this clears it up.