Hello. I have a webhook posting for all forms in a portal. It works fine except for the fact that it is sending the entire customer record with the entire payload for all information collected for that contact. Which is making the payload huge (since many contacts may have filled out dozens of forms). Is it possible to send a limited snapshot of the form submission only? The other problem I have is that I am trying to determine which fields/questions were submitted on that particular submit. Some questions are on some forms and other than parsing the forms/fields data - not sure how to determine when a question was answered unless I dig down into the audit trail. I would just let to get the fact that this customer posted this information from this from - not everything.
To clarify, are you referring to a workflow which has any form submission as an enrollment trigger and then contains a webhook action which
POSTs to one of your endpoints, per this article?
If so, it's not currently possible to limit the contact information
POSTed through a workflow. Instead, HubSpot sends "the contact's entire record formatted in JSON to the specified URL [...] The receiving system can then parse that JSON data, and use it for its own application." That said, you're correct it's going to be difficult to determine exactly which form a change came from. One potential method I can think of would be to compare the timestamps to the latest form submission timestamp.
Alternatively, you could use the Forms API to send only a given form submission's data. These payloads are much smaller than the contact objects sent through workflow webhooks.
Hello Isaac. Yes - that is how I am receiving the data. Via a POST to my endpoint on any form submission.
I took a quick look at the Forms API but it does not show a method to extract a form submission. Seem you can only submit a form submission.
I will continue using the existing webhook. It just seems odd and inefficient to received so much data on a form submission event.