# 4.62. Analyst - Integrate external applications

<table border="1" id="bkmrk-id-4.1.-description-" style="border-collapse: collapse; width: 100%; height: 315px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr style="height: 29px;"><td style="height: 29px;">**Id**</td><td style="height: 29px;">4.62.</td></tr><tr style="height: 125px;"><td style="height: 125px;">**Description**</td><td style="height: 125px;">As an **<span class="notion-enable-hover" data-token-index="1">Analyst</span>**,

I must be able to integrate external application with the register,

So that I can access the data from within these applications in order to perform advance analytics (e.g. Tableau).

</td></tr><tr style="height: 29px;"><td style="height: 29px;">**Priority**</td><td style="height: 29px;">**<span style="color: rgb(224, 62, 45);">High</span>**</td></tr><tr style="height: 29px;"><td style="height: 29px;">**Actors**</td><td style="height: 29px;">Analyst</td></tr><tr style="height: 29px;"><td style="height: 29px;">**API Calls**</td><td class="align-left" style="height: 29px;">Not done via API.   
Webhooks are configured via the Django Administration panel.</td></tr><tr style="height: 29px;"><td style="height: 29px;">**Linked Processes**</td><td style="height: 29px;">  
</td></tr><tr style="height: 45px;"><td style="height: 45px;">**Status**</td><td style="height: 45px;"><span style="color: rgb(22, 145, 121);">**Implemented**</span></td></tr></tbody></table>

### Preconditions

1. The User must be authenticated and have the **Analyst** role.
2. The User has an external application that he wants to integrate.

### Postconditions

1. The Webhook is configured and the selected events trigger the external application.

### Main flow

1. The **Analyst** navigates to django admin and configures a new Webhook.
2. The **Analyst** selects the URL of the external application to which the system will send notifications.
3. The **Analyst** selects the type of events that should be sent to the external application.
4. The **Analyst** configures the authentication method and saves.

### Exceptions

#### \[400 Bad Request\] Invalid input:

If mandatory fields are missing or invalid, the system returns an error message.

#### \[500 Internal Server Error\] System Error

If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation.