External API Activity Support

Description

When we try to pass data in a JSON format to a 3rd party REST API endpoint.

the below is JSON format accepted by 3rd party REST API endpoint

Actual Payload:

but ACS formatted the JSON format as below

Modified  Payload:

{“data”:{“destination”:“https://www.google.com/work/insights/123”,“domain”:“google.com”}}

which is not accepted by 3rd party REST API endpoint.

Resolution

There are two factors that influenced the decision to use the format -

  1. The ‘data’ portion is only added if there is an inbound temp table generated by a previous activity, and the rows from that temp table are serialized into a JSON array. Hence the need for a json property named ‘data’ and the serialized data sent as an array using .
  2. The activity allows, custom parameters to be sent to the API as well, which are added to the payload using a ‘params’ property. Note these are fixed (as in configured once into the activity during authoring time).

This normalized format allowed us to have a fixed format without any UI support to customize how to format this according to 3rd party API spec. The intention was to use a translation layer such as Adobe IO Runtime, or AWS Lambda etc. to do on-the-fly translation of request/response as needed.

On this page