Http Extensions
Page Contents
A Http Extension is triggered by our Extension API which then can parse information from the API call. This information can be used to create or update recipients, and trigger certain communications to them. There isn’t a UI available in Agillic to view this Extension type.
Execution Method
The execution method for a Http Extension must be called execute
, and is assumed to return a HttpResponse
object, which consists of a statusCode
and body. We map boolean and integer return values to a default HttpResponse
object.
If the script does not return a value, returns something which is invalid, or throws an exception, we default to statusCode=400
, with an empty body
.
Here are a set of examples of acceptable response objects, starting with the default mapping from a boolean to the HttpResponse
Object:
There are configurations that are available only for Http Extensions, to toggle between Secure/Open mode, and asynchronous mode. You can find the documentation of them here.
Writing Data
Due to the format of the execute
function’s return values in Http Extensions, changes made on the recipients will only be completed if the return value has statusCode
in the 2XX
response range. This can be customized with the optional shouldSave
function, which takes the execute
function’s returned response object, determines if the extension should write the data or not, with a boolean response. If your execute
function returned a boolean, we will map them to the default response object.
Here is an example replicating the default behavior of shouldSave
:
Check out the helper recipientService
, or the HTTP Extension Examples, for more context to this example.
Arguments
The input arguments for Http Extensions are:
call:
is unique to the extension type. It provides access to the data from the HTTP request which triggered it.global:
provides the access to global data (Global Data and Global Data Tables)
While the call
input argument can be read similar to standard input arguments, it contains specific attributes:
Attribute | Description | Return Type | Notes |
---|---|---|---|
path | The request path after defined endpoint | String | See API Specifications to see information on path |
method | The http method used in the request | String | See API Specifications to see information on methods |
body | Body included in the request | String | If the body value is JSON, this can be converted to javascript types inside the extension by parsing JSON.parse(call.body) |
params | Any query parameters included in the request | Object of Strings | Multiple values of same key not supported, so a call with params ?p1=v1&p1=v2 results in undefined behavior |
headers | Any header included in the request | Object of Strings | See API Specifications to see information on headers |
Http Extensions do not require preloading, because the RecipientService helper provides fully pre-loaded recipients when a query is made.