{
  "title": "Dataset value mapper",
  "human_url": "https://happytails.ai/en/data-tools/dataset-value-mapper/",
  "agent_url": "https://happytails.ai/agents/en/data-tools/dataset-value-mapper/",
  "language": "en",
  "markdown_url": "https://happytails.ai/en/data-tools/dataset-value-mapper.md",
  "content": "Dataset value mapper\nReplace values in one CSV column using an explicit dictionary. Keep every other field and report values without a match.\nHow can we improve this tool?\nReport a problem or share an idea.\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\nHow to use Dataset value mapper\nPaste CSV and enter the exact column name to map.\nPaste a from,to replacement dictionary and choose how unmatched values are handled.\nReview the changed records and unmatched report, then download the result.\nUseful next steps\nCSV row filter\nCSV cell expansion\nCSV formula injection checker\nCSV unpivot\nWhat to expect\nReplace values in one CSV column using an explicit dictionary. Keep every other field and report values without a match. Select a column and provide a comma-separated replacement CSV with exactly the headers from,to. Each source value must appear once in the dictionary. Matching is exact, case-sensitive and does not trim spaces. An empty source value is allowed. Values in every other column stay unchanged. Keep unmatched values as they are, replace them with empty strings, or stop with an error until the dictionary is complete. The unmatched-values CSV lists each missing value, its record count and its first source-record number. Nothing is guessed from similar spelling or inferred types. Compare the mapped, changed and unmatched record counts with the result preview. Download the mapped CSV, unmatched-values CSV and JSON report. Default formula protection prefixes potentially executable strings with an apostrophe; choose original-string export for trusted machine processing.\nTry a small example\nid,status\n001,pending\n002,done\n003,unknown",
  "content_format": "text/plain",
  "visibility": "public",
  "links": [
    {
      "name": "CSV row filter",
      "url": "https://happytails.ai/en/data-tools/csv-row-filter/"
    },
    {
      "name": "CSV cell expansion",
      "url": "https://happytails.ai/en/data-tools/csv-cell-expansion/"
    },
    {
      "name": "CSV formula injection checker",
      "url": "https://happytails.ai/en/data-tools/csv-formula-injection-checker/"
    },
    {
      "name": "CSV unpivot",
      "url": "https://happytails.ai/en/data-tools/csv-unpivot/"
    }
  ],
  "tool": {
    "id": "dataset-value-mapper",
    "category": "data-tools",
    "built": true,
    "requirements": "Select a column and provide a comma-separated replacement CSV with exactly the headers from,to. Each source value must appear once in the dictionary. Matching is exact, case-sensitive and does not trim spaces. An empty source value is allowed. Values in every other column stay unchanged. Keep unmatched values as they are, replace them with empty strings, or stop with an error until the dictionary is complete. The unmatched-values CSV lists each missing value, its record count and its first source-record number. Nothing is guessed from similar spelling or inferred types. Compare the mapped, changed and unmatched record counts with the result preview. Download the mapped CSV, unmatched-values CSV and JSON report. Default formula protection prefixes potentially executable strings with an apostrophe; choose original-string export for trusted machine processing.",
    "implementation": {
      "fields": [
        {
          "key": "delimiter",
          "label": "Input CSV separator",
          "value": ",",
          "type": "select",
          "values": [
            ",",
            ";",
            "\t"
          ]
        },
        {
          "key": "column",
          "label": "Column to map",
          "value": "status",
          "type": "text"
        },
        {
          "key": "mapping",
          "label": "Replacement dictionary",
          "value": "from,to\npending,Waiting\ndone,Complete",
          "type": "textarea",
          "help": "Comma-separated CSV with exactly the headers from,to. Source values must be unique. Matching is exact and case-sensitive; an empty source value is permitted."
        },
        {
          "key": "unmapped",
          "label": "Unmapped values",
          "value": "Keep original",
          "type": "select",
          "values": [
            "Keep original",
            "Replace with empty",
            "Stop with error"
          ]
        },
        {
          "key": "exportMode",
          "label": "Spreadsheet formula handling",
          "value": "Protect formulas",
          "type": "select",
          "values": [
            "Protect formulas",
            "Preserve original cells"
          ]
        }
      ],
      "live": true,
      "presentation": "metrics",
      "note": "Apply an explicit replacement dictionary to one column. Download the unmatched-value report with occurrence counts and first source-record numbers. Duplicate source mappings are rejected; no value is guessed or silently discarded. Use a header row with unique column names. Up to 1,000,000 input characters, 10,000 data records, 100 columns and 100,000 cells. Strings and spaces are preserved. Output CSV uses commas and quotes every cell. Protect formulas prefixes risky output cells with an apostrophe; choose Preserve original cells only for trusted machine processing. Runs on your device.",
      "experience": {
        "automatic": true,
        "single": false,
        "inputMaxLength": 1000000,
        "inputMode": "text",
        "label": "Your text",
        "placeholder": "Type or paste your input…",
        "help": "Change the input or settings to update your result. Results update as you type. Up to 1,000,000 characters.",
        "action": null
      },
      "mode": "automatic",
      "interactive": false
    },
    "execution": "Browser interface",
    "api": null,
    "browser_agent": {
      "supported": true,
      "name": "run_current_tool",
      "discovery": "WebMCP on the human page in a supporting browser",
      "verification": "See audit/API-AUDIT.md; availability is not verification"
    }
  },
  "markdown": "# Dataset value mapper\n\n- Human page: https://happytails.ai/en/data-tools/dataset-value-mapper/\n- Markdown: https://happytails.ai/en/data-tools/dataset-value-mapper.md\n- Structured JSON: https://happytails.ai/agents/en/data-tools/dataset-value-mapper/index.json\n- Visibility: public\n\n## Tool capabilities\n\n| Property | Value |\n| --- | --- |\n| Tool ID | `dataset-value-mapper` |\n| Category | data-tools |\n| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |\n| Browser execution | Automatic updates after valid input or file selection. |\n| Browser processing | Browser; see tool notes for network behavior. |\n| HTTP API | Not callable through HTTP. |\n| Browser-agent interface | run_current_tool |\n\n### Implementation notes\n\nApply an explicit replacement dictionary to one column. Download the unmatched-value report with occurrence counts and first source-record numbers. Duplicate source mappings are rejected; no value is guessed or silently discarded. Use a header row with unique column names. Up to 1,000,000 input characters, 10,000 data records, 100 columns and 100,000 cells. Strings and spaces are preserved. Output CSV uses commas and quotes every cell. Protect formulas prefixes risky output cells with an apostrophe; choose Preserve original cells only for trusted machine processing. Runs on your device.\n\n### Inputs and settings\n\nText input: Your text.\n\nExample or placeholder shown in the interface (not a validated fixture):\n\n```text\nType or paste your input…\n```\n\nChange the input or settings to update your result. Results update as you type. Up to 1,000,000 characters.\n\n| Setting | Meaning | Control type | Default | Constraints |\n| --- | --- | --- | --- | --- |\n| `delimiter` | Input CSV separator | select | \",\" | Allowed: ,, ;, \t |\n| `column` | Column to map | text | \"status\" |  |\n| `mapping` | Replacement dictionary | textarea | \"from,to\\npending,Waiting\\ndone,Complete\" |  |\n| `unmapped` | Unmapped values | select | \"Keep original\" | Allowed: Keep original, Replace with empty, Stop with error |\n| `exportMode` | Spreadsheet formula handling | select | \"Protect formulas\" | Allowed: Protect formulas, Preserve original cells |\n\n### Browser-agent workflow\n\n1. Open the human page in a browser that supports WebMCP.\n2. Discover the interface exposed by that page; use its actual schema.\n3. Select files on the page first when the tool requires files.\n4. Call `run_current_tool` with valid input and settings.\n5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.\n\nCalls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.\n\n### Planning specification\n\nSelect a column and provide a comma-separated replacement CSV with exactly the headers from,to. Each source value must appear once in the dictionary. Matching is exact, case-sensitive and does not trim spaces. An empty source value is allowed. Values in every other column stay unchanged. Keep unmatched values as they are, replace them with empty strings, or stop with an error until the dictionary is complete. The unmatched-values CSV lists each missing value, its record count and its first source-record number. Nothing is guessed from similar spelling or inferred types. Compare the mapped, changed and unmatched record counts with the result preview. Download the mapped CSV, unmatched-values CSV and JSON report. Default formula protection prefixes potentially executable strings with an apostrophe; choose original-string export for trusted machine processing.\n\nThis describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.\n\n### Complete machine-readable capability record\n\n```json\n{\n  \"id\": \"dataset-value-mapper\",\n  \"category\": \"data-tools\",\n  \"built\": true,\n  \"requirements\": \"Select a column and provide a comma-separated replacement CSV with exactly the headers from,to. Each source value must appear once in the dictionary. Matching is exact, case-sensitive and does not trim spaces. An empty source value is allowed. Values in every other column stay unchanged. Keep unmatched values as they are, replace them with empty strings, or stop with an error until the dictionary is complete. The unmatched-values CSV lists each missing value, its record count and its first source-record number. Nothing is guessed from similar spelling or inferred types. Compare the mapped, changed and unmatched record counts with the result preview. Download the mapped CSV, unmatched-values CSV and JSON report. Default formula protection prefixes potentially executable strings with an apostrophe; choose original-string export for trusted machine processing.\",\n  \"implementation\": {\n    \"fields\": [\n      {\n        \"key\": \"delimiter\",\n        \"label\": \"Input CSV separator\",\n        \"value\": \",\",\n        \"type\": \"select\",\n        \"values\": [\n          \",\",\n          \";\",\n          \"\\t\"\n        ]\n      },\n      {\n        \"key\": \"column\",\n        \"label\": \"Column to map\",\n        \"value\": \"status\",\n        \"type\": \"text\"\n      },\n      {\n        \"key\": \"mapping\",\n        \"label\": \"Replacement dictionary\",\n        \"value\": \"from,to\\npending,Waiting\\ndone,Complete\",\n        \"type\": \"textarea\",\n        \"help\": \"Comma-separated CSV with exactly the headers from,to. Source values must be unique. Matching is exact and case-sensitive; an empty source value is permitted.\"\n      },\n      {\n        \"key\": \"unmapped\",\n        \"label\": \"Unmapped values\",\n        \"value\": \"Keep original\",\n        \"type\": \"select\",\n        \"values\": [\n          \"Keep original\",\n          \"Replace with empty\",\n          \"Stop with error\"\n        ]\n      },\n      {\n        \"key\": \"exportMode\",\n        \"label\": \"Spreadsheet formula handling\",\n        \"value\": \"Protect formulas\",\n        \"type\": \"select\",\n        \"values\": [\n          \"Protect formulas\",\n          \"Preserve original cells\"\n        ]\n      }\n    ],\n    \"live\": true,\n    \"presentation\": \"metrics\",\n    \"note\": \"Apply an explicit replacement dictionary to one column. Download the unmatched-value report with occurrence counts and first source-record numbers. Duplicate source mappings are rejected; no value is guessed or silently discarded. Use a header row with unique column names. Up to 1,000,000 input characters, 10,000 data records, 100 columns and 100,000 cells. Strings and spaces are preserved. Output CSV uses commas and quotes every cell. Protect formulas prefixes risky output cells with an apostrophe; choose Preserve original cells only for trusted machine processing. Runs on your device.\",\n    \"experience\": {\n      \"automatic\": true,\n      \"single\": false,\n      \"inputMaxLength\": 1000000,\n      \"inputMode\": \"text\",\n      \"label\": \"Your text\",\n      \"placeholder\": \"Type or paste your input…\",\n      \"help\": \"Change the input or settings to update your result. Results update as you type. Up to 1,000,000 characters.\",\n      \"action\": null\n    },\n    \"mode\": \"automatic\",\n    \"interactive\": false\n  },\n  \"execution\": \"Browser interface\",\n  \"api\": null,\n  \"browser_agent\": {\n    \"supported\": true,\n    \"name\": \"run_current_tool\",\n    \"discovery\": \"WebMCP on the human page in a supporting browser\",\n    \"verification\": \"See audit/API-AUDIT.md; availability is not verification\"\n  }\n}\n```\n\n## Page guide\n\nReplace values in one CSV column using an explicit dictionary. Keep every other field and report values without a match.\n\nHow can we improve this tool?\n\nReport a problem or share an idea.\n\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\n\n### How to use Dataset value mapper\n\n1. Paste CSV and enter the exact column name to map.\n2. Paste a from,to replacement dictionary and choose how unmatched values are handled.\n3. Review the changed records and unmatched report, then download the result.\n\n## Useful next steps\n\n- [CSV row filter](https://happytails.ai/en/data-tools/csv-row-filter/) ([Markdown](https://happytails.ai/en/data-tools/csv-row-filter.md))\n\n- [CSV cell expansion](https://happytails.ai/en/data-tools/csv-cell-expansion/) ([Markdown](https://happytails.ai/en/data-tools/csv-cell-expansion.md))\n\n- [CSV formula injection checker](https://happytails.ai/en/data-tools/csv-formula-injection-checker/) ([Markdown](https://happytails.ai/en/data-tools/csv-formula-injection-checker.md))\n\n- [CSV unpivot](https://happytails.ai/en/data-tools/csv-unpivot/) ([Markdown](https://happytails.ai/en/data-tools/csv-unpivot.md))\n\n## What to expect\n\nReplace values in one CSV column using an explicit dictionary. Keep every other field and report values without a match. Select a column and provide a comma-separated replacement CSV with exactly the headers from,to. Each source value must appear once in the dictionary. Matching is exact, case-sensitive and does not trim spaces. An empty source value is allowed. Values in every other column stay unchanged. Keep unmatched values as they are, replace them with empty strings, or stop with an error until the dictionary is complete. The unmatched-values CSV lists each missing value, its record count and its first source-record number. Nothing is guessed from similar spelling or inferred types. Compare the mapped, changed and unmatched record counts with the result preview. Download the mapped CSV, unmatched-values CSV and JSON report. Default formula protection prefixes potentially executable strings with an apostrophe; choose original-string export for trusted machine processing.\n\n### Try a small example\n\n```\nid,status\n001,pending\n002,done\n003,unknown\n```\n"
}