> For the complete documentation index, see [llms.txt](https://docs.laminar.run/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.laminar.run/building-an-integration/keywords/lam.resolvethenexecute.md).

# lam.resolveThenExecute

## 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.

## Invocation

Data transformation must output:

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

| 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  |

## 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
    }
  };
}
```

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