> For the complete documentation index, see [llms.txt](https://docs.thingsup.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.thingsup.io/actions/postgresql-query-action.md).

# PostgreSQL Query Action

Execute PostgreSQL query completely serverless via Thingsup IoT Platform. Create custom query from MQTT Rules Engine or HTTP APIs.

This provides a way to run PostgreSQL Query. Before adding PostgreSQL Query Action, user has to define a [**PostgreSQL Connection**](/connections/postgresql-connection.md). User need to provide following parameters to add PostgreSQL Query Action.

#### Query

&#x20;PostgreSQL Query with "$1/$2/$3...$n" present on Dynamic Fields

```
SELECT * FROM books WHERE author = $1
```

#### Function

* User can write JavaScript code to supply dynamic data to query.
* "payload" object and "params" array object is available in this code which can be used to supply dynamic data to written query.
* '$n' will be replaced sequentially from nth parameter from params array contents.

```
//Example 1

params.push(payload.author);

```

#### Connection ID

User need to provide a Connection ID of PostgreSQL database connection.

![Add PostgreSQL Query Action](https://365492316-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M7aTljSjWsfbXZ_OP_9%2Fuploads%2F8MRHX0b6cAcg1Z3lsyKW%2FPostgreSql_Action.png?alt=media\&token=44f8ece9-e220-4a56-8972-bd401f34df34)

Please note the following points:

{% hint style="info" %}

* "payload" object is supplied from Action Trigger like Rules, Action Command etc.
* '$n' in Query will be replaced sequentially from params array.
* In case of Static Query don't write anything in Function
* Data Response of PostgreSQL query will be available as Action Response.
  {% endhint %}
