> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://help.moveworks.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://help.moveworks.com/_mcp/server.

# Pass Data to Dynamic Resolvers with Strategy Mapping

A dynamic resolver cannot read the conversation process data bank. To pass an earlier value to its action, copy the value into the resolver with Strategy Mapping, then bind the resolver-local value to the action argument with Resolver Input Mapping.

In this walkthrough, an earlier activity returns a list of eligible building IDs. The resolver uses that list to populate a `building` slot. The configuration is the same whether the resolver strategy is attached to a custom data type or defined inline on the slot.

## How the Data Moves

```mermaid
flowchart LR
    A["Conversation process data bank<br />data.eligible_building_sys_ids"]
    B["Resolver data bank<br />data.building_sys_ids"]
    C["Building lookup action<br />argument: building_sys_ids"]

    A -->|"Strategy Mapping<br />building_sys_ids: data.eligible_building_sys_ids"| B
    B -->|"Resolver Input Mapping<br />building_sys_ids: data.building_sys_ids"| C
```

Both mappings use `destination: source`. Strategy Mapping creates the resolver-local `building_sys_ids` key from `data.eligible_building_sys_ids`. Resolver Input Mapping passes `data.building_sys_ids` to the action argument named `building_sys_ids`.

## Before You Start

This walkthrough assumes you already have:

* A conversation process where an earlier activity produces a list at `data.eligible_building_sys_ids`
* A `building` slot with a dynamic resolver strategy, either inherited from its custom data type or defined inline
* A building lookup action with a required `building_sys_ids` argument

## Step 1: Confirm the Source Value Is Available

Run the conversation through the activity that produces the eligible building IDs. In the logs, confirm that `data.eligible_building_sys_ids` contains the IDs before the process reaches the `building` slot. Strategy Mapping cannot copy a value that has not been produced yet.

## Step 2: Map the Value into the Resolver

Open the `building` slot in the conversation process editor. Under **Resolver Strategy**, select **View Strategy Mapping**.

Add this mapping:

```yaml
building_sys_ids: data.eligible_building_sys_ids
```

After this mapping runs, the resolver reads the value as `data.building_sys_ids`. The original `data.eligible_building_sys_ids` path remains in the conversation process data bank.

<img src="https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/moveworks.docs.buildwithfern.com/645cc3660cc682d35cf0c7b87a361c97d6fe9f5fca9e27f15d236689dc29ce02/docs/assets/images/agent-studio/resolver-strategies/strategy-mapping.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260731%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260731T215320Z&X-Amz-Expires=604800&X-Amz-Signature=a3e2dc9b488e4a9a23ebc505091457b28dda2de41ff1c3ae1c51456616c0a9d0&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject" alt="Strategy Mapping on the building slot with building_sys_ids mapped from data.eligible_building_sys_ids." />

## Step 3: Bind the Resolver Key to the Action Argument

Open the dynamic resolver method and select the building lookup action. In **Input Mapping**, add:

```yaml
building_sys_ids: data.building_sys_ids
```

The left side names the action argument. The right side reads the resolver-local value created in Step 2. This mapping is required; leaving it blank or setting it to `{}` leaves the action argument unset.

Leave `building_sys_ids` out of **Input Variables**. Use Input Variables when the assistant should collect or infer a value during resolution.

<img src="https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/moveworks.docs.buildwithfern.com/8d5650b10ac242ed6e85b0dd9fa7deadb07fa1e8da2309ff1652343f555a7e99/docs/assets/images/agent-studio/resolver-strategies/resolver-input-mapping.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260731%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260731T215320Z&X-Amz-Expires=604800&X-Amz-Signature=feb881ddf294849f62cf7489c3ac5d93e75a02554d0631caaeb0a8c86561a715&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject" alt="Building lookup resolver with building_sys_ids mapped from data.building_sys_ids in Input Mapping." />

## Step 4: Finish the Resolver Output

Configure the [Output Mapping and Output Cardinality](/agent-studio/conversation-process/resolver-strategies#output-mapping) for the building lookup action. If the action returns multiple eligible buildings, the output mapping must point to the array of building objects and the cardinality must interpret that array as a list of candidate values.

## Step 5: Test the Full Conversation

Test through the AI assistant so the earlier activity and the resolver run in the same conversation:

1. Trigger the plugin and complete the inputs needed by the earlier activity.
2. Reach the `building` slot.
3. Open the action log for the building lookup.
4. Confirm the action received a non-empty `building_sys_ids` argument.
5. Select a building and confirm the chosen object is stored at `data.building`.

## Choose the Input Source

A dynamic resolver can get action inputs from three places:

| Value You Need                                                         | Configure                    | Reference in Resolver Input Mapping |
| ---------------------------------------------------------------------- | ---------------------------- | ----------------------------------- |
| A value from an earlier slot or activity                               | Strategy Mapping on the slot | `data.<strategy_mapping_key>`       |
| A value the assistant should collect or infer while resolving the slot | Resolver Input Variables     | `data.<input_variable>`             |
| An attribute of the current user                                       | No additional input schema   | `meta_info.user.<attribute>`        |

Resolver Input Mapping binds the selected source to the action argument.

## Troubleshooting

| Symptom                                                                                  | What to Check                              | Fix                                                                     |
| ---------------------------------------------------------------------------------------- | ------------------------------------------ | ----------------------------------------------------------------------- |
| `Action invocation of action get_building_locations missing argument 'building_sys_ids'` | Resolver Input Mapping                     | Set it to `building_sys_ids: data.building_sys_ids`.                    |
| The resolver receives null or an empty list                                              | Strategy Mapping source and activity order | Run the source activity before the process reaches the `building` slot. |
| The assistant asks the user for building IDs                                             | Resolver Input Variables                   | Remove `building_sys_ids`; it comes from Strategy Mapping.              |
| `data.building_sys_ids` is missing inside the resolver                                   | Strategy Mapping key name                  | Use `building_sys_ids` as the Strategy Mapping key.                     |

## Pattern Gallery

Apply the same two mappings to other resolver dependencies:

| Scenario              | Strategy Mapping                      | Resolver Input Mapping                | Resolved Slot    |
| --------------------- | ------------------------------------- | ------------------------------------- | ---------------- |
| GitHub                | `repository_id: data.repo.id`         | `repository_id: data.repository_id`   | `pull_request`   |
| IT service management | `ci_sys_id: data.ci.sys_id`           | `ci_sys_id: data.ci_sys_id`           | `change_request` |
| ServiceNow CRM        | `account_sys_id: data.account.sys_id` | `account_sys_id: data.account_sys_id` | `opportunity`    |
| HR                    | `employee_id: data.employee.id`       | `employee_id: data.employee_id`       | `time_off_type`  |
| Facilities            | `building_id: data.building.id`       | `building_id: data.building_id`       | `room`           |