---
title: Data Sources
description: "All operation for data sources management is performed by administrators on a portal. You can read more about [how to use data source in add-in](https://templatise.it/docs/data-source/). ### Data Source Structure Data Source has 3 parts: - **Input from end user** -…"
url: "https://templatise.it/docs/portal-data-sources/"
updated: "2024-09-23"
category: Management
---

# Data Sources

All operation for data sources management is performed by administrators on a portal.

You can read more about [how to use data source in add-in](https://templatise.it/docs/data-source/).

### Data Source Structure

Data Source has 3 parts:

- **Input from end user** - represented as input variables
- **Request preparation and sending to external system** - defined by external system url and parameters binding from user input
- **Processing response and sending data to end user** - represented by parameters binding to output variables that are returned to end user

Passing user input to external system request is done by simple variables substitution, using ${} to separate variables. For parsing JSON response from external system, [JMESPATH](https://jmespath.org/) is used.

### How to create Data Source

Example is based on countries api, available at [https://restcountries.com/](https://restcountries.com/)

**1. Define external system url and request structure**

![](https://templatise.it/wp-content/uploads/2024/05/define-external-system.png)

**2. Map user input: **Create input variable for each url param

![](https://templatise.it/wp-content/uploads/2024/05/Group-9-1024x168.png)

![](https://templatise.it/wp-content/uploads/2024/05/input-var-1024x520.png)

**3. Map external system response to output variables**

![](https://templatise.it/wp-content/uploads/2024/05/output-var-button-2.png)

![](https://templatise.it/wp-content/uploads/2024/05/output-var-1024x718.png)

Create other output variables:

![](https://templatise.it/wp-content/uploads/2024/05/other-outputs-1024x711.png)

### Data Source Testing

Administrator can test integration on the same page.

**There are four tabs that represent:**

- **Which input end user sees:**

![](https://templatise.it/wp-content/uploads/2024/05/testing-input-1024x233.png)

- **How HTTP request look like:**

![](https://templatise.it/wp-content/uploads/2024/05/server-request-1.png)

- **How HTTP response look like:**

![](https://templatise.it/wp-content/uploads/2024/05/server-response.png)

- **Which output end user will see:**

![](https://templatise.it/wp-content/uploads/2024/05/user-output-1024x365.png)

 

So it's not just defining of the integration, but it's possible to completely test it.

Next, you can use this data source in your templates. Read more about [how to use data source in add-in](https://templatise.it/docs/data-source/).
