# X-pack chain input with condition

**URL:** https://discuss.elastic.co/t/x-pack-chain-input-with-condition/146871
**Category:** Elasticsearch
**Created:** [August 31, 2018, 1:52pm UTC](https://discuss.elastic.co/t/x-pack-chain-input-with-condition/146871 "2018-08-31T13:52:46Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![krishna\_chaitanya](https://avatars.discourse-cdn.com/v4/letter/k/b5a626/32.png) [@krishna\_chaitanya](https://discuss.elastic.co/u/krishna_chaitanya)
#### Post date: [August 31, 2018, 1:52pm UTC](https://discuss.elastic.co/t/x-pack-chain-input-with-condition/146871/1 "2018-08-31T13:52:46Z")

</div>

I have chained input like this:

```
  "input": {
        "chain" : {
    			"inputs" : [{
    					"input_http" : {
    						"http" : {
    							"request" : {
    								"url" : "http://localhost:8080/list"
    							}
    						}
    					}
    				}, {
    					"input_es" : {
    						"search": {
    						  "request": {
    							"indices": ["summary*"],
    							"body": {
    							  "size": 0,
    							  "query": {
    								"bool": {
    								  "must": [
    									{
    									  "query_string": {
    										"analyze_wildcard": true,
    										"query": "{{{{ CUSTOMIZATION HERE }}}"
    									  }
    									}
    								  ],
    								  "must_not": []
    								}
    							  },
    							  "_source": {
    								"excludes": []
    							  }
    							}
    						  }
    						}
    					}
    				   }
    			]
    		}
	}

```

I would like to customize my query in second input (`input_es`) based on payload returned by first input (`input_http`)  
Example:

```
if ( ctx.payload.input_http._status_code = 200) {
   "query": "HTTP_STATUS:200"
}
else {
   "query": "!HTTP_STATUS:200"
}

```

How can I achieve this?  
Thanks.

---

<div class="post-metadata">

### Author: ![spinscale](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/spinscale/32/25011_2.png) [@spinscale](https://discuss.elastic.co/u/spinscale)
#### Post date: [August 31, 2018, 2:24pm UTC](https://discuss.elastic.co/t/x-pack-chain-input-with-condition/146871/2 "2018-08-31T14:24:16Z")

</div>

Hey,

you can do this using a [chain transform](https://www.elastic.co/guide/en/elastic-stack-overview/6.4/transform-chain.html) which allows you to modify your payload properly and just write the query based on a condition in a script.

Hope this helps!

--Alex

---

<div class="post-metadata">

### Author: ![krishna\_chaitanya](https://avatars.discourse-cdn.com/v4/letter/k/b5a626/32.png) [@krishna\_chaitanya](https://discuss.elastic.co/u/krishna_chaitanya)
#### Post date: [August 31, 2018, 2:26pm UTC](https://discuss.elastic.co/t/x-pack-chain-input-with-condition/146871/3 "2018-08-31T14:26:31Z")

</div>

Perfect. Looks like that's what I need. Will give a try.  
Thank you !!

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [September 28, 2018, 2:26pm UTC](https://discuss.elastic.co/t/x-pack-chain-input-with-condition/146871/4 "2018-09-28T14:26:48Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
