Call API endpoint

Call a custom API endpoint

Ingredient Family: rowActionsIngredients

Outline Display: Call the endpoint named {{endpoint}} of {{apiName}} with the mapping: {{mapping}}{{blockedBodyPatterns:
Blocked body patterns: {{blockedBodyPatterns}}}}

Details

A call that does not go through fails the action rather than aborting the page it was triggered from. If the api’s provider requires a login and no credential is connected for this caller in this context, the step fails with a not-connected message naming connecting the service as the fix, and nothing is sent. A call the api refuses with HTTP 401 or 403 fails as unauthorized (sign in to that service again); any other refusal, and a host that cannot be reached, fail as a malfunction. In each case the rest of the pipeline does not run. blockedBodyPatterns scans the step’s mapped input values – the arguments about to go out, serialized as one JSON object, which is the step’s equivalent of the argument payload the Call API endpoint tool scans – before the credential is looked up and before anything is sent. A match fails the step as blocked, and the audit line carries no arguments, so the content that tripped the scan never lands in the log. The mapping may be omitted when the row already carries the endpoint’s arguments under their own names: an argument no entry names is filled from the row’s column of that name, so a mapping spells only what it renames or computes. A file or point argument is never filled that way and always needs its own entry. Inside a tool’s row action an argument no column supplies is not an error: it becomes a new argument of the tool, described from the endpoint argument it feeds, so a name meant to match a column and missing it silently grows an argument the caller must fill.

Local scope

The parent slot binds these (look up the slot in the parent to see how):

  • $table – The table to act on

Names introduced within this component’s knobs:

  • inputTable – request shape of endpoint (chosen under apiName)
  • outputTable – response shape of endpoint (chosen under apiName)
  • mappingResult – empty table populated by ingredients
  • NULL – empty table populated by ingredients

Settings

Required

  • apiName : API connection
    the API
    Set this to the name of any top-level api: item (or the inline api: block on a service/authenticator).

  • endpoint : endpoint of apiName
    the endpoint to send the POST request to
    Set this to the Name of an entry under wrappedEndpoints: on the referenced api: item, or to the name of a raw endpoints: entry that has no hand-written wrapper: every such endpoint automatically gets an identity wrapper of the same name (each parameter an argument, each response field revealed, with any character other than letters, digits, _, and - in a name replaced by an underscore, so the flattened path payload.note becomes payload_note). Do not write identity wrappers by hand; write a wrappedEndpoints: entry only to restrict or reshape an endpoint, and note that doing so replaces its automatic wrapper.

  • mapping : ingredient slot of mappingIngredientsList($table, mappingResult, inputTable) (many, until inputTable = mappingResult)
    How to map available field values to the endpoint’s inputs

Optional

  • blockedBodyPatterns : constant value (type: text; optional)
    Regex matched against the endpoint arguments this step is about to send (the mapped input values, as one JSON object); if it matches, the step fails and nothing is sent. Combine multiple secret/PII patterns with regex alternation. Leave blank to disable scanning.

  • outputMapping : ingredient slot of mappingIngredientsList(outputTable, $table, NULL) (many)
    How to map endpoint outputs to the fields we will set