Hi there. I’m building an app to get some info from Zoom contact center. This requires an server to server app in zoom that then calls to a make webhook when certain events happen in zoom. This is for zoom contact center (not zoom phone).
I’m able to get zoom and make communicating. This requires a validation response from make back to zoom - Using webhooks where I hash a secret key and repond back to the validation request. Zoom will then periodically call back every 72 hours to revalidate.
The problem is that the payload of the validation call is not the same as the payload of the normal event that I want to handle in make. I’d like to be able to manually create the data structure of the webhook call.
When I go back in to edit the scenario in make the structure of the webhook is only showing the validation payload but not the regular payload I’m expecting. If I could somehow merge them then I could have a router that routes the validation event to respond with a new key and the other events down my “normal” path. Any ideas?
I edited my diagram slightly. The branch after validation “what I have labeled TBD” is not done yet because the payload of the event that I want to handle with make is not there because the validation payload is in there.
A webhook in make.com accepts everything it receives. It doesn’t have to be a fixed structure
In order for what you want to do to work, you have to build one of the two routes and then send the other input to the webhook and then fill the other route with this input.
You could also build the input manually. If you copy a mapped input and paste it into notepad, for example, you can see how the syntax works.
You can create a filter on the event key of the webhook payload and evaluate the value that comes in there. You should probably have a fallback route as well in case the value is not the validation or the other expected event, and handle that appropriately.
I highly recommend you use the Parse JSON module in the JSON app, as your first 2 modules to simulate what your webhook would normally send for the validation and for the other real payload. Load each Parse JSON module with “sample” expected payloads so you can practice running the scenario without having to invoke the webhook every single time you wish to test it. The JSON help doc has a walkthrough on how to do this. This makes building out the scenario much more efficient and faster in terms of turnaround as the Parse JSON will generate the necessary data and you can tweak it quickly to test other values rather than having to reenter them in Zoom contact center.
Once you are finished you can replace the webhook as the first module and place the parse JSON modules unconnected via any routes (ie “orphaned”) on your scenario in case you wish to use them to test inputs again. You will need to remap the mapped values in the rest of your scenario but you can do that relatively quickly with the Make Dev Tool described in the help doc
Thank you so much. I still have a question or maybe I’m not understanding the solution.
When I determine the structure of the webhook, it has two different payloads. If I want to try to map an expected value in the structure I can either click “redetermine data structure” and then get a validation event or “redetermine data structure” and get the event I want to use downstream but I don’t know how to get the combined structure for both. Are you saying that I should redefine the data structure using a JSON module regardless of what structure is in the “redetermine data structure” result?
No you don’t need to do that – this button is there simply to “prime” the scenario with the next call you’ll make to the webhook. It is not fixed with that structure forever. Whatever webhook information is provided during every call will be evaluated correctly by the rest of the scenario. This button simply helps you get Make ready to identify what has been just called into the Webhook so you can map the structures in the scenario with the latest web hook data.
Right but it makes it easy for me to drop the attributes into the downstream modules. I was asking @Levin as well but do I need to add a JSON module to establish the format of the webhook data so I can easily add it to other modules?
If you read my comment above you can see how I use Parse JSON to simulate the webhook structures. Parse JSON will establish the structure given a text payload. But if you establish a data structure you can use that as well to validate the Parse JSON payload but it is not required.
So
Get the payloads by invoking each webhook structure. Copy them to a clipboard
Make a Parse JSON for the validation
Make a Parse JSON for the other transactional webhook payload
When developing your scenario reference the appropraite output bundle from each in the rest of your scenario
When ready replace both Parse JSON’s with the webhook and remap mapped values in the rest of the scenario (can be done manually or with the Make dev tool linked above).