Built-in tool

Data Transform

Reshape, filter, sort, or combine data.

Freeno per-call chargeNo API key needed

Endpoint

Parameters

NameTypeRequiredNote
actionstring · requiredstringrequired

Data transformation to perform.

One of: json-path (Extract JSON Path), filter-array (Filter Array), map-array (Map Array (pluck field)), deduplicate (Deduplicate Array), merge-objects (Merge Objects), chunk-array (Chunk Array), sort-array (Sort Array), count (Count), flatten (Flatten Array), build-text-template (Build text from template) and 9 more

itemsrepeating-group · requiredrepeating-grouprequired

Add one or more data sources. Supports variable references and expressions.

pathstring · required if action is json-pathstringrequired if action is json-path

Dot-notation path to extract from the data.

Example: user.address.city or items[0].name

fieldstring · required if action is deduplicate or sort-array or split-outstringrequired if action is deduplicate or sort-array or split-out

Reference to each array element, rooted at `item`. Use `item` for the element itself — works for scalar arrays (strings/numbers), not just objects — or `item.field` / `item.address.city` for a nested path.

Example: item, item.email, item.status

chunkSizenumber · required if action is chunk-arraynumberrequired if action is chunk-array

Number of items per chunk. Must be a positive integer (≥ 1).

Default: 10

Example: 10

directionstring · optionalstringoptional

Sort direction. Defaults to ascending.

Used only when action is sort-array.

One of: asc (Ascending), desc (Descending)

templatestring · required if action is build-text-templatestringrequired if action is build-text-template

Text template to render per item. Use item.fieldName to reference fields from the current array element.

Example: https://api.example.com/v1/blocks/ + item.id

searchPathstring · required if action is deep-searchstringrequired if action is deep-search

Dot-notation path to the value to match on. Use [] to traverse arrays.

Example: items[].status

conditionstring · required if action is deep-searchstringrequired if action is deep-search

One of: equals, not-equals (not equals), contains, starts-with (starts with), ends-with (ends with), exists, does-not-exist (does not exist)

matchValuestring · required if action is deep-search and condition is equals or not-equals or contains or starts-with or ends-withstringrequired if action is deep-search and condition is equals or not-equals or contains or starts-with or ends-with

Not required when condition is exists or does not exist.

Example: Value to compare against

extractPathstring · optionalstringoptional

Path to extract from matching items. Leave blank to return the full matched item.

Used only when action is deep-search.

Example: items[].id

deduplicateResultsboolean · optionalbooleanoptional

Remove duplicate values from the output.

Used only when action is deep-search.

separatorstring · optionalstringoptional

Separator/delimiter. For merge-text: placed between each value when joining (default a blank line). For split-text: the delimiter to split on (default a comma). Supports \n for newline.

Used only when action is merge-text or split-text or join-array.

Example: \n\n

inputTextstring · required if action is find-and-replace or split-textstringrequired if action is find-and-replace or split-text

Input text. For find-and-replace: the text containing patterns to replace. For split-text: the text to split into an array.

Example: Text to process

replacementsrepeating-group · required if action is find-and-replacerepeating-grouprequired if action is find-and-replace

Find/replace pairs applied in order from top to bottom.

caseSensitiveboolean · optionalbooleanoptional

When on, matching is case-sensitive. Default is off (case-insensitive).

Used only when action is find-and-replace.

limitOutputboolean · optionalbooleanoptional

When enabled, only returns the first N items after shuffling.

Used only when action is shuffle-array.

maxItemsnumber · required if limitOutput is true and limitOutput is truenumberrequired if limitOutput is true and limitOutput is true

Maximum number of items to return from the shuffled array. Must be a positive whole number (≥ 1).

Example: 100

pickCountnumber · optionalnumberoptional

How many items to randomly pick. Must be a whole number (e.g. 1, 2, 3). Default is 1. When set to 1, output is a single object instead of an array.

Used only when action is pick-random.

Example: 1, 5, 10

outputFieldsstring · required if action is map-array or pick-random and action is map-arraystringrequired if action is map-array or pick-random and action is map-array

Comma-separated `item`-rooted references to include. For map-array: the projection (a single reference returns an array of scalars, multiple return projected objects). For pick-random: leave blank to return full picked objects. Use `item` for the element itself.

Example: item.id, item.name, item.url

conditionsrepeating-group · required if action is filter-arrayrepeating-grouprequired if action is filter-array

Conditions to filter array items by. Each row is field + operator + value, where field is rooted at `item` (use `item` for the element itself — scalar arrays included — or `item.field`). Multiple rows combine via the selector below.

conditionCombinatorstring · optionalstringoptional

How multiple conditions combine. AND keeps items matching every condition; OR keeps items matching any condition.

Used only when action is filter-array.

One of: and (AND (match all)), or (OR (match any))

Default: and

assignmentsrepeating-group · required if action is edit-fieldsrepeating-grouprequired if action is edit-fields

Add, remove, or rename fields on each item. Supports dotted paths (e.g. "address.city").

keepUnmatchedboolean · optionalbooleanoptional

When on, fields not listed above pass through unchanged.

Used only when action is edit-fields.

Default: true

includestring · optionalstringoptional

Whether to keep sibling fields from the parent object alongside the split value.

Used only when action is split-out.

One of: all-other-fields (Include all other fields), no-other-fields (No other fields)

Default: all-other-fields

destinationFieldNamestring · optionalstringoptional

Optional: output the split value under a different field name.

Used only when action is split-out.

trimItemsboolean · optionalbooleanoptional

Trim leading/trailing whitespace from each resulting item.

Used only when action is split-text.

ignoreEmptyboolean · optionalbooleanoptional

Drop empty strings from the result (applied after trimming).

Used only when action is split-text.

Response schema

{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "success"
  ],
  "properties": {
    "count": {
      "type": "number",
      "description": "Number of items in the result (populated for array results and the count action)."
    },
    "error": {
      "type": "string"
    },
    "result": {
      "description": "Transformed result. Type depends on the action: array, object, scalar, or number."
    },
    "success": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}

Get started

How to use this tool

  1. Connect your AI

    Add Connie to ChatGPT, Claude or Slack once, and this tool comes with it. There’s no API key or account to set up.

  2. Ask for the outcome

    Describe what you need in plain words. Your AI runs this tool when the job calls for it, along with any others it needs.

  3. Make it a workflow

    Add it as a step in a workflow that runs the same way every time, on a schedule or when something happens.

  4. Stay in control

    Choose whether it runs on its own or asks first. When it asks, you see an Allow or Deny card before any credits are spent.