Map Data and Context
Agent Studio does not expose one global bag of data. Every action, compound action, resolver, conversation process, and system trigger has a scoped runtime data bank.
Mappings create explicit bridges between those scopes.
Explore the Data Boundaries
Select a scope to see its inputs, boundaries, and mapping responsibilities.
- Collected slots
- Activity outputs
- Conversation runtime metadata
- Values before their step executes
- Unreturned compound internals
- Data from another run
The Data Bank by Surface
meta_info.user exists when execution has conversational user context. A webhook or schedule does not automatically have a user profile. Resolve identity explicitly and map it forward.
Understand the Mapping Layers
Input Mapping
Input mapping supplies an action activity’s typed input arguments from the parent conversation process:
It answers: What does this action receive?
Output Mapping
Output mapping reshapes the current action payload, referenced as response:
Unmapped response fields do not remain in the exposed activity output.
It answers: What does the conversation and reasoning engine receive?
Compound Action Input Arguments
A compound action declares typed entry points. Each internal action block uses input_args to receive exact values from the compound data bank.
It answers: What crosses into this backend workflow and each internal step?
Compound Action Return
The final return.output_mapper creates the compound action’s public result:
Intermediate action outputs stay internal unless you return them.
It answers: What crosses back to the caller?
Choose the Right Language
Moveworks Data Mapper is the current teaching term for structured transformations. Existing references may call the underlying mapping system JSON Bender. DSL is a separate expression language that can run inside mapper fields.
Replace Outputs Intentionally
An output mapper rewrites the exposed output. It is not an annotation layered over the original response.
If you map:
Then downstream steps receive accounts, not the original payload plus accounts.
Use this behavior to:
- Remove metadata, debug fields, and unused nested objects.
- Rename keys to describe business meaning.
- Normalize inconsistent provider schemas.
- Limit arrays before they enter conversational context.
- Add
display_instructions_for_modelwhen presentation needs light steering.
Shape Context for the Reasoning Engine
The reasoning engine sees each output exposed by a conversation action activity. It does not need every API response or internal backend step.
Prefer:
Avoid:
When several calls run without user interaction, use a compound action and return one concise object.
Use Display Instructions as Steering
display_instructions_for_model can guide how the assistant presents a result:
Treat this field as presentation guidance, not a deterministic business rule. Use DSL, policies, mappings, or code when a rule must always hold.
Build Along: Map the PurpleSuite Contracts
Create the explicit bridges for the feature-request build:
Follow one live feature request through the same three API calls and Agent Studio contracts in every chapter.
https://marketplace.moveworks.comX-Instance-ID.selected_feature_request: id: <data[n].id> display_name: <data[n].name> current_status: <data[n].currentStatus> product_area: <data[n].productArea>
/api/purple-suite/community/feature_requestsDynamic resolver retrieves live candidates/api/purple-suite/community/feature_requests/{id}Compound action updates the selected record/api/purple-suite/community/feature_requests/{id}Compound action verifies the stored result- Map the list action’s response array into resolver candidates with
id,display_name, andcurrent_status. - Map the selected object’s stable ID and the static resolver’s raw status into the compound action.
- Return only the updated request’s name and status to the conversation.
Use this conversation-to-compound input mapping:
Use this conversation activity output mapping:
Inspect the Data Bank at each boundary. Your checkpoint is that the raw list response and internal PATCH and verification responses do not enter conversational context.