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 working in the platform, 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 resolving issues in Cloud Elements is to tear off layer by layer of functionality until you find where the issue is.
Case Study
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 working with 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.
Let's 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
Call 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.
Summary
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.