Skip to navigation

DSL and Mapper Playground [New]

View as Markdown

This page replaces the previous DSL & Mapper Playground documentation. The playground is now built directly into Moveworks Setup — no API key or external tooling is required.

Overview

The DSL Playground is an interactive tool in Moveworks Setup for testing Moveworks DSL expressions and Moveworks Data Mappers (Bender) against a sample payload. Use it to validate rules and mappings before applying them in launch rules, plugin configurations, connectors, or anywhere else Moveworks configuration languages are used.

With the playground you can:

  • Evaluate a DSL expression or a Bender data mapper against any JSON payload and see the result instantly.
  • Load realistic sample payloads (User, Ticket, Catalog Item, Group, and skill contexts) with one click.
  • Build DSL rules visually with the Rule Builder, or describe a rule in plain English and let AI generate it with Generate Rule.
  • Browse a built-in, searchable Function Reference for both DSL and Mapper functions without leaving the page.

Accessing the Playground

  1. Open Moveworks Setup.
  2. In the navigation, go to Troubleshooting & Tools.
  3. Select DSL Playground.

Interface at a Glance

The playground is split into three areas (the top/bottom split is resizable):

AreaWhat it’s for
Input Payload (top left)The JSON object your expression or mapper is evaluated against.
Editor (top right)Where you write your DSL expression or Bender mapper. A toggle switches between DSL and Mapper modes.
Result & Debugging (bottom)Shows the evaluated output after you click Process, plus any debugging details or error messages.

DSL Playground interface showing the Input Payload, Editor, and Result & Debugging panels

A Reference button on the top-right header opens the built-in Function Reference drawer.

Reference button in the DSL Playground header

How To Use

Step 1: Provide an Input Payload

Every evaluation runs against the JSON in the Input Payload panel. You can:

  • Paste your own JSON — for example, a real payload from an API response or a connector.
  • Load a sample — click Insert sample to choose from built-in objects:
    • Core: User, Ticket, Catalog Item, Group
    • Skill Context: System Context, Concierge Context, Access DL Context

If you’ve edited the payload, the playground asks for confirmation before replacing it with a sample.

Tip: The DSL editor’s autocomplete is payload-aware — it suggests field paths from your Input Payload. Keep the payload valid JSON to get suggestions.

Step 2: Write Your Expression

Use the toggle at the top right of the Editor panel to pick a mode:

DSL mode

Write a single Moveworks DSL expression, for example:

user.email_addr IN ["person@company.com"]

The DSL editor provides syntax highlighting, inline validation, and autocomplete based on your Input Payload.

Mapper mode

Write a Bender data mapper in YAML or JSON, for example:

ticketNumber: ticket.number

Or a full mapping structure:

requester:
name: ticket.requested_for.full_name
email: ticket.requested_for.email_addr
isHighPriority:
EVAL():
expression: ticket.priority IN ["P1", "P2"]

Switching modes keeps both your expression and your Input Payload intact.

Step 3: Process and Review Results

Click Process. The Result & Debugging panel shows:

  • Success: the evaluated result, formatted for readability.
  • Debugging details: when available, additional context appears below the result.
  • Errors: the full error message in red, so you can pinpoint syntax issues or fields that don’t resolve.

Iterate freely — adjust the payload or expression and click Process again.

Example

Goal: verify a launch-rule-style condition against a sample user.

  1. Click Insert sample → Core → User.

  2. In DSL mode, enter:

    user.department == "Engineering" AND user.country_code == "US"
  3. Click Process.

  4. The Result panel shows true or false based on the sample user’s fields. Edit the payload’s department value and re-run to see the result change.

Building Rules Faster (DSL Mode)

Generate Rule (AI)

Click Generate Rule and describe the rule in plain English — for example:

department is Engineering and priority is P1 or P2

AI generates the DSL expression and inserts it into your editor.

Rule Builder

Click Rule Builder to construct a rule visually without writing DSL by hand:

  1. Pick the Data to check (autocomplete suggests paths from your payload, e.g. ticket.status).
  2. Choose an Operator.
  3. Enter a Value. Value handling is smart: numbers, true/false/null stay raw; other text is quoted; lists accept comma-separated values or a list literal like ["a", "b"].
  4. Click Add condition to chain more conditions with AND/OR.
  5. Review the live Preview, then click Insert into editor. If the editor already has content, you can choose how to combine the new rule with it (AND/OR).

If a data path isn’t present in your current Input Payload, the builder flags it with a warning — the rule may not resolve at runtime.

FAQ

  • Do I need an API key?
    • No. Unlike the previous playground, the in-product DSL Playground requires no API key or credentials — it uses your existing Moveworks Setup session.
  • Can I test both DSL and Data Mappers?
    • Yes. Use the DSL / Mapper toggle in the Editor panel. Generate Rule and Rule Builder are available in DSL mode only.
  • Why doesn’t autocomplete suggest my fields?
    • Autocomplete reads field paths from the Input Payload. Make sure the payload is valid JSON.
  • Is my work saved?
    • No. The playground does not currently save evaluation history or expressions — copy anything you want to keep into your configuration.

Function Reference

Click Reference in the header to open a searchable, in-product catalog of functions. Toggle between DSL and Mapper, and search by function name, signature, description, or example.

DSL categories: Stream Operators, String Analysis, String Formatting, String Manipulation, Datetime Manipulation, Type Casting, Approximation Comparators — including functions like MAP, FILTER, ANY, ALL, MATCH, LOWERCASE, CONCAT, SPLIT, PARSE_TIME, FORMAT_TIME, TEXT, INTEGER, PARSE_JSON, and more.

Mapper categories: Field-Level, Structural, List Manipulation, Branching, String Manipulation — including OBJECT, ARRAY, FLATTEN, MERGE, MAP, SORT, COALESCE, FILTER, CONDITIONAL, LOOKUP, CONCAT, RENDER, STRIP_HTML, and more.

Each entry shows the function’s description, signature, and a copyable example. Footer links open the full language references in the Moveworks documentation: