> For the complete documentation index, see [llms.txt](https://maya-admin.gitbook.io/building-skills/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://maya-admin.gitbook.io/building-skills/product/node-library/command-bar/custom-search-in.md).

# Custom Search In

Search through and act on custom lists and arrays inside the Maya command bar.

The Custom Search node let's you display, search and act on a custom list of items, like this Spotify skill that let's you query the Spotify API, display search results and then hit Enter to play a song.

![](https://1551505950-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mkaq90Au3F8Kz0qIFzO%2Fuploads%2Fgit-blob-fbbd3b3fa3108c746649a673998592e13f176971%2Fcustomsearch.gif?alt=media)

### Inputs

This has no input ports.

### Output

* `search` (string) : The query that the user types is outputted in `msg.payload.search`.

### Details

Here are the steps to configure your own custom search.

### Step 1

Drag and drop a `custom-search` node, connect it to a [`custom-search-response`](/building-skills/product/node-library/command-bar/custom-search-out.md). Give it a custom name, say 'List Search'. When you try to make a command using the `bot-command` node and select Custom Variable, it show allow you to choose 'List Search' now.

![](https://1551505950-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mkaq90Au3F8Kz0qIFzO%2Fuploads%2Fgit-blob-99294ab5aab89f9f106ec398f169b10cfeb04edd%2Fcustomsearchtute.gif?alt=media)

### Step 2

Attach a data source, or hard code a list, and output that into the [`custom-search-response`](/building-skills/product/node-library/command-bar/custom-search-out.md) node, like this.

![](https://1551505950-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mkaq90Au3F8Kz0qIFzO%2Fuploads%2Fgit-blob-8419c0eb36bf848e8ddda10beb05346437092474%2Fdatasourcecustomsearch.gif?alt=media)

You can build this from scratch, or just copy and import this flow below, and modify it to get started with custom search easily. Make sure `Maya Bot Utils` module is installed from the Store. Query term in `msg.payload.search` can be connected to search through external data source or API to fetch results and show them in the list.

```jsonp
[
    {
        "id": "78063d07d822bdda",
        "type": "tab",
        "label": "Flow 1",
        "disabled": false,
        "info": ""
    },
    {
        "id": "75e37b7072070efb",
        "type": "bot-command",
        "z": "78063d07d822bdda",
        "name": "",
        "order": 0,
        "options": [
            {
                "value": "Search through",
                "type": "prompt",
                "required": true
            },
            {
                "value": "list",
                "type": "custom",
                "required": false,
                "endpoint": "/search-f4bbe11ada38877c",
                "customNode": "f4bbe11ada38877c"
            }
        ],
        "formValue": {
            "Search through": "",
            "list": ""
        },
        "payload": "",
        "endpointUrl": "/command-75e37b7072070efb",
        "icon": "",
        "x": 220,
        "y": 120,
        "wires": [
            [
                "5085629ecfbbe9ef"
            ]
        ]
    },
    {
        "id": "f4bbe11ada38877c",
        "type": "custom-search",
        "z": "78063d07d822bdda",
        "name": "Custom Search",
        "payload": "",
        "endpointUrl": "/search-f4bbe11ada38877c",
        "x": 180,
        "y": 260,
        "wires": [
            [
                "b55401a1c250998a"
            ]
        ]
    },
    {
        "id": "66f2cebacd6aa07b",
        "type": "custom-search-response",
        "z": "78063d07d822bdda",
        "name": "custom-search-response",
        "statusCode": "",
        "headers": {},
        "x": 650,
        "y": 440,
        "wires": []
    },
    {
        "id": "b55401a1c250998a",
        "type": "change",
        "z": "78063d07d822bdda",
        "name": "Three Items Change Node",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "[]",
                "tot": "json"
            },
            {
                "t": "set",
                "p": "payload[0]",
                "pt": "msg",
                "to": "{\"value\":\"Template 1\",\"meta\":{\"subtext\":\"This is template 1\"}}",
                "tot": "json"
            },
            {
                "t": "set",
                "p": "payload[1]",
                "pt": "msg",
                "to": "{\"value\":\"Template 2\",\"meta\":{\"subtext\":\"This is template 2\"}}",
                "tot": "json"
            },
            {
                "t": "set",
                "p": "payload[2]",
                "pt": "msg",
                "to": "{\"value\":\"Template 3\",\"meta\":{\"subtext\":\"This is template 3\"}}",
                "tot": "json"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 350,
        "y": 440,
        "wires": [
            [
                "66f2cebacd6aa07b"
            ]
        ]
    },
    {
        "id": "5085629ecfbbe9ef",
        "type": "bot-response",
        "z": "78063d07d822bdda",
        "name": "bot-response",
        "status": "success",
        "statusMsg": "Success!",
        "statusMsgType": "str",
        "x": 460,
        "y": 180,
        "wires": []
    },
    {
        "id": "b30509486aa0b036",
        "type": "function",
        "z": "78063d07d822bdda",
        "name": "Three Items Function Node",
        "func": "var results = []\n\nresults.push({\"value\":\"Template 1\",\"meta\":{\"subtext\":\"This is template 1\"}})\nresults.push({\"value\":\"Template 2\",\"meta\":{\"subtext\":\"This is template 2\"}})\nresults.push({\"value\":\"Template 3\",\"meta\":{\"subtext\":\"This is template 3\"}})\nmsg.payload = results\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 420,
        "y": 320,
        "wires": [
            [
                "66f2cebacd6aa07b"
            ]
        ]
    }
]
```
