lam.resolveThenExecute

Learn about the resolveThenExecute keyword

Invocation

Data transformation must output:

JavaScript

{
  "lam.resolveThenExecute": {
    "lam.workflowId": 52,
    "lam.payload": { /* payload data */ },
    "lam.result": { /* result data */ }
  }
}

JQ

{
  "lam.resolveThenExecute": {
    "lam.workflowId": Int,
    "lam.payload": { ... },
    "lam.result": { ... }
  }
}
Key
Description
Type

workflowId

The workflow ID to invoke after resolving pending request

Integer

payload

The payload to pass to the workflow

Object

result

The result to resolve the pending request with

Object

Functionality

The resolveThenExecute keyword resolves a pending request with the contents from lam.result and then executes a new workflow. This enables asynchronous workflow execution by immediately responding to webhook requests while continuing processing.

Examples

JavaScript

(payload) => {
  const { step_2, input } = payload;
  const { Recipient, PackagesInfo } = input;
  
  const packages = PackagesInfo.Packages.map(pkg => ({
    address_1: Recipient.Address1,
    address_2: Recipient.Address2,
    address_city: Recipient.City,
    address_state_id: Recipient.CountryStateCode,
    address_country_id: Recipient.CountryCode,
    address_zip: Recipient.PostalCode,
    tracking_number: pkg.PreAssignTrackingNumber.TrackingNumber
  }));

  return {
    "lam.resolveThenExecute": {
      "lam.workflowId": 52,
      "lam.payload": {
        "packages": packages
      },
      "lam.result": step_2.data
    }
  };
}

JQ

.step_2.data as $result |
.input |
.Recipient as $rcp |
.PackagesInfo.Packages as $pkgsInfo |
$pkgsInfo | to_entries | map({
  address_1: $rcp.Address1,
  address_2: $rcp.Address2,
  address_city: $rcp.City,
  address_state_id: $rcp.CountryStateCode,
  address_country_id: $rcp.CountryCode,
  address_zip: $rcp.PostalCode,
  tracking_number: .value.PreAssignTrackingNumber.TrackingNumber
}) as $packages |
{
  "lam.resolveThenExecute": {
    "lam.workflowId": 52,
    "lam.payload": {
      "packages": $packages
    },
    "lam.result": $result
  }
}

In this example we start workflow 52 with our packages array and resolve the pending request with our $result.

Last updated

Was this helpful?