Free Intro Class
    Botspot Logo

    agenthub · transform.extract

    Extract List

    Pull one field out of every item in a list, into a flat list of values. A pure extractor — it does not match, compare or branch.

    category Transformin dataout outputexecution syncmodel cost none

    Why the node earns its place

    Given a list somewhere in the input and a path into each item, it returns just that field's values: every row's phone number, every ticket's id. Nothing in it knows about Notion or phones — the paths are configuration, so the same node reads any JSON list.

    Whatever you do with the list next is a separate node, deliberately. That is what keeps it composable rather than becoming a membership test with opinions.

    How it works at run time

    1. 1
      Walk list_path to the array. Empty means the input is already the list.
    2. 2
      Pull field_path out of each item; empty keeps the whole item.
    3. 3
      Drop nulls and empties when compact is on, de-duplicate when unique is on, and apply normalize per value.

    What comes out

    output.values  ["+9199…", "+9198…", …]
    output.count   how many survived compacting

    What you wire

    Inputs

    • data *
      object

    Outputs

    • output
      object

    Configuration

    KeyTypeDefault & optionsWhat it does
    list_path *stringDotted path to the array, e.g. 'result.body.results'. Empty means the input `data` is already the list. After a Test Run you can pick this from the observed shape.
    field_pathstringDotted path into each item to pull, e.g. 'properties.Phone.phone_number' (or 'properties.Phone.rich_text[0].plain_text' for a text column). Empty keeps the whole item.
    compactbooleandefault trueDrop null / empty results (e.g. rows with no phone).
    uniquebooleandefault falseDe-duplicate the list (keeps first-seen order).
    normalizestringdefault "none" none · trim · lower · phone10Optional per-value normalize. phone10 = last 10 digits (format-agnostic, so +91/0-prefix/spaces all collapse).

    What usually goes wrong

    Watch for this

    If you need anything about the matched row rather than a bag of values, this is the wrong node — use Find Row. Reaching for Extract and then a second comparison is the long way round to what Find Row does in one step.

    Behaviour & provenance

    buildersChat & voice agents, Image workflows, Video workflows, Automations
    routesno
    side effectsnone — computes only
    replay safetynot applicable
    talks tonothing outside the run
    holdsno credentials