Do you have an error and are feeling lost in the vast world of APIs and Cloud Elements? Hopefully this article will provide some much needed context and direction.
Whenever you are troubleshooting, you want to minimize the variables to isolate the issue.
Think of Cloud Elements as a layer on top of any original endpoints APIs. Likewise, any additional features you use on Cloud Elements such as formulas, transformations or bulk, add additional layers of functionality. More layers means more variables.
The goal of troubleshooting Cloud Elements is to tear off layer by layer of functionality until you find where the issue is.
Let's say you have a formula, and it is failing. Lets go through the steps in a hypothetical situation:
Step 1. Review formula execution logs
Because we're troubleshooting a formula, let's start by looking at the formula execution logs to determine what step is failing.
You find it was failing on a Element Request Step. Now you know that it's an API call that's failing. Let's remove the "layer" of formulas. From the execution log, you can see that the request is:
POST /MyCustomObject. The request is using a virtual data resource with a transformation, that's another layer.
Step 2. Test outside of the formula
Get the payload that was being sent in the formula from the execution logs and test the API outside of the formula. When you call
POST /MyCustomObject, you see that its failing with a 500 Internal Server Error. Perfect.
Step 3. Check the element instance
Let's make sure the element instance is working. You call another API on that element instance without using your transformation and it works fine.
Lets say your transformation is mapped to
contacts. Try transforming the data yourself and create a contact with the same data. You discover that works. So the transformation is the problem.
Step 4. Check your transformation
GET /MyCustomObject to see what the data looks like when you retrieve it. You find it looks weird.
firstName is mapped to a date field. The problem is on the transformation.
This same strategy should be used with any "layer" on Cloud Elements, like events, bulk, Element Builder. Remember that each feature you use adds another "layer" on top of the original API, whatever it may be. When debugging, remove as many layers as possible to get to the root of the issue.